Skip to content

BUILD_COPC

Converts a LAS/LAZ point cloud into a COPC (Cloud Optimized Point Cloud) file using PDAL. The step reads the input point cloud and rewrites it using the COPC writer, producing a spatially indexed LAZ file optimized for streaming, random access, and web delivery.

COPC preserves all points and attributes from the original dataset but reorganizes the file into a hierarchical octree structure that enables efficient partial reads. This format is commonly used for cloud-hosted point cloud visualization and analytics.

Typical use: preparing LiDAR datasets for web distribution, streaming point cloud systems, or analytics pipelines.


Contract

TypeBUILD_COPC
Acceptsinput_las: las
Producesoutput_copc: las
Paramsnone

Note: the output artifact type is las because COPC is a LAS-compatible format (a spatially indexed LAZ container).


Inputs

SlotTypeDescription
input_laslasSource point cloud dataset

Outputs

SlotTypeDescription
output_copclasCOPC-encoded LAZ point cloud

What it does internally

  1. Downloads the input LAS from MinIO
  2. Builds a PDAL pipeline using writers.copc with fixed coordinate scaling (scale_x/y/z = 0.001, auto offsets)
  3. Runs the pipeline — all points and attributes are preserved
  4. Runs pdal info on the output to capture metadata (bounding box, point stats) into the artifact record
  5. Uploads the output COPC file to MinIO and returns the artifact

Recipe usage

json
{
  "id": "build_copc",
  "type": "BUILD_COPC",
  "inputs":  { "input_las": "job:input_las" },
  "outputs": { "output_copc": "step:build_copc.output_copc" }
}

Artifact storage path

artifacts/job_{id}/build_copc/output.copc.laz

  • BUILD_EPT — EPT format, better for Cesium / large datasets
  • BUILD_POTREE — Potree tileset format, better for Potree-based viewers