Altitudes Explained
A drone's height can be measured from several starting points, and Remote ID reports several of them. The exports keep each one under its own name, so you always know which one you are reading.
| JSON type | CSV column | Measured from | Comes from |
|---|---|---|---|
HAE-WGS84 | alt_hae_wgs84 | The WGS 84 ellipsoid, the smooth model of the Earth that GPS uses | The drone (GPS) |
MSL | alt_msl | Mean sea level | The drone, or calculated by Dronetag |
ATO | alt_ato | The take-off point | The drone |
PA-QNE | alt_pressure | Standard air pressure (1013.25 hPa) | The drone (barometer) |
AGL | alt_agl | The ground under the drone | Calculated by Dronetag |
All values are in metres.
One Point, Five Altitudes
A point from the example detection, about 60 m above the ground:
| Type | Value | What it means |
|---|---|---|
HAE-WGS84 | 459.4 m | Height above the ellipsoid. In Czechia the ellipsoid lies about 45 m below sea level, so this number is the highest. |
MSL | 413.9 m | Altitude above sea level |
ATO | 60.9 m | Height above the place it took off from |
AGL | 60.0 m | Height above the ground under it. It is close to ATO here because the ground is about as high as at take-off. On a slope the two differ. |
PA-QNE | 388.6 m | The barometer's reading. It is 25 m off the sea-level altitude because real air pressure is never exactly standard. |
Which One to Use
| Question | Use |
|---|---|
| How high above the ground? | AGL |
| How high above where it took off? | ATO |
| How high above sea level, for example to compare with airspace limits? | MSL |
| What did the GPS say? | HAE-WGS84 |
Pressure altitude changes with the weather and isn't corrected for local air pressure. Don't use it as height above sea level.
Why the height above take-off can be negative, and why many drones show it as "AGL", is explained in Understanding Altitude Values.
When MSL Is Empty
If the drone reported a sea-level altitude, the export keeps it. Otherwise Dronetag calculates one from the GPS height. If there is no GPS height, Dronetag uses the height of the take-off point plus the height above take-off.
When none of this is possible, MSL is empty. The file doesn't say which way the value was found.
When AGL Is Empty
AGL is the sea-level altitude minus the height of the ground at that place. The ground height comes from a terrain model. AGL is empty when there is no sea-level altitude or no terrain data for that place. See Terrain Data and Attribution.
A height slightly below zero is normal for a drone standing on the ground. The example flight starts at 0.43 m and goes down to -1.04 m before take-off. Values this close to zero mean "on the ground".
Over forest and in towns, AGL can read low. Some terrain models measure the top of trees and roofs, not the soil.
Accuracy
In JSON, an altitude can have an accuracy in metres. Roughly two times in three, the true value is within this amount.
- A value the drone reported has an accuracy only if the drone reported one.
AGLhas an accuracy.- A calculated
MSLhas one when the value it was calculated from had one. It also includes the error of the conversion, 0.4 m through the geoid or 3.5 m through the take-off point.
CSV files have no accuracies. KMZ and PDF show the height above ground as an estimate, for example "97 m (estimated, ±3.0 m)".
KMZ and PDF calculate the height above ground from the GPS height. When a drone also reported its own sea-level altitude, their figure can differ a little from the one in JSON and CSV.
Altitudes in the Summary
The summary of each flight or detection has the highest value of each altitude type. In JSON this is max_altitudes. In CSV Summary it is max_alt_ato, max_alt_msl and max_alt_agl. There are no minimums.