Drone Imagery into Construction Deliverables
Turn raw drone photos into orthomosaics, 3D point clouds, and volume maps.
Introduction
30 Second Summary
Construction sites change every day. Knowing exactly how much earth has been moved or where materials are stockpiled used to require expensive surveying crews and repeat visits.
In this project, you will build a local photogrammetry processing pipeline that turns raw drone photos into the same deliverables that construction firms pay thousands for. You'll process 167 real aerial images into orthomosaic maps, 3D point clouds, elevation models, and volume calculations.
What You'll Build
You'll install WebODM locally, process a geotagged drone dataset, and produce construction-grade survey outputs viewable in professional GIS software.
By the end of this project, you'll have:
- A running WebODM instance processing drone images through a browser-based interface on your machine.
- A complete set of construction deliverables: orthomosaic map, 3D point cloud, and digital elevation models (DTM and DSM).
- Volumetric measurements of terrain features computed directly in WebODM's built-in map view.
- Secret Mission: Compare two elevation models to compute a cut/fill difference map showing exactly where and how much earth has moved between surveys.
Are there any prerequisites?
No prior experience with photogrammetry or GIS is required. However, your machine needs at least 16 GB of RAM and 100 GB of free disk space to run the processing pipeline.
Step 1 covers the full installation of Docker Desktop, WebODM, QGIS, and CloudCompare.
Install Docker Desktop and WebODM
WebODM is a browser-based application that runs inside Docker containers. Docker packages complex software into isolated environments so you can run a full photogrammetry pipeline without manually installing dozens of dependencies.
In this step, you'll install Docker Desktop, clone the WebODM repository, and start it up. By the end, you'll have a fully functional photogrammetry interface running in your browser.
In this step, get ready to:
- Install and configure Docker Desktop.
- Clone and start WebODM.
- Create your WebODM admin account.
Install Docker Desktop
Docker Desktop provides the container runtime that WebODM needs. You need at least 100 GB of free disk space and 16 GB of RAM on your machine for photogrammetry processing.
- Press Cmd+Space (macOS) or the Windows key (Windows) to open your search bar.
- Type Terminal and press Enter to open it.
- Check whether Docker is already installed by running this command:
docker --version
✔️ I see a version number
Docker is already installed. Make sure Docker Desktop is running by looking for the whale icon in your menu bar (macOS) or system tray (Windows).
ⓧ Command not found
- Open docker.com in your browser.
- Download Docker Desktop for your operating system.
- Run the installer and follow the on-screen prompts.
- Once installation finishes, launch Docker Desktop.
- The Docker whale icon appears in your menu bar (macOS) or system tray (Windows) when it's ready.
What if I'm asked to sign in?
Docker Desktop may prompt you to create a Docker account or sign in. You can skip this for now by closing the sign-in dialog.
With Docker Desktop running, you need to allocate enough resources for photogrammetry processing.
- Open Docker Desktop (click the whale icon in your menu bar or system tray).
- Click the gear icon to open Settings.
- Select Resources in the left sidebar.
- Set Memory to at least 8 GB (16 GB is better if your machine has it).
- Set CPUs to at least 4.
- Click Apply & Restart.
Why allocate so much memory?
Photogrammetry is memory-intensive. Processing 167 drone images requires approximately 16 GB of RAM. Giving Docker at least 8 GB ensures it can run the WebODM containers without crashing during processing.
Don't see the Resources option?
On newer versions of Docker Desktop for macOS, resource limits may be managed automatically. If you don't see a manual slider, Docker is already using system resources dynamically. Help me find Docker Desktop resource settings on my machine.
Clone the WebODM repository and start it
WebODM is distributed as a set of Docker containers that you start from a cloned repository. The startup script handles downloading all the required images automatically.
- Move to your Desktop by running this command:
cd ~/Desktop
- Clone the WebODM repository and move into it by running these commands:
git clone https://github.com/WebODM/WebODM --config core.autocrlf=input --depth 1
cd WebODM
- Confirm the folder exists by running:
ls
You should see the WebODM folder listed in your Desktop directory.
Seeing 'git: command not found'?
You need Git installed to clone the repository. On macOS, running a git command for the first time triggers an automatic install prompt for Xcode Command Line Tools. Accept the prompt, wait for it to install, then try the clone command again.
On Windows, download Git from git-scm.com and install it, then reopen your terminal. Help me install Git on my machine.
- Start WebODM by running this command:
./webodm.sh start
What does this command do?
The webodm.sh script downloads several Docker images (about 5 GB total on the first run) and starts the WebODM containers. This first-time download takes 5-15 minutes depending on your internet speed.
Wait for the script to finish. You'll know it's ready when you see a message indicating WebODM is running.
Script failing or Docker errors?
Make sure Docker Desktop is running before executing the start command. Look for the whale icon in your menu bar or system tray.
If you see a permissions error on macOS, the script may need execute permission. Run chmod +x webodm.sh and try again. Help me troubleshoot my WebODM startup error.
Verify WebODM is running and create your admin account
Once the startup script finishes, WebODM serves a web interface on your local machine. The first time you open it, you'll create an admin account.
- Open your browser and navigate to http://localhost:8000.
- You should see the WebODM setup page prompting you to create an admin account.
- Choose a username and password, then click the button to create your account.
- After logging in, you'll see the WebODM dashboard with an empty project list.
What is this dashboard?
The WebODM dashboard is where you'll manage all your drone imagery processing. From here you can create projects, upload images, configure processing settings, and download results.
Page not loading at localhost:8000?
The containers may still be starting up. Wait 30 seconds and refresh the page.
If it still doesn't load, go back to your terminal and check that the ./webodm.sh start command finished without errors. Help me figure out why WebODM isn't loading in my browser.
Your local photogrammetry server is up and running. Next up, you'll download a real drone dataset and feed it into WebODM for processing.
Download and Upload a Drone Dataset
With WebODM running, you need raw material to process. Photogrammetry requires dozens of overlapping aerial photos taken from slightly different angles.
In this step, you will download a real geotagged drone dataset and feed it into WebODM with construction-grade processing settings.
In this step, get ready to:
- Download 167 geotagged aerial images from the OpenDroneMap datasets repository.
- Create a new project and task in WebODM.
- Configure high-resolution processing options for construction-grade output.
Download the seneca sample dataset
The OpenDroneMap project publishes free sample datasets captured by real drones. You will use the "seneca" dataset, which contains 167 geotagged aerial images of farmland captured by a fixed-wing drone in Ohio.
- Open the seneca dataset GitHub page in your browser:
- https://github.com/OpenDroneMap/odm_data_seneca
- Click the green Code button near the top right of the page.
- Click Download ZIP to download the full repository as a ZIP file.
- Once downloaded, extract the ZIP file. You will find a folder containing 167 .jpg image files.
What is this dataset?
The seneca dataset was captured on June 4, 2013 using a SenseFly Swinglet-Cam drone over several farm fields in Ohio. Each image is geotagged with GPS coordinates embedded in its EXIF data.
WebODM uses these GPS coordinates to figure out where each photo was taken and stitch them together into a single seamless map.
Why does photogrammetry need overlapping photos?
Structure from Motion (SfM) works by finding the same features in multiple photos taken from different positions. By triangulating these shared features, the software reconstructs 3D geometry and produces accurate maps.
Without 60-80% overlap between adjacent photos, the software cannot find enough matching features to connect the images.
The download is approximately 358 MB, so it may take a few minutes depending on your internet connection.
Download taking too long?
If the ZIP download is slow or fails, you can clone the repository instead by running this in your terminal:
git clone https://github.com/OpenDroneMap/odm_data_seneca.git
This downloads the same 167 images into a local folder. help me download the seneca dataset
Create a project and upload the images
WebODM organizes work into projects, which contain tasks. A project groups related processing jobs together, while each task represents one batch of images being processed.
- Switch back to your browser tab with WebODM at http://localhost:8000.
- On the dashboard, click Add Project.
- In the Name field, type Construction Site Survey.
- Click Create Project.
Your new project appears on the dashboard. Now you need to create a task inside it and upload your drone images.
- Inside the Construction Site Survey project, click Select Images and GCP.
- Navigate to the extracted seneca dataset folder.
- Select all 167 .jpg image files and click Open.
Select all images at once
Press Cmd+A (macOS) or Ctrl+A (Windows) inside the folder to select all files, then click Open.
You should see a confirmation showing 167 images ready to upload. Do not click Start yet.
Not seeing 167 images?
Make sure you navigated into the inner folder of the extracted ZIP. The ZIP file typically extracts into a folder called odm_data_seneca-master which contains the images directly.
If you cloned the repo instead, look inside the odm_data_seneca folder for the .jpg files. help me find the seneca images
Configure processing options for construction-grade output
Before starting the task, you need to set processing options that tell WebODM to generate elevation models and use high-quality settings. By default, WebODM does not generate a DTM or DSM. You need to enable these explicitly.
- Below the uploaded images, click Edit next to the task options to expand the options panel.
- Set the following options (use the search field to find each one):
- dsm: set to true.
- dtm: set to true.
- dem-resolution: set to 2.0.
- orthophoto-resolution: set to 1.0.
- feature-quality: set to high.
- pc-quality: set to high.
What do these settings control?
dsm and dtm tell WebODM to generate Digital Surface Models and Digital Terrain Models. Without these flags, WebODM only produces an orthomosaic and point cloud.
dem-resolution controls the pixel size (in cm/pixel) of your elevation models. A value of 2.0 means each pixel represents 2 cm on the ground.
feature-quality and pc-quality set the density of feature matching and point cloud generation. Higher quality means more accurate results but longer processing times.
- After setting all six options, verify they are visible in the options summary.
- Do not click Start yet. You will start processing in the next step.
Cannot find an option?
WebODM's options panel has a search/filter field at the top. Type the option name (for example dsm) to filter the list and find it quickly.
If the options panel does not appear, make sure you clicked Edit on the task settings rather than the project settings. help me find WebODM processing options
Your dataset is loaded and your processing settings are configured for construction-grade output. In the next step, you will kick off processing and explore the results.
Process the Dataset and Explore Results in WebODM
Your task is configured with construction-grade processing options and 167 geotagged images ready to go. Now it is time to start the processing engine and watch it work through the full Structure from Motion pipeline.
In this step, you will kick off the photogrammetry run, then explore the results directly inside WebODM's built-in viewers. You will see your drone images transformed into a seamless orthomosaic, elevation models, and an interactive 3D point cloud.
In this step, get ready to:
- Start the processing task and monitor its progress.
- Explore the orthomosaic in WebODM's 2D map view.
- Interact with the 3D point cloud in the Potree viewer.
Start processing and monitor progress
WebODM's processing engine (ODX) will take your 167 overlapping images and reconstruct the terrain through feature matching, dense point cloud generation, mesh creation, and finally orthophoto and DEM generation.
- In your WebODM browser tab at http://localhost:8000, navigate to your Construction Site Survey project.
- Locate the task you created with the 167 seneca images.
- Click the Start Processing button (the blue play icon) on the task.
What happens during processing?
The engine runs through multiple stages: feature extraction, feature matching, sparse reconstruction (SfM), dense point cloud generation, meshing, texturing, georeferencing, DEM generation, and orthophoto creation.
You will see a progress bar update as each stage completes. Expect the full run to take 20-40 minutes depending on your hardware.
- Watch the task's progress bar in the WebODM dashboard. The percentage will increment as each processing stage finishes.
- Wait for the status to show as completed. A green checkmark indicates success.
Processing takes a while
This is a good time to take a break. The 167-image seneca dataset at high quality settings typically requires 20-40 minutes on a machine with 16 GB RAM and 4 CPU cores.
If your machine has less than 16 GB RAM, processing may be slower or fail. Consider reducing feature-quality and pc-quality to medium if you run into memory issues.
Task stuck or failed?
If the task fails with a memory error, open Docker Desktop, go to Settings then Resources, and increase the RAM allocation to at least 16 GB. Then restart WebODM and retry the task.
If the task stays at 0% for more than 5 minutes, check that your processing node is online. In the WebODM dashboard, look for a green circle next to your processing node in the admin panel.
help me troubleshoot my WebODM processing task that failed or is stuck
Explore the orthomosaic in the 2D map view
Once processing completes, WebODM generates a tiled map layer from your orthomosaic that you can view directly in the browser. This is the same type of seamless aerial image that construction managers use for weekly progress reports.
- On the completed task, click View Map to open the 2D map view.
- The orthophoto layer loads by default, showing you the full stitched aerial image of the seneca terrain.
- Zoom in and pan around to inspect the detail level. Notice how the overlapping images have been stitched into a seamless, geometrically corrected mosaic.
You should see a high-resolution aerial view of the terrain covering the full survey area.
- In the map view, look for the layer controls panel. Toggle the DSM layer on to see the Digital Surface Model overlaid as an elevation heatmap.
- Toggle the DTM layer on to see the Digital Terrain Model, which shows bare ground elevation with structures and vegetation filtered out.
- Switch between the layers to compare how the DSM includes all surface features while the DTM represents only the ground.
What is the difference between DSM and DTM?
A Digital Surface Model (DSM) captures the elevation of everything visible from above: buildings, trees, stockpiles, and ground. A Digital Terrain Model (DTM) uses a ground classification filter (SMRF) to strip away non-ground objects, showing only the bare earth.
For construction site monitoring, comparing these two models reveals exactly where structures, stockpiles, or excavations exist above or below the natural ground level.
Not seeing the DSM or DTM layers?
Make sure you enabled both --dsm and --dtm in your processing options before starting the task. By default, WebODM does not generate elevation models unless these flags are explicitly set.
If you missed these options, you can restart the task with the correct settings without re-uploading images.
help me see DSM and DTM layers in my WebODM 2D map view
Explore the 3D point cloud in the Potree viewer
WebODM includes a built-in 3D viewer powered by Potree that lets you fly through the reconstructed point cloud. This is the same point cloud you will later export and open in CloudCompare for more advanced analysis.
- From the task view, click the 3D button to open the Potree 3D viewer.
- Wait a few seconds for the point cloud to load. Depending on your connection speed and dataset size, this may take a moment.
You should see a colorful 3D reconstruction of the terrain floating in the viewer.
- Use orbit controls to inspect the terrain: hold the left mouse button and drag to orbit around the model.
- Scroll the mouse wheel to zoom in and out.
- Hold the right mouse button and drag to pan the model's position.
- Try orbiting to view the terrain from directly above, then from a low angle to see the elevation profile of the landscape.
What are orbit controls?
Orbit Control is the default navigation mode in Potree's 3D viewer. Left-click orbits, the scroll wheel zooms, and right-click pans. This keeps a central pivot point so you can rotate around a feature of interest.
For a different perspective, the viewer also supports Fly and Helicopter navigation modes in the navigation panel if you want to move through the point cloud as if piloting a drone.
Adjust the point budget for performance
If the 3D viewer feels slow, reduce the point budget in the Appearance settings. The default is 1,000,000 points. Older machines work better at 500,000 while powerful machines can handle up to 5-7 million for a smoother display.
3D viewer showing a blank screen?
Make sure your browser supports WebGL. Try using Chrome or Firefox if you are on a different browser.
If the model loads but appears as scattered points with no clear shape, zoom out using the scroll wheel or click the full extent button to reset the camera.
help me troubleshoot the WebODM 3D Potree viewer not loading
Your photogrammetry engine has done its job. Next up, you will use WebODM's volume measurement tools to calculate how much material sits in a terrain feature.
Perform Volume Measurements in WebODM
Construction firms need to know exactly how much earth has been moved on a site. Traditionally, surveyors walk the terrain with GPS equipment to calculate stockpile volumes. With drone photogrammetry, you can compute these measurements directly from your processed elevation data.
In this step, you'll use WebODM's built-in volume measurement tool to draw a polygon around a terrain feature and calculate its cut and fill volumes. This is the same workflow that drone survey companies use to deliver earthwork reports to their clients.
In this step, get ready to:
- Open the volume measurement tool in WebODM's 2D map view.
- Draw a polygon around a terrain feature to define a base plane boundary.
- Compute cut and fill volume values from the polygon measurement.
Open the volume measurement tool
WebODM includes a built-in tool that computes volume by analyzing the DSM data within a polygon you draw. The tool calculates how much material sits above (fill) or below (cut) a reference base plane.
- Return to the 2D map view of your completed task in the Construction Site Survey project.
- Click the Measure volume, area and length button in the map toolbar on the left side of the map view.
- Click Create a new measurement in the panel that appears.
What is a base plane?
The base plane is the reference surface that WebODM uses to determine what counts as "above" (fill) or "below" (cut). By default, WebODM triangulates the base plane from the vertices of your polygon.
Think of it like stretching a flat sheet across the top of a mound. Everything above the sheet is fill volume. Everything below is cut volume.
Draw a polygon around a terrain feature
You need to identify a terrain feature to measure. Look for a mound, a depression, or a slope area visible in the orthomosaic. Any area with noticeable elevation change will produce meaningful results.
- Pan and zoom the map to find a terrain feature with visible elevation variation (a raised area, a depression, or a slope).
- Click on the map to place your first polygon point at one edge of the terrain feature.
- Continue clicking to place additional points around the perimeter of the feature, creating a closed boundary.
- Place at least 4-5 points to define the shape clearly.
Choosing a good measurement area
Toggle the DSM layer on to see elevation data as a color gradient. Areas with bright or distinct colors relative to their surroundings indicate elevation differences. These make the best measurement targets because the volume calculation will return meaningful numbers.
Finish the measurement and observe results
- Click Finish measurement to close the polygon and trigger the volume calculation.
- Observe the computed results that appear in the measurement panel.
WebODM displays the cut and fill values relative to the base plane defined by your polygon boundary. Cut represents volume below the base plane. Fill represents volume above it.
What do the cut and fill numbers mean?
Cut is the volume of empty space between the terrain surface and the base plane (material that would need to be added to reach the base plane level). Fill is the volume of material sitting above the base plane (material that would need to be removed to flatten to the base plane level).
In construction, these numbers tell project managers how many truckloads of dirt need to move. A stockpile report might show 500 cubic meters of fill, meaning that much material is piled above the surrounding grade.
Seeing zero or very small volume values?
If your volume numbers are close to zero, your polygon is likely drawn over a flat area with no significant elevation change. Try drawing a new measurement around an area where the DSM layer shows more color variation.
If the measurement tool doesn't respond, make sure you have the DSM layer available. Volume calculations require elevation data from the DSM output.
help me troubleshoot my WebODM volume measurement
You've just performed the same volumetric analysis that drone survey companies charge hundreds of dollars for. Next up, you'll export your orthomosaic, DTM, and point cloud to view them in professional GIS and 3D visualization tools.
Export and View Outputs in QGIS and CloudCompare
In the previous step, you performed volume measurements directly in WebODM's browser interface. That proves the data is usable, but construction firms need deliverables they can open in their own software.
In this step, you'll export the key outputs from WebODM and open them in professional GIS tools. You'll load the orthomosaic and DTM into QGIS to read elevation values at specific points, and import the 3D point cloud into CloudCompare for full spatial inspection.
In this step, get ready to:
- Download the orthomosaic, DTM, and point cloud from WebODM.
- View raster layers and read elevation values in QGIS.
- Explore the georeferenced 3D point cloud in CloudCompare.
Download the outputs from WebODM
WebODM stores all processed assets inside Docker volumes. To work with them in external tools, you need to download the files to your local disk.
- Return to your WebODM dashboard at http://localhost:8000 in your browser.
- Click on your Construction Site Survey project to open it.
- Click on your completed task to expand its details.
- Locate the download buttons below the task's map view.
- Click the Download Assets dropdown to see the list of available outputs.
- Download all.zip to get all assets in one archive.
- Extract the zip file to a folder on your Desktop (e.g. odm-outputs).
What files are inside the archive?
The all.zip archive contains the full output directory. The three files you'll use in this step are:
- odm_orthophoto.tif in the odm_orthophoto folder. This is the geometrically corrected aerial mosaic as a GeoTIFF.
- dtm.tif in the odm_dem folder. This is the Digital Terrain Model with bare-earth elevation values.
- odm_georeferenced_model.laz in the odm_georeferencing folder. This is the compressed point cloud with real-world coordinates.
- Confirm the extracted folder contains the odm_orthophoto, odm_dem, and odm_georeferencing subfolders.
Don't see the Download Assets dropdown?
Make sure your task status shows as completed (green checkmark). If the task is still running or failed, the download options won't appear.
If you see the task is complete but can't find the downloads, scroll down below the map view. The download buttons appear at the bottom of the expanded task panel.
Help me find the download panel in WebODM.
View the orthomosaic and DTM in QGIS
QGIS is a professional GIS application that reads GeoTIFF raster layers. You'll use it to visually inspect the orthomosaic and read exact elevation values from the DTM.
- Press Cmd+Space (macOS) or the Windows key (Windows) to open your search bar.
- Type QGIS and press Enter to see if it's installed.
✔️ I have QGIS 3.28 or higher
Any version from 3.28 onward works for this project. Continue to the next instructions below.
ⓧ I see an older version of QGIS
This project uses features available in QGIS 3.28 and above. Download the latest LTR (Long Term Release) 3.44 from the official download page.
- Visit qgis.org/download and download the macOS or Windows installer for the LTR version.
- Run the installer and follow the prompts to complete the installation.
- Launch QGIS by searching for QGIS in your search bar and pressing Enter.
ⓧ QGIS isn't found
Download the QGIS LTR (Long Term Release) 3.44 installer from the official site. This is the most stable version for learning projects.
- Visit qgis.org/download and download the macOS or Windows installer for the LTR version.
- Run the installer and follow the prompts to complete the installation.
- Launch QGIS by searching for QGIS in your search bar and pressing Enter.
Now you'll load the orthomosaic and DTM as raster layers.
- In QGIS, click Layer in the top menu bar.
- Click Add Layer, then Add Raster Layer.
- Click the ... button next to the Source field to browse for your file.
- Navigate to your extracted odm-outputs folder, open odm_orthophoto, and select odm_orthophoto.tif.
- Click Add to load it as a layer.
- Repeat the same process to add dtm.tif from the odm_dem folder.
- Click Close to dismiss the data source dialog.
You should now see both layers listed in the Layers panel on the left. The orthomosaic appears as a full-color aerial image. The DTM appears as a grayscale elevation grid.
Why does the DTM look gray?
A DTM stores elevation values in each pixel, not color information. QGIS renders it as a grayscale stretch from the minimum to maximum elevation value by default.
Lighter pixels represent higher ground. You can change this to a color ramp later via the layer's Symbology properties.
Next, you'll use the Identify tool to read exact elevation values at specific points on the DTM.
- In the Layers panel, click on dtm to select it as the active layer.
- Click the Identify Features tool in the Attributes toolbar (or press Cmd+Shift+I on macOS, Ctrl+Shift+I on Windows).
- Click on any point in the map canvas where the DTM layer is visible.
- Look at the Identify Results panel that opens. It shows the elevation value (Band 1) for the pixel you clicked.
- Click several different points across the terrain to compare elevation values at different locations.
What do the elevation values mean?
Each pixel in the DTM represents elevation at that point. The Band 1 value in the Identify Results panel is the height in the coordinate system's vertical units (typically meters above the reference datum).
Comparing values at different points tells you the relative height difference across the terrain. This is how surveyors measure grade changes without visiting the site.
Identify tool not returning values?
Make sure the dtm layer is selected (highlighted) in the Layers panel. The Identify tool queries the active layer by default.
If you see no data values, you may be clicking outside the raster extent. Zoom in to an area where the DTM layer is visible.
Help me use the Identify tool on my DTM layer in QGIS.
Explore the 3D point cloud in CloudCompare
CloudCompare is a dedicated 3D point cloud viewer and editor. It handles millions of points efficiently and gives you full spatial navigation through the reconstructed terrain.
- Press Cmd+Space (macOS) or the Windows key (Windows) to open your search bar.
- Type CloudCompare and press Enter to see if it's installed.
✔️ I have CloudCompare 2.13 or newer
Any version from 2.13 onward works for this project. Continue to the next instructions below.
ⓧ I see an older version
Download the latest stable release (2.13.2) from the CloudCompare downloads page.
- Visit cloudcompare.org/release and download the macOS (Apple Silicon or Intel) or Windows installer.
- Run the installer and follow the prompts to complete the installation.
- Launch CloudCompare by searching for CloudCompare in your search bar and pressing Enter.
ⓧ CloudCompare isn't found
Download CloudCompare 2.13.2 (the current stable release) from the official downloads page.
- Visit cloudcompare.org/release and download the macOS (Apple Silicon or Intel) or Windows installer.
- Run the installer and follow the prompts to complete the installation.
- Launch CloudCompare by searching for CloudCompare in your search bar and pressing Enter.
macOS 15.4 dialog issue
If Open/Save dialogs are not working on macOS 15.4 or newer, go to Display > Display Settings and disable Use native load/save dialogs.
Now you'll import the point cloud and navigate through it.
- In CloudCompare, click File in the top menu bar.
- Click Open (or press Ctrl+O on Windows, Cmd+O on macOS).
- Navigate to your odm-outputs folder, open odm_georeferencing, and select odm_georeferenced_model.laz.
- Click Open. CloudCompare will import and display the point cloud.
You should see a 3D representation of the terrain in the viewport. Each point has a real-world coordinate, and the colors come from the original drone photos.
Now explore the point cloud using CloudCompare's perspective navigation modes.
- Press F3 to toggle object-centered perspective mode. Hold the left mouse button and drag to rotate the terrain around its center. Scroll the mouse wheel to move it closer or farther.
- Press F4 to toggle viewer-based perspective mode. In this mode, dragging rotates the camera (like turning your head). Scrolling the mouse wheel moves the camera forward or backward.
- Press 8 for a top-down view, 5 for a front view, or 4 for a left-side view to see the terrain from preset angles.
What is the difference between the two modes?
Object-centered perspective (F3) rotates the object while keeping the camera fixed. This is best for orbiting around and inspecting the terrain from all angles.
Viewer-based perspective (F4) rotates the camera while keeping objects fixed. This is best for flying through the scene and inspecting the terrain from the inside.
Point cloud not loading or viewport is blank?
If CloudCompare shows an empty viewport, make sure the imported cloud is selected in the DB tree on the left. Press Z to zoom and center the view on the selected entity.
If you see the cloud but it looks blocky during rotation, CloudCompare is decimating points for performance. The full detail appears once you stop moving.
Help me load and navigate my point cloud in CloudCompare.
Your processing pipeline is now complete. Next up: a bonus challenge that simulates the real moneymaker workflow in construction surveying.
Secret mission
Compute a Cut/Fill Difference Map
Construction firms don't just want a single survey. They want to see progress: how much earth moved this week versus last week. In this secret mission, you'll compute a cut/fill difference map by subtracting two DTMs to show exactly where and how much material has changed.
Clean Up Your Resources
Clean Up Your Resources
This project runs entirely on your local machine using open-source tools, so there are no ongoing cloud costs. Decide whether to keep your resources running, pause them to come back later, or delete them entirely.
Resources you used:
- WebODM Docker containers and images (~5 GB of disk space).
- Processed datasets stored in Docker volumes (webodm_appmedia).
- Cloned WebODM repository on your Desktop (~/Desktop/WebODM).
- Downloaded output files (odm_orthophoto.tif, dtm.tif, dtm_week2.tif, dtm_diff.tif, odm_georeferenced_model.laz).
- Installed applications (Docker Desktop, QGIS, CloudCompare).
Keep everything running
No action needed. Choose this if you plan to process your own drone data soon or want to experiment with different processing settings.
- WebODM stays available at http://localhost:8000 whenever Docker Desktop is running.
- Your processed datasets and downloaded files remain on disk.
- QGIS and CloudCompare remain installed and ready to use for future analysis.
Pause - I'll come back to this later
Stop WebODM containers to free up memory and CPU. Your processed data and project files are preserved.
- Open your terminal and navigate to the WebODM directory by running:
cd ~/Desktop/WebODM
- Stop all WebODM containers by running:
./webodm.sh stop
- Quit Docker Desktop from the menu bar (macOS) or system tray (Windows) to free memory.
- When you want to resume, open Docker Desktop, then run ./webodm.sh start from the ~/Desktop/WebODM directory. No data is lost.
Delete - I don't want to use this again
Remove all project resources and start fresh. This frees ~5-10 GB of disk space but you would need to re-clone and re-download everything to use WebODM again.
- Stop WebODM containers by running:
cd ~/Desktop/WebODM
./webodm.sh stop
- Remove all Docker images, containers, and volumes by running:
docker system prune -a --volumes
- When prompted to confirm, type y and press Enter.
- Remove the cloned WebODM repository by running:
macOS
rm -rf ~/Desktop/WebODM
Windows
rmdir /s /q %USERPROFILE%\Desktop\WebODM
- Delete your downloaded output files (odm_orthophoto.tif, dtm.tif, dtm_week2.tif, dtm_diff.tif, odm_georeferenced_model.laz) from wherever you saved them.
- To uninstall Docker Desktop on macOS: open Docker Desktop, click the Troubleshoot icon in the top-right corner, then select Uninstall. Confirm when prompted, then move Docker to the Trash.
- To uninstall Docker Desktop on Windows: open Settings, select Apps, then Apps & features. Find Docker Desktop and select Uninstall.
- To uninstall QGIS on macOS: drag the QGIS app from your Applications folder to the Trash.
- To uninstall QGIS on Windows: open Settings, select Apps, then Apps & features. Find QGIS and select Uninstall.
- To uninstall CloudCompare on macOS: drag the CloudCompare app from your Applications folder to the Trash.
- To uninstall CloudCompare on Windows: open Settings, select Apps, then Apps & features. Find CloudCompare and select Uninstall.
That's a Wrap!
That's a Wrap!
You've built the software backbone of a drone surveillance operation. From raw overlapping photos to measurable maps, 3D models, and volumetric calculations, you now have the exact pipeline that drone survey companies use to deliver weekly progress reports to construction firms.
Here's what you learned:
- Installed and configured a local photogrammetry processing pipeline using WebODM and Docker, then processed 167 overlapping drone images into four construction-grade deliverables.
- Generated an orthomosaic map, DTM/DSM elevation models, and a georeferenced 3D point cloud, then explored them in professional tools like QGIS and CloudCompare.
- Performed volumetric measurements using WebODM's polygon tool to calculate cut and fill values on real terrain data.
- Computed a cut/fill difference map by subtracting two DTMs in QGIS, showing exactly where and how much earth moved between surveys.
Ready to quiz yourself?