Skip to content

mbes-backscatter-potree

Processes a multibeam echo sounder (MBES) point cloud and a backscatter TIF into three Potree tilesets. The input is reprojected from a survey CRS to EPSG:3857, then three independent visualization products are produced in parallel: an elevation-colored DEM (regridded surface with terrain colorization), a backscatter-draped point cloud (raw survey points colored from the backscatter raster), and a raw reprojected point cloud. DATASET_INFO runs in parallel with the main branches and its metadata is available in the completion webhook payload.

Recipe name: mbes-backscatter-potreeVersion: 1.0.0Ordo ID: 27 Reprojection: Yes (source CRS supplied at job submission) Output format: Potree (×3)


Steps

StepTypeDepends onRuns
reprojectREPROJECT_LASjob:input_lasFirst
regridREGRID_LASstep:reproject.output_lasAfter reproject
colorize_demCOLORIZE_AS_DEMstep:regrid.output_lasAfter regrid
colorize_backscatterCOLORIZE_FROM_TIFstep:reproject.output_las, job:input_tifAfter reproject (parallel with regrid)
potree_demBUILD_POTREEstep:colorize_dem.output_lasAfter colorize_dem
potree_backscatterBUILD_POTREEstep:colorize_backscatter.output_lasAfter colorize_backscatter
potree_rawBUILD_POTREEstep:reproject.output_lasAfter reproject (parallel)
dataset_infoDATASET_INFOstep:reproject.output_lasAfter reproject (parallel)
call_webhookCALL_WEBHOOKstep:dataset_info.metadataon_exit

Recipe (v1.0.0 snapshot)

json
{
  "name": "mbes-backscatter-potree",
  "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": "regrid",
        "type": "REGRID_LAS",
        "inputs":  { "input_las": "step:reproject.output_las" },
        "outputs": { "output_las": "step:regrid.output_las" },
        "param_keys": ["resolution"]
      },
      {
        "id": "colorize_dem",
        "type": "COLORIZE_AS_DEM",
        "inputs":  { "input_las": "step:regrid.output_las" },
        "outputs": { "output_las": "step:colorize_dem.output_las" },
        "param_keys": ["pallete", "resolution"]
      },
      {
        "id": "colorize_backscatter",
        "type": "COLORIZE_FROM_TIF",
        "inputs":  { "input_las": "step:reproject.output_las", "input_tif": "job:input_tif" },
        "outputs": { "output_las": "step:colorize_backscatter.output_las" }
      },
      {
        "id": "potree_dem",
        "type": "BUILD_POTREE",
        "inputs":  { "input_las": "step:colorize_dem.output_las" },
        "outputs": { "output_potree": "step:potree_dem.output_potree" }
      },
      {
        "id": "potree_backscatter",
        "type": "BUILD_POTREE",
        "inputs":  { "input_las": "step:colorize_backscatter.output_las" },
        "outputs": { "output_potree": "step:potree_backscatter.output_potree" }
      },
      {
        "id": "potree_raw",
        "type": "BUILD_POTREE",
        "inputs":  { "input_las": "step:reproject.output_las" },
        "outputs": { "output_potree": "step:potree_raw.output_potree" }
      },
      {
        "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": 27,
    "inputs": {
      "job:input_las": {
        "type": "las",
        "uri": "development/survey/mbes.las",
        "hash": "<file-hash>"
      },
      "job:input_tif": {
        "type": "tif",
        "uri": "development/survey/backscatter.tif",
        "hash": "<file-hash>"
      }
    },
    "params": {
      "reproject": {
        "source_epsg": "EPSG:6565",
        "target_epsg": "EPSG:3857"
      },
      "regrid": {
        "resolution": 1.0
      },
      "colorize_dem": {
        "pallete": "bathymetry",
        "resolution": 1.0
      },
      "call_webhook": {
        "webhook_url": "https://myapp.example.com/hooks/done"
      }
    },
    "outputs": {
      "step:potree_dem.output_potree":         { "path": "development/results/survey/potree-dem" },
      "step:potree_backscatter.output_potree": { "path": "development/results/survey/potree-backscatter" },
      "step:potree_raw.output_potree":         { "path": "development/results/survey/potree-raw" }
    }
  }'

Required inputs

Artifact keyTypeDescription
job:input_laslasMBES point cloud (source CRS: as declared in reproject params)
job:input_tiftifBackscatter mosaic raster (must be spatially aligned with the point cloud)

Required params

StepParamDescription
reprojectsource_epsgCRS of the input MBES scan (e.g. "EPSG:6565")
reprojecttarget_epsgTarget CRS (e.g. "EPSG:3857")
regridresolutionDEM grid cell size in the target CRS units (meters for EPSG:3857)
colorize_dempalleteGDAL .cpt palette name for DEM colorization (e.g. "bathymetry")
colorize_demresolutionDEM rasterization resolution for colorization step
call_webhookwebhook_urlURL to POST the completed job object to

Producible outputs

ArtifactTypeDescription
step:potree_dem.output_potreepotreeElevation-colored DEM as Potree tileset
step:potree_backscatter.output_potreepotreeBackscatter-draped point cloud as Potree tileset
step:potree_raw.output_potreepotreeRaw reprojected point cloud as Potree tileset
step:dataset_info.metadatajsonPDAL metadata report for the reprojected point cloud