Replies: 8 comments 9 replies
-
|
@Llaves Thank you so much again for the detailed guide :) |
Beta Was this translation helpful? Give feedback.
-
|
I've made it even easier to to visualize the AGL on your flights. For now I'm sharing the URL for my proxy. If it gets overloaded I will shut it down, but for now feel free to use it. If you set up a proxy, think about sharing the URL in this thread. |
Beta Was this translation helpful? Give feedback.
-
|
This overlay would be definitely a great feature for C0 drones. C1+ drones show during the flight the height over ground; Is this data present in the flight records as well? Visualizing this data would help already - if present in the data. |
Beta Was this translation helpful? Give feedback.
-
|
My knowledge of the drone world is pretty limited. Consumer/prosumer DJI drones do not measure height above ground, they measure and display height above launch point. (Some of the drones use lidar and stereo imaging to estimate altitude up to 25m.) This is what is exported to the csv and kml files by OpenDroneLog. The programs described in this discussion take that information and the lat/lon of the flight path to create plots of true height above ground. |
Beta Was this translation helpful? Give feedback.
-
|
Hey @Llaves I gave it a try and the HTML file was so quick and easy! Good work. I used the server you provided :) The issue I had with some logs that if there are missing GPS data for any point, then it just bugs out instead of skipping that point for the record (leaving gap in data plot is fine) |
Beta Was this translation helpful? Give feedback.
-
|
@Llaves I had some more ideas, how about an external tool (script) that takes the KML file directly (it's a text file anyway), uses open topo data or https://api.open-elevation.com/api/v1/lookup?locations={lat},{lon} to get the topology elevation for each co-ordinate in batches of 100 (improve this with grouping points within 2 meters), then find out the height difference from the takeoff point for each point (subtract the takeoff point absolute altitude from all other), then subtract the relative elevation from the elevation of takeoff point for each position - I think that will give proper AGL Basically relative height from takeoff - relative elevation wrt takeoff = AGL That way, it takes the KML file and outputs an KML file that can be integrated with the Google maps etc seamlessly for focused analysis of specific logs. What do you think of this approach? |
Beta Was this translation helpful? Give feedback.
-
|
@Llaves try this one. DJIFlightRecord_2023-06-20_15-59-26_.csv also, tell me your thoughts about the KML approach. |
Beta Was this translation helpful? Give feedback.
-
|
There is now a suite of related web pages for processing the csv output of ODL. FlightPathProcessor accepts the csv file, looks up the ground elevation, and produces graphs of the path over terrain as well as a graph of elevation above ground level. FlightChartViewer - accepts the csv produced by FlightPathProcessor and reproduces the charts without having to fetch the elevation data again. FlightPathSRT accepts the csv produced by FlightPathProcessor and produces a subtitle file to use with a screen recording from the controller. The subtitle contains a timestamp and altitude above ground level. This might help you associate a camera view with the altitude. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
(There's a new web version of the program described below. The links are here. The general explanation in this post is still valid, but jump to the link to actually compute the true elevations and graph the results)
Regulations around the world restrict drone operations to 120-150m above ground level (AGL) for the majority of users. I've found that it can be very hard to gauge how high I'm flying when the terrain is widely varying, particularly when there are steep rises or drop-offs, which describes the topography for most of my flying. The telemetry graph in the app shows the elevation relative to the launch point, generally measured by barometric altimeter. This graphs tells very little about actual altitude AGL when the terrain elevation changes significantly along the flight path.
Here's the telemetry plot for a recent flight:

Looks pretty mundane - climb 3 meters at takeoff, then a short time later climb to 10 meters for most of the flight before returning.
But this ignores the terrain:
I'm standing at the edge of a steep drop-off over a broad canyon. Within the first 10 meters of flight the ground level has dropped 10 meters. At the lowest point the ground has dropped 25 meters, making the peak altitude 35 meters, not 10. Still within the regs, but not the altitude I'm seeing in the telemetry plot or the exported .csv file.
Here's the profile of the altitude AGL:
Now imagine flying your drone next to the Rio Grande Gorge Bridge outside Taos, NM -
Your flight is level relative to the takeoff point, the controller is telling you the altitude is 3m the whole time. But in reality you max out at 300m, far in excess of the allowed altitude.
I find the problem to be even greater when flying up a hillside. I can't really tell the horizontal distance to the hill and end up flying much higher with respect to the ground than I think I am.
You can export your flight to kml and view it in Google Earth to get a rough sense of your altitude along the flight path, but that's hard to visualize. In addition, I've found the launch point elevation estimate in the flight log to be very inaccurate. The elevation in the log is presumably the GPS elevation, which should be accurate to 10-20 meters. Yet the elevation in the log differs by 50-60m from true elevation. In one instance the difference was 120m! This probably due to the choice of model for the earth's surface. Different models can vary by 100m or more at various points on the earth's surface. Variations of 10-20 meters are common. The key point is that when plotting the height along the path, the same model has to be used.
Here's a Google Earth view of the flight used in the plots above. The orange trace is the kml file exported from the app, using the launch point elevation in the log. The red trace uses a NED10 elevation. (NED10 is a USGS elevation dataset with 10 meter resolution.) The paths differ by 60m. The red path starts on the ground, the orange starts 60m above the ground.
Visualization Tools
You can use this python script to generate the various plots and tables to gauge you ability to know how high you are flying AGL.
First step is to export your flight log to csv using the export button in the upper right of the flight view.
You then run the script:
python ProcessFlightPath.py <flight_log.csv> <output files root name> <Label for kml and plot> --dataset "ned10m" --plotYou may need to install the pandas, requests, and matplotlib libraries. You can do this with
>pip install pandas requests matplotlibThe .csv output file contains a subset of the columns of the input .csv, along with new columns for the NED10 ground level, Distance Along Path, Flight Altitude, and Height Above Ground. The file contains every 10th row of the input file to reduce the number of elevation look-ups.
The output .kml file differs from the one the app will output only to the extent of using a NED10 lookup of the launch point elevation.
If your included the --plot argument, you will also get a .png file with the altitude AGL.
If you are using Excel to view the .csv file generated by the script, Visual Basic for Apps script will add the two plots to your workbook.
If you don't know how to add a VBA script, this is one of many web pages that explains how.
Beta Was this translation helpful? Give feedback.
All reactions