Install
openclaw skills install @ruiduobao/geoskill-lidar-point-cloud-analysisRead LAS/LAZ/COPC point clouds, compute statistics, classification QA, DEM/DSM/CHM rasters, cross-sections, density maps, and quality reports. Use when analyzing LiDAR point cloud data, generating terrain models, checking point cloud quality, or producing canopy height models.
openclaw skills install @ruiduobao/geoskill-lidar-point-cloud-analysis⚠️ 必读 — 本 skill 不属于即用型,需要先准备特定文件才能跑。
本 skill 需要 LAS/LAZ 点云文件,不自动下载(数据太大且按需购买)。
👉 完整教程见仓库根目录 PREREQUISITES.md 2.5 节。
先准备 X 文件:不传 --input 直接跑,用合成点云验证工作流。
快速试跑命令:
python lidar_point_cloud_analysis.py --output-dir ./test
Reads LAS/LAZ/COPC point clouds, computes statistics, classification QA, DEM/DSM/CHM rasters, cross-sections, density maps, and quality reports.
Use when the user wants to:
# Synthetic demo mode (no input files needed)
python scripts/lidar_point_cloud_analysis.py --output-dir ./lpca-output
# With custom resolution and all products
python scripts/lidar_point_cloud_analysis.py \
--resolution 0.5 \
--products dem,dsm,chm,density,qa \
--output-dir ./lpca-output
# DEM only with specific bounding box (legacy 4-floats form)
python scripts/lidar_point_cloud_analysis.py \
--bbox-bounds 0 0 500 500 \
--products dem \
--resolution 1.0 \
--output-dir ./lpca-output
This skill works on local LAS/LAZ point clouds and does not auto-download
from any data source. The standard --bbox / --date-range / --aoi-file CLI
flags are exposed (from the shared _geoskill_data_fetcher library) so that a
future integration with the USGS 3DEP, OpenTopography, or ESA Copernicus DEM
endpoints can be added without changing the CLI surface.
# Reserved: --bbox is parsed to drive the synthetic-data bounds.
# (no actual download happens; this is the interface contract.)
python scripts/lidar_point_cloud_analysis.py \
--bbox 116,39,117,40 \
--date-range 2024-06-01,2024-06-30 \
--output-dir ./lpca-output
| Parameter | Default | Description |
|---|---|---|
--input | None | Input LAS/LAZ file path (optional, uses synthetic data if omitted) |
--output-dir | ./lpca-output | Output directory |
--resolution | 1.0 | Raster resolution in meters |
--ground-method | grid_min | Ground classification: grid_min, pmf |
--products | dem,dsm,chm,density,qa | Comma-separated products to generate |
--tile-size | 100.0 | Tile size in meters for QA |
--bbox-bounds | None | (legacy) Bounding box for synthetic data: xmin ymin xmax ymax |
--bbox | None | Bounding box W,S,E,N (shared flag, drives synthetic-data bounds) |
--date-range | None | Date range START,END in ISO-8601 (reserved for future DEM endpoint) |
--aoi-file | None | Optional GeoJSON AOI polygon (reserved) |
| File | Description |
|---|---|
dem.tif | Digital Elevation Model (bare earth) |
dsm.tif | Digital Surface Model (first return) |
chm.tif | Canopy Height Model (DSM - DEM) |
density.tif | Point density map (points/m²) |
profiles.geojson | Cross-section profiles as GeoJSON |
pointcloud_qa.json | Point cloud statistics and QA results |
request.json | Analysis request metadata |
dataset-manifest.json | Dataset inventory |
output-manifest.json | Output file inventory and raster info |
qa.json | Quality assurance checks |
| Code | Name | Description |
|---|---|---|
| dem | Digital Elevation Model | Ground surface (minimum Z per cell) |
| dsm | Digital Surface Model | Surface including objects (maximum Z per cell) |
| chm | Canopy Height Model | Height above ground (DSM - DEM) |
| density | Point Density | Points per square meter |
| qa | Quality Report | Statistics and quality checks |
| Method | Description |
|---|---|
| grid_min | Grid-based lowest point classification with slope threshold |
| pmf | Progressive Morphological Filter (requires scipy) |
| Code | Name |
|---|---|
| 0 | Created, Never Classified |
| 1 | Unassigned |
| 2 | Ground |
| 3 | Low Vegetation |
| 4 | Medium Vegetation |
| 5 | High Vegetation |
| 6 | Building |
| 7 | Low Point (Noise) |
| 8 | Model Key-point |
| 9 | Water |
| 10-18 | Reserved (Rail, Road, Wire, Bridge, etc.) |
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Argument error |
| 3 | Dependency missing |
| 6 | Data validation failure |
| 7 | Processing failure |