CNES / bulldozer

Bulldozer is a pipeline designed to extract a Digital Terrain Model (DTM) from a Digital Surface Model (DSM).
Apache License 2.0
17 stars 0 forks source link
digital-terrain-model image-processing python remote-sensing
**Bulldozer, a DTM extraction tool requiring only a DSM as input.** [![Python](https://img.shields.io/badge/python-v3.8+-blue.svg)](https://www.python.org/downloads/release/python-380/) [![Contributions welcome](https://img.shields.io/badge/contributions-welcome-orange.svg)](CONTRIBUTING.md) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![PyPI Version](https://img.shields.io/pypi/v/bulldozer-dtm?color=%2334D058&label=pypi%20package)](https://pypi.org/project/bulldozer-dtm/)

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:

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.

# 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>"
  2. 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)
    ```python
    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)
  3. ✅ Done! Your DTM is available in the

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:

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:

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.