Input data preprocessing

This section describes a list of pre-processing steps that can be applied to Bulldozer input data to produce a DTM that meets user requirements:

The quality of the resulting DTM strongly depends on the quality, resolution, and projection of the input DSM.


Handle Point Cloud (PC) format DSM

If you're working with DSM in point cloud format (.las / .laz), it must first be rasterized before being used with Bulldozer.

To do this, you can use the CNES tool cars-rasterize with the following command:

las2tif dsm.laz raster_format_dsm.tif

Otherwise you can use tools such as PDAL.

Ensure that: - The output raster has a consistent grid resolution - A proper nodata value is defined - The CRS is correctly assigned


Manage the nodata value

To check the nodata value of your input DSM, you can use the gdalinfo command in the GDAL library:

gdalinfo input_dsm.tif | grep NoData

If the nodata value is missing or incorrect, it must be updated.
Example using rasterio:

import rasterio

input_dsm = "input_dsm.tif"

with rasterio.open(input_dsm, "r+") as dataset:
    dataset.nodata = -32768

Warning

Ensure the chosen nodata value does not conflict with valid elevation values.


Update DSM resolution

The resolution of the produced DTM is directly driven by the input DSM resolution.

For example, if you want to produce a 30m DTM from a 50cm DSM, you must first resample the DSM before running Bulldozer.

Example using gdalwarp from the GDAL library:

gdalwarp -tr 30 30 -r bilinear input_dsm.tif resampled_dsm.tif

Choosing the resampling method

  • bilinear: recommended for continuous elevation data
  • average: recommended when aggregating high-resolution DSM
  • cubic: may introduce smoothing artefacts

Warning

Downsampling significantly modifies terrain characteristics.
Fine-scale features and micro-topography may be lost.


Change the DSM Coordinate Reference System (CRS)

The output DTM generated by Bulldozer preserves the Coordinate Reference System (CRS) of the input DSM. Consequently, to obtain a DTM in a different CRS, the input DSM must first be reprojected.

For example, if you want to reproject a DSM from the RGF93 v1 / Lambert-93 (ESPG:2154) CRS into the WGS 84 / UTM zone 32N (EPSG:32632) datum, you can use gdalwarp from the GDAL library:

gdalwarp -t_srs EPSG:32632 input_dsm.tif reprojected_dsm.tif

You can then provide this reprojected DSM as input to Bulldozer in order to generate a DTM in the CRS you want.

Recommendations

  • Prefer projected metric CRS (e.g., UTM, Lambert)
  • Avoid geographic CRS (lat/lon) for terrain analysis
  • Ensure vertical units remain consistent