Hands-on Tutorials

Open Drone Map — Local and Urban Scale Mapping Available to All

Local and urban scale collection, processing and mapping is now accessible to everyone, including you

JB
Towards Data Science
5 min readMay 6, 2021

--

Photo by Diana Măceşanu on Unsplash

Photogrammetry (the creation of three-dimensional data from two dimensional imagery) is not a new technique — in fact, according the Wikipedia, the use of photos for topographical mapping was first proposed in 1840 by French Surveyor Dominique Arago [1]. Classic examples include stereophotography which exploits the parallax effect of two images taken from slightly different perspectives to induce a 3D effect whilst more advanced examples of photogrammetry use digital images with spatial metadata taken from many differing angles using the power of computers to crunch out orthomosaic imagery and pointclouds.

Through the power of the open-source community, one application stands out. The Open Drone Map (ODM) is a dockerized application that allows individuals and organisations in a scalable manner to process raw imagery collected from effectively any geo-tagged set of imagery (think cameras and drones). Whilst high quality LiDAR is far more accurate in the x, y and z, access to LiDAR payloads is still fairly expensive when compared to the lower end of the commercial off the shelf drone market.

The Open Drone Map allows sets of images to be processed to varying levels on anything from a PC all the way through to virtual clusters, clouds and servers making it scalable. Outputs include orthomosaics (or orthophotos), digital surface models (DSM), digital elevation models (DEM), pointclouds and 3D textured models — all with spatial attribution to work with your preferred geospatial information system (GIS)!

The number of use cases and applications for some of the datasets listed above are endless opening an amazing world of urban and local scale spatial analytics. For example, I’ve used models generated over my property to track the growth of vegetation through seasons, create a high-resolution map of my house, calculate elevation difference from my water tank to bathroom to calculate pressure head and even use the imagery as a base map to track and attribute the numerous species of plants on my property so I can easily reference them for future agricultural activity.

Image by Author

The first step is having access to a good sample of collected imagery. You can either collect it yourself or access a repository of samples collected by other people. If using a drone however, be sure to understand the laws that apply to where and how you fly your drone in for your area. I use a DJI Mavic Pro, which is a standard RGB sensor with GPS positioning and IMU. Here are some considerations for how you might consider collecting imagery with a drone as an example:

  • How large the area is and how many batteries may be required (1 x battery can map a couple of acres in one go)
  • Are there vertical obstructions that may impact take off, landing or movement around the area of interest
  • What are the legal considerations for the location I am mapping including airspace rules and regulations, privacy and qualifications required for certain flying modes
  • Weather conditions including windspeed, rain, and lighting conditions (I find between 09–11AM and 1–3PM are good times for lighting and shadow)
  • How much overlap in images should I achieve to optimise output whilst minimise collection time
  • There are applications out there that can automate the collection of imagery but I will let you explore those on your own.

If you would like to access existing imagery repositories, I recommend checking out the ODM forum for available datasets.

Setting Up ODM

For Windows or Mac users, ODM offers a simple installer method at a cost for a one-time purchase that reduces the need for any command line installation processes and makes things easier with a GUI. It’s clear that a lot of development work is going into making this tool as widely accessible to everyone as possible, and to make it sustainable a small price has been included for the easier install methods.

The following process I will walk through uses the dockerized instance of WebODM running on a Linux operating system on my gaming laptop and is completely free. I chose Linux because it’s good for package management and dependencies whilst having a low overhead on available compute resources (we want maximum processing power!).

Install WebODM

  1. Install the latest version of Docker (varies between Linux distribution)
  2. Pull the latest docker image of ODM from the docker repository docker pull opendronemap/odm
  3. Navigate to the WebODM directory in your command line
  4. ./webodm.sh start (bash command to start docker environment) — Docker will start downloading and creating images and containers required to run the ODM application
  5. Once complete and the Docker application is running, navigate to your favourite browser and go to localhost:8000
  6. I should note at this point with a basic configuration, ODM is not configured with certificates etc. If you wanted to run ODM by accessing it across a server, I would recommend delving into a more comprehensive security configuration.

You should have a pretty nice and clean GUI within your browser. ODM breaks things down simply into ‘Projects’ and ‘Tasks’. You can have many tasks within a project and can have many projects.

Processing Imagery

  1. Create a project
  2. Create a task and add your image set into the job — avoid images that won’t value add to your job such as horizon lines or imagery of skies
  3. Select your processing option (selecting 3D will create a few datasets including an orthomosaic)
  4. Click submit — your job processing time will be dependent on the processing power of the node your using and/or the number of nodes you choose
  5. Don’t forget to issue a stop command ./webodm.sh stop when your done to close down Docker — the images of ODM in Docker will still be there for next time and should boot up very quickly the second time around.

Here is an example of a job I ran which included 280 images from a DJI Mavic Pro. The job on my two-year-old gaming PC took approx. 2–3 hrs to process. WebODM even has a built in ‘GIS’ to view and do basic spatial analysis.

Image by Author
Image by Author

There are so many additional features to explore with this application. These include using additional processing nodes, using ground control points to improve spatial accuracy, tweak collection parameters and more. The beauty is ODM is a well-supported open-source package that has a great knowledge base for those that want to know more including community forums. Welcome to the world of Open Drone Mapping!

References:

[1]: En.wikipedia.org. 2021. Photogrammetry — Wikipedia. [online] Available at: wikipedia (click link), accessed 6 may 2021.

--

--

Spatial science with a background in civil engineering, remote sensing and GIS. Python fanatic.