Vertical offset (~0.7 m) with full-RTK workflow (geo.txt, no GCPs)

Hello,

first of all, I want to clarify that I used ChatGPT only to help me write this post in English, because of the language barrier. Anyway I have fully understood and verified all the technical details reported below.

Workflow I followed

  1. Drone flight: DJI Matrice 4E RTK connected to HxGNSmartnet NTRIP.

  2. Image metadata: Extracted with ExifTool. The tags XMP:AbsoluteAltitude and GPSAltitude report consistent ellipsoidal heights (≈167 m).

  3. Conversion: Using ConveRgo (government software) with official IGM ITALGEO05 geoid:

    • Input: ellipsoidal heights.

    • Output: orthometric heights H(ITALGEO05).

    • Result: converted heights around 124 m, which match the expected values in my area.

  4. geo.txt creation: I generated a geo.txt file containing filename, longitude, latitude, and H(ITALGEO2005) for each image.

  5. WebODM processing:

    • Uploaded images together with the geo.txt.

    • No GCPs provided, as the aim is a full-RTK survey.

    • Independent Leica checkpoints (ESRI:3003 + IGM05) were used only for validation.

Problem

  • The reconstruction is accurate in planimetry.

  • However, the resulting model is systematically 0.7 m lower than the independent Leica checkpoints.

  • The offset persists even after checking all conversions and ensuring both drone altitudes and checkpoints are in the same vertical reference.

Question

  • Is there a bug or limitation in ODM in how it handles altitudes provided via geo.txt?

  • Could I be missing a configuration related to vertical datum interpretation?

  • Has anyone reproduced a similar ~0.7 m vertical bias when running a full-RTK workflow and checking against independent ground checkpoints?

Any insights would be greatly appreciated.

Thanks in advance.

console.txt (1.6 MB)

Post your geo.txt. What is the proj4 string header?

1 Like

I am trying to remove the sensitive information from the photos (s/n, etc.), and then I can also upload the entire dataset if it could be useful.

geo.txt (25.7 KB)

Does this help:

I don’t know, it doesn’t seem to be my case. Moreover, the geodetic elevation at takeoff is about 79.7 meters, and given the flight height of 45 m it would be 124.7 - 45 = 79.7. Aside from decimals, the altitude recorded by the drone and then converted seems consistent. The second point on the west embankment is the GCP, which should be 79.5. From this and other points I deduced that the model seems to be shifted in Z by -0.7 m.

exif_report.txt (24.6 KB)

Technically, there’s no ESRI:3003. I doubt this is a problem, just a typo.

if you run pdal info on the odm_georeferencing.laz file, what’s it say? I’m having similar hard time trying to get a custom site proj4 reference where I’ve got a post-processing in an elliptical system, but continually get offsets. One of the steps might be including a vertical adjustment.

Is there any sorta antenna/rod height offset you should apply in your RTK base station?

Thanks to everyone who took the time to reply and offer suggestions. Over the last few days I have been running more tests to better understand what is happening, and something quite clear has emerged. When I process image sets that contain oblique photos, the reconstruction aligns correctly in Z, with no sign of the ~0.7 m bias that I originally reported. The offset only appears when I use slightly off nadir (-85) imagery.

With oblique datasets the stronger geometry seems to provide enough constraints in the vertical direction so that the final heights are consistent with my checkpoints. With nadir-only datasets, instead, the weaker geometry does not fully constrain Z, and the systematic offset remains.

As you can see, when using the oblique function in Pilot 2 an excessive number of photos are taken (996 compared to about 400), so I will try some tests to get the same result with a manual flight plan, for example: a nadir flight with 60/60 overlap and a second pass at −45° with 80/70 overlap.

Cool. I have some datasets using 85 degrees and switched to nadir to see the difference in the GCPs I have.

Interesting found out. Would you mind sharing the reports for both setup? I’m interested to have some deeper understanding of this.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.