HOW TO

Correct drone flight altitude data in Geospatial Video Log (GVL) files in ArcGIS Flight

Last Published: December 10, 2024

Summary

Context

It is known that many models of drones report incorrect altitude values. Applying an altitude correction to values found in Geospatial Video Logs is the focus of this document.

As can be seen in the diagram below, the apparent size of the camera’s footprint on the ground depends on an accurate value for H (the height of the sensor above ground).  If the reported altitude is too high, the footprint shown by ArcGIS Pro will appear to be too large.  If the reported altitude is low, the footprint will be too small.  In extreme cases, the drone may report itself to be below ground elevation, in which case no footprint appears in ArcGIS Pro.

  • The field of view (based on focal length of the lens and sensor size) must also be known to calculate the size of the image footprint on the ground.
  • Errors in altitude will also impact the accuracy of measurements made in the images e.g. lengths or areas of observed features.

the apparent height above ground depending upon reference used

Note:
Height above ground (H) must be calculated within the software, and the altitude data from most drones
is reported as height above sea level (ASL, also known as orthometric height).

Discussion

Geospatial Video Log (GVL) files are recorded for all video flights captured using ArcGIS Flight. Users can combine the GVL file and the in-flight video with two methods:

  • Full Motion Video workflow in ArcGIS Pro: the user combines a video file and a corresponding Geospatial Video Log file using the Video Multiplexer geoprocessing tool to create a geo-enabled video. 
  • Oriented Imagery: the GVL file and video are ingested into an Oriented Image Catalog to enable referencing the full extent of the video on a map.

We can use either orthometric height or ellipsoidal height in the Geospatial Video Log file, and ArcGIS uses this along with the world terrain layer to calculate H, and create the video footprint on the map. If no correction is applied to the height values recorded from the drone, the user may encounter the following errors:

  • In ArcGIS Pro or a web map, an obvious scale error may be noticeable between features in the video or video footprint size and the 2D map/3D scene view 
  • In ArcGIS Pro, the video footprint may not appear on the 2D map at all, or the drone may appear to be below the ground in a 3D scene. To see this, you may need to turn off the World Elevation layer in the Table of Contents as seen in the image below, to temporarily remove the Ground from the scene.  If the drone is reporting its elevation below the ground, it should now be visible.
deselecting the World Elevation layer in the TOC

Procedure

The workflow below describes how to identify and correct altitude errors in the Geospatial Video Log file.

Note:
For clarity: this altitude error does not consider complicated changes in the terrain. For example, the project site has a lot of hills/valleys, so the altitude above ground had high variation. Changes in project terrain are addressed by FMV and Oriented Imagery based on a world elevation dataset, presuming the sensor height above sea level is correct.  Therefore, we are seeking one fixed value for the error - a height offset.  If we can determine the proper offset to compensate for the altitude error, it will be applied to all records in the GVLog file.
  1. Make a copy of the Geospatial Video Log file. Never edit the original.
  2. Use the ArcGIS Online Sample Heights for World Terrain map to find elevation values for the terrain of the project site.

    This map accesses the Esri World Elevation, which is free to any users with an Esri account but is not public. Therefore, users must log in with an ArcGIS Online account to use this map to look up elevation values.

    You can navigate to the project site and the drone launch point by visual navigation, or (if using Site Scan Flight v4.2 or later) you can open the GV Log file and copy the two values in the fields named TakeoffLocationLongitude and TakeoffLocationLatitude, and paste them into the search bar on the map – be sure to enter Longitude first, Latitude second, separated by a comma, as seen in the next image.


  1. Determine the elevation of the ground at the launch point for the drone by clicking on the map.  The goal is to determine what the drone should report if it is sitting on the ground.
    • Record the value reported for Orthometric height (ASL).  If this value does not match what is reported in TakeoffLocationAltitude, we’ll adjust the altitude values in the log file.
  2. You can also read the ellipsoidal height (HAE) of the ground for reference – see the section “Correcting for height above ellipsoid” below if your organization would prefer all data to be referenced to HAE, not ASL.  Since we are applying a correction, you may choose either vertical reference.

  1. Open your copy of the Geospatial Video Log file in Microsoft Excel (or another spreadsheet editor) and compare the elevation sampled from the map to the value in TakeoffLocationAltitude. If these values differ by less than ~3 meters (or ~2% of the height above ground), applying a correction may not be necessary.

Applying the Correction

  1. Save the copied Geospatial Video Log file as “filename_corrected.xslx”, formatted as a spreadsheet, not a *.csv file.
Note:
This is necessary because Microsoft Excel changes UnixTimeStamp to scientific notation (shown below), and if not set to Number before saving, the timestamp values are corrupted.  (See the blog Video Multiplexer Tips and Tricks for full doc on using the Video Multiplexer and editing the files in MS Excel.

  1. Select the UnixTimeStamp column.
  2. Use the dropdown menu to change the column format to Number. Note the values are shown as floating point, as shown in the next image.

  1. Use the Decrease Decimal tool to convert to integer values.

  1. Add new columns labeled ActualLaunchAltitude, HeightCorrection and CorrectedAltitude.
  2. Enter the value for the launch altitude taken from the map into the column labeled ActualLaunchAltitude and copy this value to all records in the GV Log file.
  3. Insert a formula in HeightCorrection to calculate as: HeightCorrection = (ActualLaunchAltitude minus TakeoffLocationAltitude) , and copy this value to all records in the GV Log file.
  4. Insert a formula in CorrectedAltitude to calculate as: CorrectedAltitude = (SensorTrueAltitude plus HeightCorrection) , and copy this value to all records in the GV Log file.
  5. Save the edited Geospatial Video Log file in *.xslx format to keep a record of your calculations, then save a copy using Save as CSV with filename_corrected.csv.
  6. Select the numeric values (below the field name) in the CorrectedAltitude column, copy all, then select the value rows under SensorTrueAltitude and use the Excel function Paste special to paste VALUES.  This is necessary because the final output file must be *.csv format, and cannot include MS Excel formulas. The values in the SensorTrueAltitude column should now match those in the CorrectedAltitudeColumn.
  7. As a last step, rename the column for the corrected altitude values.
    • If referencing orthometric height, name this column SensorAltitude.
    • If referencing ellipsoidal height, name this column SensorEllipsoidHeight.
  8. Save the corrected file, ensuring it is in CSV format.
  9. Be sure the Close the file in Excel before returning to ArcGIS Pro.  The ArcGIS Pro geoprocessing tools will fail if the input filename_corrected.csv file is open in Excel.
  10. If using FMV in ArcGIS Pro, run the Video Multiplexer using the edited filename_corrected.csv to process the original video file.  If using Oriented Imagery, run Add Images to Oriented Imagery Catalog.

Additional considerations
All elevation values in the ArcGIS Online Sample Heights for World Terrain map represent ground elevation. If the drone was launched from the top of a building, you must compensate for this additional height offset since it will not be correctly included in the value for TakeoffLocationAltitude.

An additional correction may be required for the Horizontal Field of View. Since many drones offer optional configurations for video resolution, for example, 4:3 aspect ratio vs.16:9 aspect ratio, and different pixel resolutions, ArcGIS Flight may have an incorrect value for the image size and therefore the HorizontalFOV in the GV Log file. This depends on how the video resolution is configured for this flight, but note that this only introduces a small error.  If you have completed the altitude correction described in this document and still find scale errors of a few percent, contact Esri Technical Support to discuss corrections for the video aspect ratio and HorizontalFOV.

Article ID: 000027161

Software:
  • Mobile Applications

Receive notifications and find solutions for new or common issues

Get summarized answers and video solutions from our new AI chatbot.

Download the Esri Support App

Discover more on this topic

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options