build-2d-dsm-hillshade-with-color
Optionally reprojects a LAS/LAZ dataset, generates a colored shaded-relief GeoTIFF (DSM + hillshade blended), and slices it into a web-ready XYZ tile tree. DATASET_INFO runs in parallel with the raster steps. Fires a webhook on completion.
Reprojection is safe to include unconditionally: if source_epsg and target_epsg are equal or empty, REPROJECT_LAS short-circuits and returns the input unchanged with no I/O cost.
Recipe name: build-2d-dsm-hillshade-with-colorVersion: 1.0.0Reprojection: Optional (passthrough when source_epsg/target_epsg are equal or empty) Output format: RGB colored shaded-relief GeoTIFF + XYZ tiles (PNG, zoom 1–19)
Steps
| Step | Type | Runs |
|---|---|---|
reproject | REPROJECT_LAS | First |
build_colored_hillshade_dsm | BUILD_COLORED_HILLSHADE_DSM | After reproject |
build_xyz_tiles | BUILD_XYZ_TILES | After build_colored_hillshade_dsm |
dataset_info | DATASET_INFO | Parallel with build_colored_hillshade_dsm (both after reproject) |
call_webhook | CALL_WEBHOOK | on_exit |
Recipe (v1.0.0 snapshot)
json
{
"name": "build-2d-dsm-hillshade-with-color",
"version": "1.0.0",
"definition": {
"recipe": [
{
"id": "reproject",
"type": "REPROJECT_LAS",
"inputs": { "input_las": "job:input_las" },
"outputs": { "output_las": "step:reproject.output_las" },
"param_keys": ["source_epsg", "target_epsg"]
},
{
"id": "build_colored_hillshade_dsm",
"type": "BUILD_COLORED_HILLSHADE_DSM",
"inputs": { "input_las": "step:reproject.output_las" },
"outputs": { "colored_hillshade_dsm": "step:build_colored_hillshade_dsm.colored_hillshade_dsm" },
"param_keys": ["pallete", "resolution", "output_type", "z_factor"]
},
{
"id": "build_xyz_tiles",
"type": "BUILD_XYZ_TILES",
"inputs": { "input_tif": "step:build_colored_hillshade_dsm.colored_hillshade_dsm" },
"outputs": { "output_tiles": "step:build_xyz_tiles.output_tiles" }
},
{
"id": "dataset_info",
"type": "DATASET_INFO",
"inputs": { "input_las": "step:reproject.output_las" },
"outputs": { "metadata": "step:dataset_info.metadata" }
}
],
"on_exit": {
"id": "call_webhook",
"type": "CALL_WEBHOOK",
"inputs": { "waits_for": "step:dataset_info.metadata" },
"param_keys": ["webhook_url"]
}
}
}Submitting a job
bash
curl -X POST https://dev.mapprism.com/ordo/jobs \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"recipe_id": 42,
"inputs": {
"job:input_las": {
"type": "las",
"uri": "development/survey/dataset.las",
"hash": "abc123"
}
},
"params": {
"reproject": {
"source_epsg": "EPSG:2271",
"target_epsg": "EPSG:3857"
},
"build_colored_hillshade_dsm": {
"pallete": "jjg/cbac/div/cbacspectral03.cpt",
"resolution": 1,
"output_type": "max",
"z_factor": 1
},
"call_webhook": {
"webhook_url": "https://myapp.example.com/hooks/done"
}
},
"outputs": {
"step:build_colored_hillshade_dsm.colored_hillshade_dsm": {
"path": "development/results/survey/hillshade.tif"
},
"step:build_xyz_tiles.output_tiles": {
"path": "development/results/survey/tiles"
},
"step:dataset_info.metadata": {
"path": "development/results/survey/metadata.json"
}
}
}'Required inputs
| Artifact key | Type | Description |
|---|---|---|
job:input_las | las | Source LAS/LAZ file |
Required params
| Step | Param | Default | Description |
|---|---|---|---|
reproject | source_epsg | — | Source CRS (e.g. "EPSG:2271") |
reproject | target_epsg | — | Target CRS (e.g. "EPSG:3857") |
build_colored_hillshade_dsm | pallete | executor default | Path to .cpt palette file in MinIO (e.g. "jjg/cbac/div/cbacspectral03.cpt") |
build_colored_hillshade_dsm | resolution | 1 | Raster cell size in CRS units |
build_colored_hillshade_dsm | output_type | "max" | Height aggregation per cell: max, min, mean, idw, count, stdev, all |
build_colored_hillshade_dsm | z_factor | 1 | Vertical exaggeration for hillshade. Values > 1 emphasize relief |
call_webhook | webhook_url | — | URL to POST the job result to |
Producible outputs
| Artifact | Type | Description |
|---|---|---|
step:build_colored_hillshade_dsm.colored_hillshade_dsm | tif | RGB colored shaded-relief GeoTIFF (LZW-compressed, tiled) |
step:build_xyz_tiles.output_tiles | xyz_tiles | XYZ tile tree — {z}/{x}/{y}.png, zoom levels 1–19 |
step:dataset_info.metadata | json | PDAL metadata report |