Theta-Limited / OpenAthena

OpenAthena allows common drones to spot precise geodetic locations
Other
71 stars 17 forks source link

Input DEM vertical datum is wrong for all Autel and some Parrot and DJI aircraft #24

Open mkrupczak3 opened 1 year ago

mkrupczak3 commented 1 year ago

The GPS standard uses the WGS84 reference ellipsoid as an idealized model of the earth's shape and size. This model is most commonly used for specifying horizontal location using lat/lon, but height above/below the ellipsoid is also commonly used as a vertical datum, such as with standard GPS

An alternative, commonly used vertical datum is EGM96, which is an Earth gravitational model which takes the rotation and gravity of the earth into consideration and uses the resultant expected sea level as the reference point for altitude.

Open Athena must be able to consume either vertical datum for its input drone images

According to the widely used EPSG identifier codes for projections:

EPSG:4326 is a commonly used geodetic coordinate system based on the WGS84 ellipsoid, and EPSG:4979 is a 3D version of EPSG:4326 that includes height information. For EGM96, the EPSG code is 5773.

mkrupczak3 commented 1 year ago

The way that this version of OpenAthena handles altitude information is wrong for certain Autel, DJI, Parrot drones. This can result in target error of up to 30m in such cases.

This is a serious issue which must be addressed.

The altitude used for DJI and Skydio aircraft is orthometric above mean sea level (ASML) according to EGM96. The altitude of the input elevation model is also EGM96, therefore NATO MGRS and WGS84 geodetic output is correct (where the user must understand the vertical datum is EGM96, even if it's not labeled well currently).

The software currently does not convert from EGM96 orthometric to WGS84 ellipsoidal vertical datum, which negatively affects the accuracy of potential Cursor on Target output and CK-42 output, which both use an ellipsoidal vertical datum.

mkrupczak3 commented 1 year ago

See this git commit on the Android for the necessary fixes:

https://github.com/Theta-Limited/OpenAthenaAndroid/commit/37a38b68d992cd0525d47119215eb352e314169e

A library will need to be added for the Python version which may obtain the EGM96 geoid offset from the WGS84 reference ellipsoid at any given lat/lon