Skip to content

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

StepTypeRuns
reprojectREPROJECT_LASFirst
build_colored_hillshade_dsmBUILD_COLORED_HILLSHADE_DSMAfter reproject
build_xyz_tilesBUILD_XYZ_TILESAfter build_colored_hillshade_dsm
dataset_infoDATASET_INFOParallel with build_colored_hillshade_dsm (both after reproject)
call_webhookCALL_WEBHOOKon_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 keyTypeDescription
job:input_laslasSource LAS/LAZ file

Required params

StepParamDefaultDescription
reprojectsource_epsgSource CRS (e.g. "EPSG:2271")
reprojecttarget_epsgTarget CRS (e.g. "EPSG:3857")
build_colored_hillshade_dsmpalleteexecutor defaultPath to .cpt palette file in MinIO (e.g. "jjg/cbac/div/cbacspectral03.cpt")
build_colored_hillshade_dsmresolution1Raster cell size in CRS units
build_colored_hillshade_dsmoutput_type"max"Height aggregation per cell: max, min, mean, idw, count, stdev, all
build_colored_hillshade_dsmz_factor1Vertical exaggeration for hillshade. Values > 1 emphasize relief
call_webhookwebhook_urlURL to POST the job result to

Producible outputs

ArtifactTypeDescription
step:build_colored_hillshade_dsm.colored_hillshade_dsmtifRGB colored shaded-relief GeoTIFF (LZW-compressed, tiled)
step:build_xyz_tiles.output_tilesxyz_tilesXYZ tile tree — {z}/{x}/{y}.png, zoom levels 1–19
step:dataset_info.metadatajsonPDAL metadata report