DSM/DTM Elevation Different from GCP's

I added the GCP’s from my WebODM GCP fileto a layer in QGIS, then added the DTM (and DSM) to layers in Qgis, then extracted Contours from all and labeled. The Elevations from the point file are different from those extracted from the DTM/DSM. Any thoughts? Can I verify the values in WedODM?

This is the kind of thing I was hoping to do with WebODM… though my mapping knowledge, and surveying terminology knowledge is a serious impediment. Is it possible to offset the data in some way to correct for the difference in elevation.

I’m not expecting to settle for that. If I find my error, this should work out.

I am curious if the GCP’s are used in WebODM to adjust the output to real world data or just used to locate them on the map.

Every other software I’ve used uses GCP’s to improve the accuracy of the elevations, the Geo tags in the image metadata (exif) puts the images in the correct location

My GCP’s are in EPGS: 6413, That means X, Y and elevation in US survey Feet, the EXIF Data from the Images is in Degrees, Minutes and decimal Seconds with elevation in meters.

Does Open Drone Map recognize this and convert or do I need to use another CRS for My GCP)'s?

I recently discovered I was not actually using my GCP’s ( I thought all that was required was to place the GCP file in the same folder as he images and WebODM would correctly locate it) when I correctly select the GCP file I can’t successfully process.

Still a lot of voodoo under the hood with webodm from my perspective… on the mavic 2 pro the coordinates are there in two different formats for sure. Not sure which its using nor what your exif data contains.

Curious where your gcp data came from in your graphic in your first post… evidently not from webodm.

What format are you using for your gcp?

from mavic 2 pro exif

GPS Altitude : 115825515.8 m Above Sea Level (this is the erroneous altitude data)
GPS Latitude : 35 deg 2’ 23.13" N
GPS Longitude : 82 deg 9’ 26.89" W
GPS Position : 35 deg 2’ 23.13" N, 82 deg 9’ 26.89" W

Latitude : +35.0397709
Longitude : -82.1574982
Absolute Altitude : +1.20
Relative Altitude : +91.20

I’m a land surveyor, I generated the original GCP data (points) using our equipment (Centimeter level accuracy).

I also generated the GPS data on my images using a separate Multi-band single frequency GPS receiver (Emlid Reach) post processed against a CORS station to get a GPS fix for each image. Again, Centimeter level accuracy. (I capture the Image event in a log file using a “Hot Shoe” adapter attached to my Sony NEX 5N’s flash, I then Geo-Tag the images in Geosetter)

We record our survey data using Arkansas State Plane coordinate’s NAD83(2011) / Arkansas South (ftUS) (EPSG 6413)

My images (as are most images) are Geo-Tagged using WGS84 (EPSG 4326 most likely)

The two formats you mention are the same Coordinate Reference System most likely WGS84 (EPSG 4326) one in Degrees Minutes and Seconds the other simply Decimal Degrees

@yawstick, the moderators edited my previous post. Evidently in an attempt to be funny I said something offensive. If you saw the unedited comment and it was offensive to you I apologize. I assure you it was not meant to offend and was meant to showcase my ignorance when it comes to photogrammetry and place you and I in a similar light.

1 Like

I did see it but not an issue for me but we sometimes forget what a far reaching platform the internet is.

I work in the Survey Industry and new to the whole drone/photogrammetry. I have been researching various software to process the data. If you look at the documentation page there is a section for GCP’s.

Ground Control Points

Blockquote Ground Control Points

When EXIF data contains GPS location, it is used by OpenSfM to georeference the reconstruction. Additionally, it is possible to use ground control points.

Ground control points (GCP) are landmarks visible on the images for which the geospatial position (latitude, longitude and altitude) is known. A single GCP can be observed in one or more images.

OpenSfM uses GCP in two steps of the reconstruction process: alignment and bundle adjustment. In the alignment step, points are used to globaly move the reconstruction so that the observed GCP align with their GPS position. Two or more observations for each GCP are required for it to be used during the aligment step.

In the bundle adjustment step, GCP observations are used as a constraint to refine the reconstruction. In this step, all ground control points are used. No minimum number of observation is required.

File format

GCPs can be specified by adding a text file named gcp_list.txt at the root folder of the dataset. The format of the file should be as follows.

  • The first line should contain the name of the projection used for the geo coordinates.
  • The following lines should contain the data for each ground control point observation. One per line and in the format:

<geo_x> <geo_y> <geo_z> <im_x> <im_y> <image_name>

Where <geo_x> <geo_y> <geo_z> are the geospatial coordinates of the GCP and <im_x> <im_y> are the pixel coordinates where the GCP is observed.

Supported projections

The geospatial coordinates can be specified in one the following formats.

  • WGS84]: This is the standard latitude, longitude coordinates used by most GPS devices. In this case, <geo_x> = longitude , <geo_y> = latitude and <geo_z> = altitude
  • UTM: projections can be specified using a string projection string such as WGS84 UTM 32N , where 32 is the region and N is . In this case, <geo_x> = E , <geo_y> = N and <geo_z> = altitude
  • proj4: Any valid proj4 format string can be used. For example, for UTM 32N we can use +proj=utm +zone=32 +north +ellps=WGS84 +datum=WGS84 +units=m +no_defs


This file defines 2 GCP whose coordinates are specified in the WGS84 standard. The first one is observed in both 01.jpg and 02.jpg , while the second one is only observed in 01.jpg

13.400740745 52.519134104 12.0792090446 2335.0 1416.7 01.jpg
13.400740745 52.519134104 12.0792090446 2639.1 938.0 02.jpg
13.400502446 52.519251158 16.7021233002 766.0 1133.1 01.jpg


hope this helps