SkillAgentSearch skills...

Bulldozer

Bulldozer is a pipeline designed to extract a Digital Terrain Model (DTM) from a Digital Surface Model (DSM).

Install / Use

/learn @CNES/Bulldozer
About this skill

Quality Score

0/100

Category

Design

Supported Platforms

Universal

README

<div align="center"> <img src="https://raw.githubusercontent.com/CNES/bulldozer/master/docs/source/images/logo_with_text.png" width=600>

Bulldozer, a DTM extraction tool that requires only a DSM as input.

pypi docker contributions welcome license

</div>

Overview

<div align="center"> <img src="https://raw.githubusercontent.com/CNES/bulldozer/master/docs/source/images/result_overview.gif" alt="demo" width="400"/> </div>

Bulldozer is a pipeline designed to extract a Digital Terrain Model (DTM) from a Digital Surface Model (DSM). It supports both noisy satellite DSMs and high-quality LiDAR DSMs.

Quick Start

Installation

You can install Bulldozer by running the following command:

pip install bulldozer-dtm

Or you can clone the github repository and use the Makefile:

# Clone the project
git clone https://github.com/CNES/bulldozer.git
cd bulldozer/

# Create the virtual environment and install required depencies
make install

# Activate the virtual env
source bulldozer_venv/bin/activate

Run Bulldozer

There are different ways to launch Bulldozer:

  1. Using the CLI (Command Line Interface) - Run the folowing command line after updating the parameters input_dsm.tif and output_dir:
bulldozer -dsm input_dsm.tif -out output_dir

You can also add optional parameters such as -dhm, please refer to the helper (bulldozer -h) command to see all the options.

✅ Done! Your DTM is available in the output_dir.

  1. Using the Python API - You can directly provide the input parameters to the dsm_to_dtm function:
from bulldozer.pipeline.bulldozer_pipeline import dsm_to_dtm

dsm_to_dtm(dsm_path="input_dsm.tif", output_dir="output_dir")

✅ Done! Your DTM is available in the output_dir.

  1. Using a configuration file (CLI) - Based on provided configuration file templates, you can run the following command line:
bulldozer conf/configuration_template.yaml

✅ Done! Your DTM is available in the directory defined in the configuration file.

Bulldozer docker image

Bulldozer is available on Docker Hub and can be downloaded using:

docker pull cnes/bulldozer

And you can run Bulldozer with the following command:

docker run --user $(id -u):$(id -g) -v <path>:/data cnes/bulldozer:latest /data/<conf>.yaml

⚠️ You have to change the <path> to provide a valide absolute path to a directory where the input data are stored and where Bulldozer will write the ouput DTM. You also have to provide a configuration file (and rename <conf>.yaml in the command line) in this directory with an ouput_dir value using the data folder given to docker, e.g.: output_dir : "/data/outputdir".

License

Bulldozer is licensed under Apache License v2.0. Please refer to the LICENSE file for more details.

<a name="Citation"></a>Citation

If you use Bulldozer in your research, please cite the following paper:

@article{bulldozer2023,
  title={Bulldozer, a free open source scalable software for DTM extraction},
  author={Dimitri, Lallement and Pierre, Lassalle and Yannick, Ott},
  journal = {The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences},
  volume = {XLVIII-4/W7-2023},
  year = {2023},
  pages = {89--94},
  url = {https://isprs-archives.copernicus.org/articles/XLVIII-4-W7-2023/89/2023/},
  doi = {10.5194/isprs-archives-XLVIII-4-W7-2023-89-2023}
}
View on GitHub
GitHub Stars35
CategoryDesign
Updated20d ago
Forks4

Languages

Python

Security Score

95/100

Audited on Mar 11, 2026

No findings