Drone2Map: How to adjust image altitude in EXIF metadata from DJI Drones

Discussion created by EthnotechLLC on May 3, 2018
Latest reply on Sep 12, 2019 by Tao_Li

I just went through a workflow that I wanted to highlight here in case it helps anyone with post processing drone images in Drone2Map.  This is for those people using DJI drones.  Sorry if this has already been covered elsewhere.


When producing the EXIF metadata for each image, the image altitude is populated with the DJI aircrafts GPS altitude reading.  This can be several hundred feet off, which is obvious in Drone2Map when you view the images in 3D view.  For example, I was doing a 3D building survey and flew two loops at roughly 30 and 60 feet off the ground.  When I viewed the captured images in Drone2Map 3D view, they appeared more like 200-230 feet off of the ground and processing the images resulted in bizarre results even when running GCP's.  After browsing some DJI forums, I found the fix. 


Sidenote: While collecting data, first calibrate the IMU through the DJI go app so that you can be sure your barometer readings are as accurate as possible given changes in weather and elevation between different work sites.


There is another field in the EXIF metadata called RelativeAltitude which is given from the aircraft barometer.  This altitude is far more accurate, but you need to do some work to get Drone2Map to adjust image altitude to these readings.


Most flights with DJI and DroneDeploy will navigate to the flight altitude relative from takeoff, then stay there for the duration of the flight, not adjusting flight height relative to terrain.   So, you want to adjust flight height based on the elevation of the takeoff point.  You can get the elevation of the take off point in several ways. If you have elevations from GCP's use those.  If not, you can go to manage GCP, then add "from map".  Click where you took off and the GCP added will give you an elevation.


The Next step is to create a flat DEM with the takeoff elevation as the only elevation value across the whole raster.  I just created a polygon, added a field and put the takeoff elevation, then use the "Convert Raster to Polygon" tool to make it into a DEM.  Note that Drone2Map needs the DEM to be in .tif format.


So with that in place, I had two sets of images (Flown at different altitudes) I needed to adjust, and Drone2Map 1.3 added the necessary feature to do this.  First, I loaded one image into this tool Jeffrey Friedl's Image Metadata Viewer  in order to see the RelativeAltitude reading.  Next, I select all images that were flown at the same height and select "adjust image altitude". Enter the value from the Relative Altitude for all images flown at one height. Then select your custom DEM and hit Ok.  All of the images altitudes will be adjusted to the takeoff elevation.  If you use the elevation service, it will not work correctly and adjust the image altitude based on underlying terrain.  Repeat this process for any images that are at different flight heights.


Not sure if this makes perfect sense or not but there ya go.  I found this process easier than using command line EXIF readers and cheaper than using MapsMadeEasy image altitude adjuster.  Hope this helps someone, it improved my results immensely even with GCP's.