In this paper, the authors present a scalable software called "Bulldozer," designed for extracting Digital Terrain Models (DTM) from Digital Surface Models (DSM). The motivation stems from the increasing availability of 3D data, particularly from LiDAR and spatial Earth Observation missions, which prompted the French spatial agency CNES to develop tools to process such data at scale. Bulldozer operates as a modular pipeline and encompasses preprocessing, DTM extraction, and post-processing steps. To address challenges like noisy data and outliers, the pipeline employs strategies for outlier detection, hole filling, and DTM enhancement. The authors emphasize that Bulldozer's innovation lies in its ability to process DSMs of arbitrary size and from various sources. By introducing a stability margin and employing a tiling strategy, the algorithm ensures memory-efficient and parallel processing, with scalability based on Python 3.8's shared memory features and multi-processing paradigm. Bulldozer's accessibility has been enhanced through interfaces, including a QGIS plugin for novice users, a Command Line Interface (CLI) for advanced users, and a Python API for developers. This software demonstrates impressive performance, extracting high-quality DTMs from substantial input DSMs in less than 10 minutes, making it potentially valuable to the FOSS4G community. |