Skip to main content

Bulldozer is a DTM extraction tool requiring only a DSM as input

Project description

Bulldozer, a DTM extraction tool requiring only a DSM as input.

Python Contributions welcome License PyPI Version

Key FeaturesInstallationQuick StartDocumentationContributeLicenceReference


Key features

demo

Bulldozer is designed as a pipeline of standalone functions that aims to extract a Digital Terrain Model (DTM) from a Digital Surface Model (DSM).
But you can also use one of the following function without running the full pipeline:

  • DSM preprocessing
    • Nodata extraction: a group of methods to differentiate and extract nodata related to failed correlations during the DSM computation and those of the image border
    • Disturbed areas detection: a method to locate disturbed areas. These noisy areas are mainly related to areas in which the correlator has incorrectly estimated the elevation (water or shadow areas).
  • DTM extraction
    • DTM computation: the main method that extracts the DTM from the preprocessed DSM.
  • DTM postprocessing
    • Pits detection: a method to detect pits in the provided raster and return the corresponding mask.
    • Pits filling: a method to fill pits in the generated DTM (or input raster).
    • DHM computation: a method to extract the Digital Height Model (DHM).

For more information about these functions and how to call them, please refer to the notebook documentation section.

Installation

Using Pypi

You can install Bulldozer by running the following command:

pip install bulldozer-dtm

Using Github

It is recommended to install Bulldozer into a virtual environment, like conda or virtualenv.

  • Installation with virtualenv:
# Clone the project
git clone https://github.com/CNES/bulldozer.git
cd bulldozer/

# Create the environment
python -m venv bulldozer_venv
source bulldozer_venv/bin/activate

# Install the library
pip install .

Quick Start

  1. First you have to create a configuration file or edit the configuration_template.yaml available in the conf directory. You have to update at least the following parameters:
# Input DSM path (expected format: "<folder_1>/<folder_2>/<file>.<[tif/tiff]>")
dsm_path : "<input_dsm.tif>"
# Output directory path (if the directory doesn't exist, create it)
output_dir : "<output_dir>"
  1. Run the pipeline:

    • Through CLI (Command Line Interface)
    bulldozer --conf conf/configuration_template.yaml
    
    • Through Python API using the config file
    from bulldozer.pipeline.bulldozer_pipeline import dsm_to_dtm
    
    dsm_to_dtm(config_path="conf/configuration_template.yaml")
    
    • Through Python API providing directly the input parameters (missing parameters will be replaced by default values)
    from bulldozer.pipeline.bulldozer_pipeline import dsm_to_dtm
    # Example with a specific number of workers
    dsm_to_dtm(dsm_path="<input_dsm.tif>", output_dir="<output_dir>", nb_max_workers=16)
    
  2. ✅ Done! Your DTM is available in the <output_dir>

Documentation

Notebooks

For each section described in Key Features section you can follow one of the tutorial notebook:

Full documentation (WIP)

Bulldozer also has a more detailed documentation.
A high-level overview of how it’s organized will help you know where to look for certain things:

  • Tutorials take you by the hand through a series of steps to create a DLCooker application. Start here if you’re new to DLCooker.
  • How-to guides are recipes. They guide you through the steps involved in addressing key problems and use-cases. They are more advanced than tutorials and assume some knowledge of how DLCooker works.
  • Explanation guides discuss key topics and concepts at a fairly high level and provide useful background information and explanation.

NOTE: The documentation is not available online yet, it needs to be built manually.

To do so, please execute the following command at the root:

mkdocs serve

Contribute

To do a bug report or a contribution, see the Contribution Guide.
for any help or suggestion, feel free to contact the authors:

Licence

Bulldozer has a Apache V2.0 license, as found in the LICENSE file.

Credits

Please refer to the Authors file.

Reference

D. Lallement, P. Lassalle, Y. Ott, R. Demortier, and J. Delvit, 2022. BULLDOZER: AN AUTOMATIC SELF-DRIVEN LARGE SCALE DTM EXTRACTION METHOD FROM DIGITAL SURFACE MODEL. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bulldozer-dtm-1.0.1.tar.gz (355.5 kB view details)

Uploaded Source

File details

Details for the file bulldozer-dtm-1.0.1.tar.gz.

File metadata

  • Download URL: bulldozer-dtm-1.0.1.tar.gz
  • Upload date:
  • Size: 355.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.4

File hashes

Hashes for bulldozer-dtm-1.0.1.tar.gz
Algorithm Hash digest
SHA256 55aff15db3c1c5eab029c8fdda595c64a7cd8bbc3d00aa632e2f91e9767bc944
MD5 cc49fd989f5b3e50a2549af8a557e2b5
BLAKE2b-256 7f2926fb0eded2138b7eb3fa5326b03f762c1b26f67cd9c84e2029e895954a5d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page