Thanks to drone images and the OpenDroneMap platform, we can obtain photogrammetric models of any surface of the planet, where all elements are at the same scale, free of errors and deformations (orthophotography).

Create Elevation Models from Drone Imagery
Photos taken with drones

Alternatively, you can hire satellite companies or high-altitude aircraft. These costly services are reliable and offer a perfect scale of the recorded region (they need to be at regional scale (>1 km²)), unlike drone photos (which have this flaw).

To solve this problem, there is a platform called OpenDroneMap that processes images taken with drones. The regional scale (>1 km²) is ideal for water resource and environmental studies, allowing you to determine surface and subsurface water flows and their interaction with the ecosystem.

What is OpenDroneMap?

OpenDroneMap is a complete platform for processing drone images. The environment provides different tools for image processing and analysis:

  • Point clouds
  • Meshes
  • Rasters like GDAL
  • OpenSfm
  • OpenCV
  • Pdal
  • Generate a geospatial point cloud
  • Generate orthophotos
  • Create elevation models

To optimize all dependencies of OpenDroneMap, it is recommended to run it in a virtualization environment like Docker.

Create Elevation Models from Drone Imagery
Photos at high altitude

Inputting data into OpenDroneMap

For this method, you need to have the photographs. If you don't have photos, you can download sample images from the website “Adobe Buttes – Delta, Colorado”. Each package has about 500 images; in this test we divided the images into three subgroups (about 150 images each).

Now we will copy the Linux commands to store the date and the Docker commands to run OpenDroneMap:

date > outputData/images400start.log
docker run --rm -v "$(pwd)/inputImages/images400:/code/images"
-v "$(pwd)/outputData/odm_georeferencing400:/code/odm_georeferencing"
-v "$(pwd)/outputData/odm_orthophoto400:/code/odm_orthophoto"
opendronemap/opendronemap
date > outputData/images400end.log

Performance analysis using Python:

With Python we have recorded and processed the start and end times of OpenDroneMap processing (amount and size of the photos processed).

Create Elevation Models from Drone Imagery
Response time

If we perform the simulation calculation for a median computer (Architecture: x86_64 - CPU(s): 8 / Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz / CPU MHz: 3899.047) it took about 6 hours for about 500 images (total weight 3000 MB).

Next you should compare the number of images against computational time (trend line and regression equation) with respect to the three packages assembled (about 150 photos each) that have better performance, contrasted to the insertion of a single package (500 photos). Yes, clearly this is not for beginners, but rather for people who know what they want to do and have knowledge on how to do it.

Create Elevation Models from Drone Imagery
With the three packages

Thanks to grouping images by location, we have greatly improved computation time, although in some tests the differential distance of the overlap of the resulting images was more than 1 meter. Depending on your needs, this program may be useful to you.

Official site:

https://old.neoteo.com/skypixel-las-mas-espectaculares-fotos-aereas-hechas-drones-galeria/