Georeferencing
Georeferencing process results in locating a piece of the landscape visible in the photo in the corresponding geographic destination on the real-world map.
Most software designed for photogrammetric workflows has a built-in geolocation step. The same is true for OpenDroneMap. In any case, to make geospatial localization of [aerial] photos, GPS data (Global Positioning System) is required. Most modern professional cameras record GPS coordinates automatically in the images, usually with an accuracy of 10-30 feet (3-9 meters) [source]. While such a result is sufficient for most ordinary purposes, your research may be more precision demanding. For example, consider the case where the target area is even smaller than the geolocation threshold. The novel, more accurate geolocation systems, such as VPS (Visual Positioning System) or CPS (Camera Positioning Standard), are now being developed [learn more] and will probably supplant GPS technology in the future. By this time, though, the best patch for improving georeferencing process is still to use a high-accuracy GPS point reference, which will minimize the error.
Georeferencing options in OpenDroneMap
The user has some level of control over the ODM settings for the photo georeferencing stage. By default, ODM tries to use the GPS information embedded in the images automatically while recording the mission. If this is the case, you don’t need to add any additional option for geolocation to be performed.
1. Force the use of geolocation from images’ EXIF metadata
--force-gps --use-exif \
Use --force-gps
and --use-exif
flags when you have a GCP data file in the project file structure but want to force the use of the GPS data stored in the image metadata.
That is especially useful when the original imagery is not geotagged, but you have GPS data in separate text files. In such a case, you can add this information to the image EXIF metadata using ExifTool software. Follow the instructions in the tutorial “Keep EXIF GEO metadata” (section: add EXIF tags from a text file using exiftool) to accomplish this step.
2. Force the use of GPS data (e.g., RTK) from a text file
--geo geo.txt \
Regardless of whether your imagery is geotagged, once you have alternative GPS information stored in a text file, you can force direct use of it with the option --geo geo.txt
. This is especially useful when you have more accurate geolocation data such as RTK (Real-Time Kinematic positioning) that corrects some of the common errors in current satellite navigation (GNSS) systems.
Keep in mind that the format of the text file containing the GPS data is strictly defined!
If the geo.txt file is somewhere outside of your project's workdir or you have several GPS files, then provide the absolute path to the one you want.
+proj=utm +zone=11 +ellps=WGS84 +datum=WGS84 +units=m +no_defs # header
DJI_0028.JPG -91.9942096 46.8425252 198.609 # GPS data
DJI_0032.JPG -91.9938293 46.8424584 198.609 # GPS data
- The first line should contain the name of the projection used for the geo-coordinates, in one of the following formats:
* PROJ string: +proj=utm +zone=11 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
* EPSG code: EPSG:4326
* WGS84 UTM: WGS84 UTM 16N
- Subsequent lines are the GPS information for a given image (the first 3 columns are obligatory):
col-1 col-2 col-3 col-4 col-5 col-6 col-7 col-8 col-9 col-10
_____ _____ _____ ______ _________________ ______________ ________________ _______________________ _______________________ ___________
image_name geo_x geo_y [geo_z] [omega (degrees)] [phi (degrees)] [kappa (degrees)] [horz accuracy (meters)] [vert accuracy (meters)] [extras...]
3. Force fixed value of GPS Dilution of Precision (use along with variant 1 or 2)
--gps-accuracy 10.0 \
If you know the estimated error of GPS location determined by the camera in use, consider setting it as a value of the --gps-accuracy value
option. The value is a positive float in meters and will be used as a GPS Dilution of Precision for all images. The default is 10 meters.
If you use high-precision GPS (RTK), this value will be set automatically. You can manually set it in case the reconstruction fails. Lowering the value can help control bowling effects over large areas.
3. Force the use of GCP-based georeferencing
Ground Control Points (GCPs) are clearly visible objects which can be easily identified in several images. Using the precise GPS position of these ground points is a good reference that improves significantly the accuracy of the project’s geolocation. Ground control points can be any steady structure existing in the mission area, otherwise can be set using targets placed on the ground. Learn more about recommended practices for GCPs in ODM workflow from the OpenDronMap Documentation: Ground Control Points.
If you have a file with GCPs detected on the image collection, force georeferencing using it by option --gcp gcp_list.txt
.
--gcp gcp_list.txt \
Keep in mind that the format of the text file containing the GCP data is strictly defined!
If the gcp_list.txt file is somewhere outside of your project's workdir or you have several GCP files, then provide the absolute path to the one you want.
Detect each ground control point in at least 5-10 photos!
EPSG:4326
-116.74998 43.06477 2090.14 1559.41645 1372.84669 DJI_0177.JPG 100
-116.74998 43.06477 2090.14 1491.01638 2471.85207 DJI_0355.JPG 100
-116.74998 43.06477 2090.14 1524.14196 2214.43593 DJI_0178.JPG 100
-116.74998 43.06477 2090.14 1142.59915 1739.80028 DJI_0152.JPG 100
-116.74998 43.06477 2090.14 1207.88116 1863.28946 DJI_0329.JPG 100
-116.75048 43.06475 2088.22 1737.22646 1763.28507 DJI_0172.JPG 101
-116.75048 43.06475 2088.22 1660.24277 2912.50267 DJI_0350.JPG 101
-116.75048 43.06475 2088.22 1736.70576 1411.55810 DJI_0171.JPG 101
-116.75048 43.06475 2088.22 989.578526 1391.94185 DJI_0157.JPG 101
-116.75048 43.06475 2088.22 877.826253 2459.65369 DJI_0335.JPG 101
- The first line should contain the name of the projection used for the geo-coordinates, in one of the following formats:
* PROJ string: +proj=utm +zone=11 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
* EPSG code: EPSG:4326
* WGS84 UTM: WGS84 UTM 16N
- Subsequent lines are the GPS information for a given image (the first 6 columns are obligatory):
col-1 col-2 col-3 col4 col5 col-6 col-7 col-8 col-9
_____ _____ _____ ____ ____ __________ __________ ________ ________
geo_x geo_y geo_z im_x im_y image_name [gcp_name] [extra1] [extra2]
Software for manual detection of GCPs
Section in development…
Use any software for tagging GCPs, e.g., the GCP Editor Pro is a good match for the ODM. Download source code from the GitHub.
Automatic detection of ARUco targets
Section in development…