OpenDroneMap-docs/gcp/index.html

528 wiersze
37 KiB
HTML
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Ground Control Points &mdash; OpenDroneMap 2.5.8 documentation</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex/" />
<link rel="search" title="Search" href="../search/" />
<link rel="next" title="Map accuracy" href="../map-accuracy/" />
<link rel="prev" title="OpenDroneMap Outputs" href="../outputs/" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../" class="icon icon-home"> OpenDroneMap
</a>
<div class="version">
2.5.8
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search/" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../installation/">Installation and Getting Started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../installation/#hardware-recommendations">Hardware Recommendations</a></li>
<li class="toctree-l2"><a class="reference internal" href="../installation/#installation">Installation</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../installation/#windows">Windows</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../installation/#step-1-check-virtualization-support">Step 1. Check Virtualization Support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../installation/#step-2-install-requirements">Step 2. Install Requirements</a></li>
<li class="toctree-l4"><a class="reference internal" href="../installation/#step-3-check-memory-and-cpu-allocation">Step 3. Check Memory and CPU Allocation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../installation/#step-4-download-webodm">Step 4. Download WebODM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../installation/#step-4-launch-webodm">Step 4. Launch WebODM</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../installation/#macos">macOS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../installation/#id1">Step 1. Check Virtualization Support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../installation/#id2">Step 2. Install Requirements</a></li>
<li class="toctree-l4"><a class="reference internal" href="../installation/#id3">Step 3. Check Memory and CPU Allocation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../installation/#step-4-download-and-launch-webodm">Step 4. Download and Launch WebODM</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../installation/#linux">Linux</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../installation/#step-1-install-requirements">Step 1. Install Requirements</a></li>
<li class="toctree-l4"><a class="reference internal" href="../installation/#step-2-check-additional-requirements">Step 2. Check Additional Requirements</a></li>
<li class="toctree-l4"><a class="reference internal" href="../installation/#step-3-download-and-launch-webodm">Step 3. Download and Launch WebODM</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../installation/#basic-commands-and-troubleshooting">Basic Commands and Troubleshooting</a></li>
<li class="toctree-l2"><a class="reference internal" href="../installation/#hello-webodm">Hello, WebODM!</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../installation/#running-on-more-than-one-machine">Running on more than one machine</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../tutorials/">Tutorials</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/#creating-high-quality-orthophotos">Creating High Quality Orthophotos</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/#calibrating-the-camera">Calibrating the Camera</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/#creating-digital-elevation-models">Creating Digital Elevation Models</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/#measuring-stockpile-volume">Measuring stockpile volume</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#fieldwork-planning">Fieldwork planning</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#flight-pattern">Flight pattern</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#flight-height">Flight height</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#gcps">GCPs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#processing-parameters">Processing parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#measuring">Measuring</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#expected-accuracy">Expected accuracy</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/#using-docker">Using Docker</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#listing-docker-machines">Listing Docker Machines</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#accessing-logs-on-the-instance">Accessing logs on the instance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#command-line-access-to-instances">Command line access to instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#cleaning-up-after-docker">Cleaning up after Docker</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/#using-odm-from-low-bandwidth-location">Using ODM from low-bandwidth location</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#what-is-this-and-who-is-it-for">What is this and who is it for?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/#steps">Steps</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../tutorials/#install">Install</a></li>
<li class="toctree-l4"><a class="reference internal" href="../tutorials/#prep-data-and-project">Prep data and project</a></li>
<li class="toctree-l4"><a class="reference internal" href="../tutorials/#resize-droplet-pull-pin-run-away">Resize droplet, pull pin, run away</a></li>
<li class="toctree-l4"><a class="reference internal" href="../tutorials/#after-it-finishes-assuming-you-survive-that-long">After it finishes (assuming you survive that long)</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../arguments/">Options and Flags</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../arguments/build-overviews/">build-overviews</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/camera-lens/">camera-lens</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/cameras/">cameras</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/cog/">cog</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/copy-to/">copy-to</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/crop/">crop</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/debug/">debug</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/dem-decimation/">dem-decimation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/dem-euclidean-map/">dem-euclidean-map</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/dem-gapfill-steps/">dem-gapfill-steps</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/dem-resolution/">dem-resolution</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/depthmap-resolution/">depthmap-resolution</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/dsm/">dsm</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/dtm/">dtm</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/end-with/">end-with</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/fast-orthophoto/">fast-orthophoto</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/feature-quality/">feature-quality</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/feature-type/">feature-type</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/force-gps/">force-gps</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/gcp/">gcp</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/geo/">geo</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/gps-accuracy/">gps-accuracy</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/help/">help</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/ignore-gsd/">ignore-gsd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/matcher-distance/">matcher-distance</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/matcher-neighbors/">matcher-neighbors</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/matcher-type/">matcher-type</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/max-concurrency/">max-concurrency</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/merge/">merge</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/mesh-octree-depth/">mesh-octree-depth</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/mesh-size/">mesh-size</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/min-num-features/">min-num-features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/name/">name</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/optimize-disk-space/">optimize-disk-space</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/orthophoto-compression/">orthophoto-compression</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/orthophoto-cutline/">orthophoto-cutline</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/orthophoto-kmz/">orthophoto-kmz</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/orthophoto-no-tiled/">orthophoto-no-tiled</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/orthophoto-png/">orthophoto-png</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/orthophoto-resolution/">orthophoto-resolution</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-classify/">pc-classify</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-csv/">pc-csv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-ept/">pc-ept</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-filter/">pc-filter</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-geometric/">pc-geometric</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-las/">pc-las</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-quality/">pc-quality</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-rectify/">pc-rectify</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-sample/">pc-sample</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/pc-tile/">pc-tile</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/primary-band/">primary-band</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/project-path/">project-path</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/radiometric-calibration/">radiometric-calibration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/rerun/">rerun</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/rerun-all/">rerun-all</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/rerun-from/">rerun-from</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/resize-to/">resize-to</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/skip-3dmodel/">skip-3dmodel</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/skip-band-alignment/">skip-band-alignment</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/skip-report/">skip-report</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/sm-cluster/">sm-cluster</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/smrf-scalar/">smrf-scalar</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/smrf-slope/">smrf-slope</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/smrf-threshold/">smrf-threshold</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/smrf-window/">smrf-window</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/split/">split</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/split-image-groups/">split-image-groups</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/split-overlap/">split-overlap</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/texturing-data-term/">texturing-data-term</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/texturing-keep-unseen-faces/">texturing-keep-unseen-faces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/texturing-outlier-removal-type/">texturing-outlier-removal-type</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/texturing-skip-global-seam-leveling/">texturing-skip-global-seam-leveling</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/texturing-skip-local-seam-leveling/">texturing-skip-local-seam-leveling</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/texturing-tone-mapping/">texturing-tone-mapping</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/tiles/">tiles</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/time/">time</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/use-3dmesh/">use-3dmesh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/use-exif/">use-exif</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/use-fixed-camera-params/">use-fixed-camera-params</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/use-hybrid-bundle-adjustment/">use-hybrid-bundle-adjustment</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/verbose/">verbose</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arguments/version/">version</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../outputs/">OpenDroneMap Outputs</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../outputs/#point-cloud">Point Cloud</a></li>
<li class="toctree-l2"><a class="reference internal" href="../outputs/#d-textured-model">3D Textured Model</a></li>
<li class="toctree-l2"><a class="reference internal" href="../outputs/#orthophoto">Orthophoto</a></li>
<li class="toctree-l2"><a class="reference internal" href="../outputs/#dtm-dsm">DTM/DSM</a></li>
<li class="toctree-l2"><a class="reference internal" href="../outputs/#list-of-all-outputs">List of all outputs</a></li>
</ul>
</li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Ground Control Points</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#recommended-practices-for-gcp-setting">Recommended practices for GCP setting</a></li>
<li class="toctree-l2"><a class="reference internal" href="#gcp-file-format">GCP file format</a></li>
<li class="toctree-l2"><a class="reference internal" href="#user-interfaces">User Interfaces</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id1">POSM GCPi</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">GCP Editor Pro</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#references">References</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../map-accuracy/">Map accuracy</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../map-accuracy/#what-to-expect">What to expect</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../map-accuracy/#aspects-impacting-map-accuracy">Aspects impacting map accuracy</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../map-accuracy/#references">References</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../geo/">Image Geolocation Files</a></li>
<li class="toctree-l1"><a class="reference internal" href="../masks/">Using Image Masks</a></li>
<li class="toctree-l1"><a class="reference internal" href="../large/">Splitting Large Datasets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../large/#calibrate-images">Calibrate images</a></li>
<li class="toctree-l2"><a class="reference internal" href="../large/#local-split-merge">Local Split-Merge</a></li>
<li class="toctree-l2"><a class="reference internal" href="../large/#distributed-split-merge">Distributed Split-Merge</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../large/#getting-started-with-distributed-split-merge">Getting Started with Distributed Split-Merge</a></li>
<li class="toctree-l3"><a class="reference internal" href="../large/#understanding-the-cluster">Understanding the Cluster</a></li>
<li class="toctree-l3"><a class="reference internal" href="../large/#accessing-the-logs">Accessing the Logs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../large/#autoscaling-clusterodm">Autoscaling ClusterODM</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../large/#limitations">Limitations</a></li>
<li class="toctree-l2"><a class="reference internal" href="../large/#acknowledgments">Acknowledgments</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../resources/">Additional References</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../resources/#for-users">For Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="../resources/#for-developers">For Developers</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../flying/">Flying Tips</a></li>
<li class="toctree-l1"><a class="reference internal" href="../multispectral/">Multispectral Support</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../multispectral/#hardware">Hardware</a></li>
<li class="toctree-l2"><a class="reference internal" href="../multispectral/#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../requesting-features/">How To Request Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/">How To Contribute</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../contributing/#community-forum">Community Forum</a></li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/#reporting-bugs">Reporting Bugs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/#template-for-submitting-bug-reports">Template For Submitting Bug Reports</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/#pull-requests">Pull Requests</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../faq/">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../faq/#data-processing">Data Processing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../faq/#can-i-process-two-or-more-orthophoto-geotiffs-to-stitch-them-together">Can I process two or more orthophoto GeoTIFFs to stitch them together?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../faq/#licensing">Licensing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../faq/#i-want-to-build-a-commercial-application-that-includes-odm-do-i-need-a-commercial-license">I want to build a commercial application that includes ODM. Do I need a commercial license?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../faq/#are-there-other-licensing-options-aside-from-the-agplv3">Are there other licensing options aside from the AGPLv3?</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../">OpenDroneMap</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../" class="icon icon-home"></a> &raquo;</li>
<li>Ground Control Points</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/gcp.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="ground-control-points">
<h1>Ground Control Points<a class="headerlink" href="#ground-control-points" title="Permalink to this headline"></a></h1>
<p>Ground control points are useful for correcting distortions in the data and referencing the data to know coordinate systems.</p>
<p>A Ground Control Point (GCP) is a position measurement made on the ground, typically using a high precision GPS. (Toffanin 2019)</p>
<p>Ground control points can be set existing structures like pavement corners, lines on a parking lot or contrasting color floor tiles, otherwise can be set using targets placed on the ground.</p>
<p>Targets can be purchased or build with an ample variety of materials ranging from bucket lids to floor tiles.</p>
<div class="section" id="recommended-practices-for-gcp-setting">
<h2>Recommended practices for GCP setting<a class="headerlink" href="#recommended-practices-for-gcp-setting" title="Permalink to this headline"></a></h2>
<p>Keep ground control points visible for all camera locations. Consider the expected ground sampling distance, illumination, vegetation, buildings and all the existing obstacles.</p>
<p>Procure an evenly horizontal distribution of the GCPs within the project, covering high and low elevations. A minimum of 5 GCP works for most of the jobs, and for larger projects 8 – 10 are sufficient. Locate some points near the corners and others in the center, considering that GCP spacing should be larger than the image footprint so that you cant see more than one GCP in a single image.</p>
<p>In order to ensure each GCP are found in at least 5 images, separate the points 10 to 30 meters from the perimeter of the project. This distance is dependent of the overlapping, so increasing overlapping should reduce the required distance from the perimeter.</p>
</div>
<div class="section" id="gcp-file-format">
<h2>GCP file format<a class="headerlink" href="#gcp-file-format" title="Permalink to this headline"></a></h2>
<p>The format of the GCP file is simple.</p>
<blockquote>
<div><ul class="simple">
<li><p>The first line should contain the name of the projection used for the geo coordinates. This can be specified either as a PROJ string (e.g. <code class="docutils literal notranslate"><span class="pre">+proj=utm</span> <span class="pre">+zone=10</span> <span class="pre">+ellps=WGS84</span> <span class="pre">+datum=WGS84</span> <span class="pre">+units=m</span> <span class="pre">+no_defs</span></code>), EPSG code (e.g. <code class="docutils literal notranslate"><span class="pre">EPSG:4326</span></code>) or as a <code class="docutils literal notranslate"><span class="pre">WGS84</span> <span class="pre">UTM</span> <span class="pre">&lt;zone&gt;[N|S]</span></code> value (eg. <code class="docutils literal notranslate"><span class="pre">WGS84</span> <span class="pre">UTM</span> <span class="pre">16N</span></code>)</p></li>
<li><p>Subsequent lines are the X, Y &amp; Z coordinates, your associated pixels, the image filename and optional extra fields, separated by tabs or spaces:</p></li>
<li><p>Elevation values can be set to “NaN” to indicate no value</p></li>
<li><p>The 7th column (optional) typically contains the label of the GCP.</p></li>
</ul>
</div></blockquote>
<p>GCP file format:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">projection</span><span class="o">&gt;</span>
<span class="n">geo_x</span> <span class="n">geo_y</span> <span class="n">geo_z</span> <span class="n">im_x</span> <span class="n">im_y</span> <span class="n">image_name</span> <span class="p">[</span><span class="n">gcp_name</span><span class="p">]</span> <span class="p">[</span><span class="n">extra1</span><span class="p">]</span> <span class="p">[</span><span class="n">extra2</span><span class="p">]</span>
<span class="o">...</span>
</pre></div>
</div>
<p>Example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">+</span><span class="n">proj</span><span class="o">=</span><span class="n">utm</span> <span class="o">+</span><span class="n">zone</span><span class="o">=</span><span class="mi">10</span> <span class="o">+</span><span class="n">ellps</span><span class="o">=</span><span class="n">WGS84</span> <span class="o">+</span><span class="n">datum</span><span class="o">=</span><span class="n">WGS84</span> <span class="o">+</span><span class="n">units</span><span class="o">=</span><span class="n">m</span> <span class="o">+</span><span class="n">no_defs</span>
<span class="mf">544256.7</span> <span class="mf">5320919.9</span> <span class="mi">5</span> <span class="mi">3044</span> <span class="mi">2622</span> <span class="n">IMG_0525</span><span class="o">.</span><span class="n">jpg</span>
<span class="mf">544157.7</span> <span class="mf">5320899.2</span> <span class="mi">5</span> <span class="mi">4193</span> <span class="mi">1552</span> <span class="n">IMG_0585</span><span class="o">.</span><span class="n">jpg</span>
<span class="mf">544033.4</span> <span class="mf">5320876.0</span> <span class="mi">5</span> <span class="mi">1606</span> <span class="mi">2763</span> <span class="n">IMG_0690</span><span class="o">.</span><span class="n">jpg</span>
</pre></div>
</div>
<p>If you supply a GCP file called <code class="docutils literal notranslate"><span class="pre">gcp_list.txt</span></code> then ODM will automatically detect it. If it has another name you can specify using <code class="docutils literal notranslate"><span class="pre">--gcp</span> <span class="pre">&lt;path&gt;</span></code>. If you have a gcp file and want to do georeferencing with exif instead, then you can specify <code class="docutils literal notranslate"><span class="pre">--use-exif</span></code>. If you have high precision GPS measurements in your images (RTK) and want to use that information along with a gcp file, you can specify <code class="docutils literal notranslate"><span class="pre">--force-gps</span></code>.</p>
<p><a class="reference external" href="http://diydrones.com/profiles/blogs/ground-control-points-gcps-for-aerial-photography">This post has some information about placing Ground Control Targets before a flight</a>, but if you already have images, you can find your own points in the images post facto. Its important that you find high-contrast objects that are found in <strong>at least</strong> 3 photos, and that you find a minimum of 5 objects.</p>
<p>Sharp corners are good picks for GCPs. You should also place/find the GCPs evenly around your survey area.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">gcp_list.txt</span></code> file must be created in the base of your project folder.</p>
<p>For good results your file should have a minimum of 15 lines after the header (5 points with 3 images to each point).</p>
</div>
<div class="section" id="user-interfaces">
<h2>User Interfaces<a class="headerlink" href="#user-interfaces" title="Permalink to this headline"></a></h2>
<p>You can use one of two user interfaces for creating GCP files:</p>
<blockquote>
<div><ul class="simple">
<li><p><a class="reference external" href="https://github.com/posm/posm-gcpi">POSM GCPi</a></p></li>
<li><p><a class="reference external" href="https://github.com/uav4geo/GCPEditorPro">GCP Editor Pro</a></p></li>
</ul>
</div></blockquote>
<div class="section" id="id1">
<h3>POSM GCPi<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h3>
<p>The POSM GCPi is loaded by default on WebODM. An example is available at <a class="reference external" href="http://demo.webodm.org/plugins/posm-gcpi/">the WebODM Demo</a>. To use this with known ground control XYZ values, one would do the following:</p>
<p>Create a GCP list that only includes gcp name (this is the label that will be seen in the GCP interface), x, y, and z, with a header with a proj4 string of your GCPs (make sure they are in a planar coordinate system, such as UTM. It should look something like this:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">+</span><span class="n">proj</span><span class="o">=</span><span class="n">utm</span> <span class="o">+</span><span class="n">zone</span><span class="o">=</span><span class="mi">37</span> <span class="o">+</span><span class="n">south</span> <span class="o">+</span><span class="n">ellps</span><span class="o">=</span><span class="n">WGS84</span> <span class="o">+</span><span class="n">datum</span><span class="o">=</span><span class="n">WGS84</span> <span class="o">+</span><span class="n">units</span><span class="o">=</span><span class="n">m</span> <span class="o">+</span><span class="n">no_defs</span>
<span class="n">gcp01</span> <span class="mf">529356.250827686</span> <span class="mf">9251137.5643209</span> <span class="mf">8.465</span>
<span class="n">gcp02</span> <span class="mf">530203.125367657</span> <span class="mf">9250140.80991621</span> <span class="mf">15.781</span>
<span class="n">gcp03</span> <span class="mf">530292.136003818</span> <span class="mf">9250745.02372435</span> <span class="mf">11.977</span>
<span class="n">gcp04</span> <span class="mf">530203.125367657</span> <span class="mf">9250140.80991621</span> <span class="mf">15.781</span>
<span class="n">gcp05</span> <span class="mf">530292.136003818</span> <span class="mf">9250745.02372435</span> <span class="mf">11.977</span>
</pre></div>
</div>
<p>Then one can load this GCP list into the interface, load the images, and place each of the GCPs in the image.</p>
</div>
<div class="section" id="id2">
<h3>GCP Editor Pro<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h3>
<p>This app needs to be installed separately or can be loaded as a WebODM plugin from <a class="reference external" href="https://github.com/uav4geo/GCPEditorPro">https://github.com/uav4geo/GCPEditorPro</a></p>
<p>Create a CSV file that includes the gcp name, northing, easting and elevation.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">GCP</span> <span class="n">Label</span><span class="p">,</span><span class="n">Northing</span><span class="p">,</span><span class="n">Easting</span><span class="p">,</span><span class="n">Elevation</span>
<span class="n">gcp01</span><span class="p">,</span><span class="mf">529356.250827686</span><span class="p">,</span><span class="mf">9251137.5643209</span><span class="p">,</span><span class="mf">8.465</span>
<span class="n">gcp02</span><span class="p">,</span><span class="mf">530203.125367657</span><span class="p">,</span><span class="mf">9250140.80991621</span><span class="p">,</span><span class="mf">15.781</span>
<span class="o">...</span>
</pre></div>
</div>
<p>Then import the CSV from the main screen and type <code class="docutils literal notranslate"><span class="pre">+proj=utm</span> <span class="pre">+zone=37</span> <span class="pre">+south</span> <span class="pre">+ellps=WGS84</span> <span class="pre">+datum=WGS84</span> <span class="pre">+units=m</span> <span class="pre">+no_defs</span></code> in the <code class="docutils literal notranslate"><span class="pre">EPSG/PROJ</span></code> box.</p>
<p>The following screen will display a map from where to select the GCPs to tag and import the respective images.</p>
</div>
</div>
<div class="section" id="references">
<h2>References<a class="headerlink" href="#references" title="Permalink to this headline"></a></h2>
<p>Toffanin, Piero. <a class="reference external" href="https://odmbook.com/">Open Drone Map: The Missing Guide.</a> MasseranoLabs LLC, 2019.</p>
<p><a class="reference external" href="https://github.com/opendronemap/docs#how-to-make-your-first-contribution">Learn to edit</a> and help improve <a class="reference external" href="https://github.com/OpenDroneMap/docs/blob/publish/source/gcp.rst">this page</a>!</p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../map-accuracy/" class="btn btn-neutral float-right" title="Map accuracy" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../outputs/" class="btn btn-neutral float-left" title="OpenDroneMap Outputs" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&#169; Copyright 2020, OpenDroneMap.
</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>