BUILD_COLORED_DSM
Generates a color-relief GeoTIFF from a LAS/LAZ point cloud by rasterizing the points into a Digital Surface Model (DSM) and applying a .cpt color palette. The output is an RGBA GeoTIFF where each pixel's color corresponds to its elevation within the dataset.
The palette is automatically rescaled to match the DSM's actual elevation range before it is applied, so any .cpt file works correctly regardless of its original value domain. Color palettes are stored server-side in MinIO and referenced by name.
Typical use: generating 2D elevation color maps from LiDAR or MBES point clouds for web mapping, reporting, or QA overlays.
Contract
| Type | BUILD_COLORED_DSM |
| Accepts | input_las: las |
| Produces | colored_dsm_tif: tif |
| Params | pallete†, resolution†, output_type† |
† optional — executor defaults apply if omitted.
Inputs
| Slot | Type | Description |
|---|---|---|
input_las | las | Source point cloud dataset |
Outputs
| Slot | Type | Description |
|---|---|---|
colored_dsm_tif | tif | RGBA color-relief GeoTIFF |
Parameters
All parameters are optional. Omitting them applies the defaults shown below.
| Name | Type | Default | Description |
|---|---|---|---|
pallete | string | executor default | Path to a .cpt palette file under mapprism/palletes/ in MinIO (e.g. "jjg/cbac/div/cbacspectral03.cpt") |
resolution | number | 1 | Raster cell size in CRS units (e.g. 1 → 1 m/px for metric CRS) |
output_type | string | "max" | Height aggregation per cell: max, min, mean, idw, count, stdev, or all |
Note: pallete is intentionally spelled with one t — this matches the param name in the database (same convention as COLORIZE_AS_DEM).
What it does internally
- Downloads the input LAS and the palette file from MinIO
- Builds a PDAL pipeline using
readers.las→writers.gdalwith the configuredresolutionandoutput_type, writingraw_dsm.tif - Runs
gdal_edit.py -a_nodata -9999to stamp the nodata value on the raw DSM - Extracts the DSM's actual min/max elevation via
gdalinfo -mmand the palette's original value range from the.cptfile, then rescales all palette entries to the DSM range — producingpallete.cpt.scaled - Runs
gdaldem color-relief raw_dsm.tif pallete.cpt.scaled colored_dsm.tif -alphato produce the RGBA output - Runs
gdalinfo -statson the output to capture raster metadata into the artifact record - Uploads
colored_dsm.tifto MinIO and returns the artifact
Recipe usage
json
{
"id": "build_colored_dsm",
"type": "BUILD_COLORED_DSM",
"inputs": { "input_las": "job:input_las" },
"outputs": { "colored_dsm_tif": "step:build_colored_dsm.colored_dsm_tif" }
}With explicit params (all optional):
json
"params": {
"build_colored_dsm": {
"pallete": "jjg/cbac/div/cbacspectral03.cpt",
"resolution": 1,
"output_type": "max"
}
}Artifact storage path
text
artifacts/job_{id}/build_colored_dsm/colored_dsm.tifRelated executors
BUILD_HILLSHADE_DSM— produces a shaded-relief raster instead of a color-relief rasterCOLORIZE_AS_DEM— applies the same palette approach but produces a colorized point cloud rather than a 2D raster