Posts by: pierotofy

Introducing Contours in WebODM


With the 0.9 release of WebODM we are introducing the ability to preview and export contours directly from map view. This has been a much requested feature and we decided to take on the work to implement it.

Behind the curtains we used the GRASS GIS engine which already powers the volume measurement plugin to do the contours calculation, with some help from GDAL/OGR. The beauty of using a familiar language to power these computations is that it’s really easy (if you are familiar with GRASS) to understand how the information is calculated. No mistery. It’s all here.


WebODM 0.8.1 is out! Improvements and Task Imports.


Originally posted on

Today we’ve released version 0.8.1 of WebODM. It features several improvements including:

  • Ability to import tasks that have been processed on another WebODM instance (or via or NodeODM).
  • Custom TMS/XYZ basemaps and no basemaps toggle.
  • Review step prior to processing a dataset, which should reduce mistakes when creating a new task and selecting the wrong node or options.
  • New UI colors.
  • Simplified process for starting a development environment (deprecated the script in favor of a –dev flag to be passed to
  • Volume measurement bug fix for iframes and public links.
  • Export volume measurements! This was probably overdue, there was no way to export the geometry / volume calculation results out of WebODM. Now you can!

Announcing CloudODM and PyODM


2019 is off to a great start for OpenDroneMap. We are announcing the releases of two open source projects, CloudODM and PyODM. Let’s explore each.


Photogrammetry is a memory intensive process. Not all computers are equipped with large amounts of RAM or powerful CPUs. And of course, we’d like ODM’s capabilities to be available on as many platforms and machines as possible. CloudODM is a command line tool to process aerial imagery in the cloud via NodeODM‘s API. Small, native clients are available for all major platforms including Windows, Mac and Linux. Perhaps you have installed NodeODM on one of your powerful machines at home, but you have a less powerful laptop that you use for your daily work. Now you can invoke odm commands from the less powerful computer and let CloudODM handle the rest. Scripting and automation anyone?


Speaking of scripting, we couldn’t just release a command line client without having a proper library for doing the same. PyODM is a Python library that speaks the NodeODM API and allows developers to implement image processing capabilities in 5 lines of code!

from pyodm import Node
n = Node('localhost', 3000)
task = n.create_task(['examples/images/image_1.jpg', 'examples/images/image_2.jpg'], {'dsm': True})


We want to take a moment to thank our community of users. Your feedback has been and continues to be invaluable for the growth of the project. It’s knowing that there are thousands of you out there using the software daily that motives us to continue working. So thank you!

If you haven’t yet, keep the feedback coming and let us know what you would like to see next.

Better Everything: Announcing OpenDroneMap 0.4


After much anticipation, we are proud to announce the 0.4 release of OpenDroneMap. We have given a preview of what was coming in a previous blog post and in this post we want to expand on what you can get today from the program.

Much Denser Point Clouds

With the proper settings (just increase –depthmap-resolution) we can now easily achieve 20x point density, much better point coverage and better memory usage. This is thanks to the fantastic work of Dakota that brought Shading Aware Multiview Stereo in replacement of PMVS.

Better Orthophotos

We have done two major improvements to increase the quality of our orthophotos. A new 2.5D meshing approach which is both faster and yields improved building outlines and a modification of the texturing program to affect the priority of nadir shots (which users can control via –texturing-nadir-weight). With these two modifications in place, we are seeing visual improvements across a wide range of datasets.

Better Meshes

The new version includes an improved screened poisson reconstruction algorithm and an additional cleanup step, which means better 3D meshes, less artifacts and better memory usage.

Faster DSM/DTM Generation

Much denser point clouds meant that existing performance problems in the DEMs generation became really apparent and a bottleneck. This is why we worked to both parallelize and speed-up key areas of the DEMs pipeline, which now yield results orders of magnitude faster, especially on multi-core machines.

Standarized Units

We have normalized –orthophoto-resolution and –dem-resolution to use the de-facto industry standard unit of cm / pixel. This is a breaking change, so please update your scripts if the output resolutions are lower than what you would expect. Previous units were pixel / meter and meter / pixel. OpenDroneMap finally joins the rest of the industry in terms of standard units.

Ground Sampling Distance

With this optimization, texturing is faster, memory usage is lowered and if you try to process at a resolution higher than what your images allow you, OpenDroneMap will automatically choose the highest resolution for you. No more guess work. If you want the highest resolution possible for your dataset, simply set –orthophoto-resolution to 0.0001 and OpenDroneMap will do the rest.

Please update, test and report any issues you find directly on GitHub.




From Images to Commons: Fast Sharing to OpenAerialMap


OpenDroneMap processes aerial imagery. OpenAerialMap (OAM) collects aerial imagery. It’s just natural that the two projects should have some form of integration.

Today, thanks to the efforts of participants from both projects, we are announcing a new feature in WebODM for quickly sharing processed orthophotos to OAM. We expect that this feature will increase user’s participation in the collective effort to build an open access repository of aerial imagery.

Why should we care about open aerial imagery? Aside from the many reasons that have been covered elsewhere and that are not within the scope of this post to discuss, freely accessible aerial imagery is going to be key to keep up with innovation trends. With the recent improvements in AI, availability of training data is going to be a requirement for developing solutions that are “smarter” and provide better analytics.

One of the interesting applications of AI for OpenDroneMap is automatic parameter tuning based on scene detection. Currently users can tweak dozens of different parameters before processing a dataset. It’s often a painful trial-and-error process. AI could enable workflows in which images are passed through a scene detector that can answer queries such as “is this a picture of farm land?” or “is this an urban area?”. Depending on the scene, certain parameters could be automatically tweaked to yield better results, without needing user interaction.

To start contributing open imagery via WebODM, simply update the program to the latest version and look for the “OpenAerialMap” menu.

We will be presenting more details, including a sneak peek of how to start creating your own WebODM plugins, at FOSS4G in Dar Es Salaam on August 29th @ 12:00 in the Bagamoyo room. Look for our talk From images to commons: fast sharing to OpenAerialMap using WebODM in the conference program.

Hope to see you in Dar. Karibu!