The command line

The service runs the same binary you would. Every operation is a subcommand over a file on disk, every one is scriptable, and every one can emit machine-readable output instead of prose.

The engine is pure Rust and needs no PDAL or PROJ installation to run its native commands.

The list below is the engine's own, transcribed at the version this platform is pinned to. Flags, defaults and class numbers are quoted rather than paraphrased — see the note at the foot of the page.

On this page

Transcribed from the engine repository's README, at the pinned commit

Ask about a file

CommandWhat it does
lazweaver info <file.laz>header, bounds, CRS (horizontal + vertical), warnings
lazweaver stats <file.laz>class histogram, intensity, elevation percentiles, density
lazweaver georef show <file.laz>the CRS record: horizontal/vertical EPSG, units, origin offset
lazweaver georef set <in> --out <out> --h-epsg 32643 [--v-epsg 3855]stamp a CRS (LAS 1.4 WKT VLR)
lazweaver validate <file.laz>integrity/sanity checks; exit 1 on failure

Clean and classify

CommandWhat it does
lazweaver thin <in> --out <out> --spacing 0.5voxel-grid thinning (native)
lazweaver denoise <in> --out <out> [--method gap|sor|radius|zrange] [--drop]noise → class 7/18 or removed
lazweaver classify <in> --out <out> [--cell 1 --max-window 20 --slope 0.15]ground (PMF), veg by height, buildings
lazweaver clip <in> --out <out> [--bbox] [--polygon] [--zmin/--zmax] [--classes] [--returns] [--invert]subset by extent, polygon, height, class or return
lazweaver colorize <in> --out <out> --by elevation|intensity|class|height|image [--image ortho.tif]colour the points, from a ramp or from an orthophoto
lazweaver equalize <in> --out <out> [--reference id --angle]match per-strip intensity histograms

Place it correctly

CommandWhat it does
lazweaver transform <in> --out <out> --dx --dy --dz --scale --rotate [--pivot x,y]rigid/affine correction
lazweaver reproject <in> --out <out> --to EPSG:7755 [--from ...] [--dz] [--geoid f.gtx --vertical ...]reproject horizontally, and vertically through a geoid grid
lazweaver compare truth.laz result.lazconfusion matrix / precision / recall per class
lazweaver qa control <in> --points gcp.csv [--apply fixed.laz --html r.html]ground-control residuals, rigid solve
lazweaver qa overlap <in> [--cell 2 --out dz.tif --warn 0.10 --fail 0.25]flight-strip dz statistics per pair
lazweaver qa coverage <in> [--cell 2 --min-density 4 --out-dir d --warn-gap-area 50 --fail-gap-area 200]density, gaps, overlap %, scan angle
lazweaver qa adjust <in> --out <out.laz> [--cell 2 --fix id|--fix-mean --tilt --max-shift 1.0 --html r.html]solve + apply per-strip vertical/tilt correction

Make deliverables

CommandWhat it does
lazweaver section <in> --out <out> --line x1,y1,x2,y2 --thickness 2 [--profile p.csv]vertical cross-section
lazweaver raster <in> --out <out.tif> --type dtm|dsm|chm|density|intensity --cell 1GeoTIFF with CRS
lazweaver contour <in> --out c.geojson --interval 1contours from ground points (marching squares)
lazweaver process <file|dir> --out-dir out/the whole baseline in one command + HTML report
lazweaver render <in> --out v.png --view top|profile|oblique [--by class|elevation|intensity|height|rgb]offscreen image + .json sidecar
lazweaver sections <in> --out-dir d --line x1,y1,x2,y2[,...] --interval 20 --width 30 [--png --dxf]cross-sections per station + long profile
lazweaver measure area|distance|height|volume ...numbers as JSON: polygon area, ground-following distance, height at a point, cut/fill
lazweaver contour ... --format dxfcontours as DXF polylines (CONTOUR_<z>, CONTOUR_INDEX layers)
lazweaver raster ... --pngcolour preview beside the GeoTIFF
lazweaver mesh <in> --out <tin.obj|glb|xml> [--tolerance 0.2] [--from-dtm dtm.tif]ground TIN as OBJ, glTF, LandXML
lazweaver contour|sections|powerline|clearance ... --shp / --format shpshapefiles with .prj
lazweaver render ... --title "..."scale bar, north arrow, axis labels; sections --sheet N
lazweaver diff before.laz after.laz --out-dir d [--cell 1 --clearance 3 --threshold 0.10]change detection between two epochs

Corridors and canopy

CommandWhat it does
lazweaver powerline <in> --out <out> [--report w.json --geojson w.geojson --dxf w.dxf]conductors (14) + structures (15) + curve per conductor
lazweaver clearance <in> --distance 3 [--out flagged.laz --geojson e.geojson --report c.json]vegetation near conductors, ground clearance
lazweaver canopy <in> --out-dir d [--grid 10 --height-break 2]forestry canopy metrics: percentiles, cover, strata, rumple, LAI proxy

Split and reassemble

CommandWhat it does
lazweaver plan <file.laz> --target-points Nbbox grid for fan-out, from the header alone
lazweaver split <file.laz> --plan p.json --out-dir done streaming pass → per-chunk LAZ
lazweaver merge a.laz b.laz --out m.laz [--dedupe-spacing 0.5]concatenate, drop strip overlap
lazweaver pipeline <in> --out <out.copc.laz> --tier terrain [--dry-run]PDAL bridge (SMRF ground + COPC)
lazweaver job spec.jsonplan → split → parallel stage → merge → manifest.json
lazweaver stitch <dir> --plan plan.json --out <out>reassemble halo-split chunks, each point exactly once
lazweaver chain ... {"type":"ids.assign"} | denoise.low | classify.buildings | classify.water | meshnew stages

Publish and exchange

CommandWhat it does
lazweaver synth out.laz --points Nsynthetic labelled test cloud (UTM 43N + EGM2008)
lazweaver tile <in> --out-dir tiles/ [--copc]overview + per-tile LOD pyramid + tileset.json
lazweaver copc <in> --out <out.copc.laz> [--node-points 100000]Cloud Optimised Point Cloud, native (no PDAL)
lazweaver import <e57|ply|csv|xyz|pts> --out <out.laz> [--h-epsg] [--columns x,y,z,i,r,g,b,c]device-native formats in
lazweaver export <in.laz> --out <file> --format e57|ply|csvand back out
lazweaver tile ... --format 3dtiles3D Tiles 1.1 (glb point tiles + tileset.json)

Operate it

CommandWhat it does
lazweaver worker --queue-url <sqs-url | dir>long-running consumer for EC2 / ECS / Kubernetes
lazweaver doctor [--bucket s3://... --queue ...]deployment readiness checks; version --json for build info

Read from README.md in the engine repository at commit 005c1e97488c43174c1890a14a7ca26fffd1f355, the version contracts/engine/PIN names.

Where the list lives

This platform consumes the engine as a released image and a pinned contract, never as source, so there is no README on this side to generate the table from. It is a transcription with the source line recorded against every row, re-read by hand when the pin moves — which is a weaker guarantee than the API reference on the next page, and is said here rather than left to be assumed.

The REST reference, which is generated