Zusammenfassung
Geospatial Video Log (GVL) files are recorded for all video flights captured using the Site Scan Flight app. For more information, see the knowledgebase article regarding these log files: How To: Use geospatial log files from video flights captured with Site Scan Flight for ArcGIS.
It is presumed the user will apply the GVL file along with the video in either FMV in ArcGIS Pro (Image Analyst extension required) or via Oriented Imagery which supports video in both ArcGIS Pro and also web apps.
If no correction is applied to the height values recorded from the drone, the user may find an error with the geospatial data – one of the following two cases:
- [applicable to ArcGIS Pro or a web map] an obvious scale error between features in the video (and size of the video footprint) and the 2D map (or 3D scene) view,
- OR [applicable to ArcGIS Pro] the video footprint does not appear on the map at all, and if viewed in a 3D scene, the drone may appear to be below the ground. To see this, you may need to de-select 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.
Discussion
The reported altitude from the drone is likely to be incorrect. It is known that many models of drones report incorrect altitudes and applying an altitude correction 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.
Note for clarity that the 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).
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.
Vorgehensweise
The workflow below describes how to check for any altitude errors in the Geospatial Video Log file and correct them if necessary. The goal is to determine the correct height of the drone, then edit the height values in a copy of the log file and reprocess the video, either by re-running the Video Multiplexer geoprocessing tool if using FMV in ArcGIS Pro, or recreating the Oriented Image Catalog.
Note:
For clarity: this altitude error is not complicated further with changes in the terrain, for example, the project site has a lot of hills/valleys, so the altitude above ground was constantly changing. 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. 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.
Site Scan Flight version 4.2 or later
- Make a copy of the Geospatial Video Log file. Never edit the original.
- Use the ArcGIS Online 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.
- 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. If this value does not match what is reported in TakeoffLocationAltitude, we’ll adjust the altitude values in the log file.
- 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.
- Open your copy of the Geospatial Video Log file in Microsoft Excel (or another spreadsheet) 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
- Save the copied Geospatial Video Log file as “filename_corrected.xslx”, formatted as a spreadsheet, not *.csv.
- Set format for the UnixTimeStamp column to Number.
Warning:
This is necessary because Microsoft Excel changes UnixTimeStamp to scientific notation, and if not set to Number before saving, the timestamp values is corrupted. (See the blog Video Multiplexer Tips and Tricks for full doc on using the Video Multiplexer and editing the files in MS Excel.
- Select column and format to Number. Note the values are shown as floating point, as shown in the next image.
- Format values to be INTEGERS.
- Add new columns labeled ActualLaunchAltitude, HeightCorrection and CorrectedAltitude.
- 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.
- Insert a formula in HeightCorrection to calculate as:
HeightCorrection = (ActualLaunchAltitude minus TakeoffLocationAltitude)
and copy this value to all records in the GV Log file. - Insert a formula in CorrectedAltitude to calculate as:
CorrectedAltitude = (SensorAltitude plus HeightCorrection)
and copy this value to all records in the GV Log file. - 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.
- Select the numeric values (below the field name) in the CorrectedAltitude column, copy all, then select the value rows under SensorAltitude, as shown in the image below, 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.
- 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.
- Save the corrected file, ensuring it is in CSV format.
- 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.
- 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.
Applying a correction based on Site Scan Flight version 4.1
If using Site Scan Flight v4.1, the fields regarding the drone launch point are not present in the GV Log file, so you must use other methods to calculate an offset for the height values.
- If you started your video recording while the drone was on the ground, you can use the fields named SensorLongitude and SensorLatitude to navigate on the map to find the elevation of your launch point and follow the procedure described above. If the video started on the ground, the altitude value in the SensorEllipsoidHeight field shows the reported altitude.
- If you started your video recording after the drone was off the ground but you know the flight altitude above ground, the values in SensorEllipsoidHeight should represent the ground elevation plus the flight altitude above ground. Sample the SensorEllipsoidHeight as well as ground elevation at any Longitude and Latitude, and calculate a height error which can be applied using the procedure described above.
- Calculating a correction for unknown drone height: If the reported altitude is incorrect and you do not know the flight altitude above ground, for example, it was a manual flight and manual video recording, then proceed as follows:
Note:
This assumes you have Image Analyst and the FMV tools. If not, you may have to estimate these values using other methods.
- Process the video with FMV in ArcGIS Pro using the uncorrected GVLog file.
- Load the video into FMV in ArcGIS Pro.
- If the drone appears to be below ground, find the ground orthometric height, add 100 meters simply to enable analysis, and reprocess.
- Use the FMV video player to capture a frame out of the video showing an object that can be measured, for example, a building, width of a road, or a tennis court.
- Measure the apparent size of the object and compare it to the actual size, measured from the Esri imagery basemap.
- Calculate a scale error. For example, if the building appears to be 12 meters across but should be 18, the scale error is .666 – so the height above ground is 66% of the correct value. Or if scale appears 25% too large – for example,. a football field appears to be 125 yards long – then the height above ground is 25% too high.
- Use the map to look up the Orthometric elevation of the object you measured.
- Subtract that sample point elevation from the SensorEllipsoidHeight (reported) at that location to get H (reported).
- Calculate a fixed height error in meters using the scale error:
height error = H (reported) * (1 - scale error)
- For example: for H (reported) = 90 meters
- if scale error = 66%, height error = 90*.333 = +30 meters (add to SensorEllipsoidHeight)
- if scale error = 125%, height error = 90*(-.25) = -22.5 meters (subtract from SensorEllipsoidHeight)
- Continue with the workflow to alter the height values in SensorEllipsoidHeight based on the fixed height error.
Note:
All references in this section use the field label SensorEllipsoidHeight, which was included in Site Scan Flight version 4.1, but you may reference orthometric height and change the field name to SensorAltitude as mentioned above.
Additional considerations
Offset for launch point from rooftop of a building. Note that all elevation values in the map on ArcGIS Online (log-in required) represent ground elevation, so 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, Site Scan 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.