reproject-las
Reprojects a LAS/LAZ dataset into the site's SRS with no further conversion. DATASET_INFO runs in parallel on the reprojected output. Fires a webhook on completion.
Use this preset right after upload when the only goal is getting the dataset into the site's SRS — for a derived product (COPC, EPT, Potree, hillshade, contours), use one of the build-* presets instead, which already include reprojection as their first step.
REPROJECT_LAS always downloads and inspects the input file's embedded CRS before transforming. If source_epsg and target_epsg are set to the same value, it normally skips the transform — unless the file's embedded CRS metadata turns out to be invalid or inconsistent with its coordinates, in which case it corrects the file by stamping target_epsg on without moving any points. This makes reproject-las usable both to reproject and, with source_epsg == target_epsg, to repair a dataset's CRS metadata. See REPROJECT_LAS for the full decision logic.
Recipe name: reproject-lasVersion: 1.0.0Reprojection: Yes (set target_epsg to the site's SRS; set source_epsg equal to it to only correct broken CRS metadata without moving points) Output format: LAS/LAZ (reprojected) + JSON metadata
Steps
| Step | Type | Runs |
|---|---|---|
reproject | REPROJECT_LAS | First |
dataset_info | DATASET_INFO | After reproject |
call_webhook | CALL_WEBHOOK | on_exit |
Recipe (v1.0.0 snapshot)
json
{
"name": "reproject-las",
"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": "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": 44,
"inputs": {
"job:input_las": {
"type": "las",
"uri": "development/survey/dataset.las",
"hash": "abc123"
}
},
"params": {
"reproject": {
"source_epsg": "EPSG:2271",
"target_epsg": "EPSG:3857"
},
"call_webhook": {
"webhook_url": "https://myapp.example.com/hooks/done"
}
},
"outputs": {
"step:reproject.output_las": {
"path": "development/results/survey/dataset-reprojected.las"
},
"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 | Description |
|---|---|---|
reproject | source_epsg | Source CRS of the uploaded dataset (e.g. "EPSG:2271") |
reproject | target_epsg | The site's target CRS (e.g. "EPSG:3857") |
call_webhook | webhook_url | URL to POST the job result to |
Producible outputs
| Artifact | Type | Description |
|---|---|---|
step:reproject.output_las | las | LAS/LAZ reprojected into the site's SRS |
step:dataset_info.metadata | json | PDAL metadata report (reflecting the reprojected CRS) |