关于 point-cloud-lidar
用于将 LiDAR 和点云数据处理为经过验证的地形与结构产品的技能,强调按点密度选择分辨率、区分传感器类型,并将垂直基准转换记录在交付元数据中。
主要功能
- 01检查点数、密度、CRS、分类和回波
- 02滤除噪声并分类地面点
- 03生成 DTM、DSM、CHM 和结构指标
- 04使用缓冲边缘处理分块
- 05验证高程并记录垂直基准
适用场景
- 01从 LiDAR 创建仅含地面点的 DTM
- 02生成冠层高度和林业指标
- 03检查分块接缝与高程精度
- 04制作含来源记录的地理配准高程产品
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ muend/ geoai-skills --skill point-cloud-lidar安装后在 Claude Code 中输入/point-cloud-lidar确认已加载。
附带文件agents/openai.yamlreferences/authoritative-sources.md
详细介绍
点云与 LiDAR
用途:将原始回波转化为可靠的高程和结构产品。 常见的失败模式包括:盲目信任供应商分类、 在地表中混用回波类型(用末次回波生成 DSM、DTM 中包含 植被),以及在选择输出分辨率时忽略点密度。
首次处理任何点云时
pdal info input.laz --summary # counts, bounds, CRS, classes, returns
在进行任何操作前,先报告:点数、密度(pts/m²——决定可实现的栅格 分辨率)、CRS(水平和垂直基准——椭球高与正高的差异取决于大地水准面 起伏,某些地区可达数十米)、是否包含分类信息、是否包含回波编号、 航带重叠伪影。没有 CRS 元数据的点云:向数据提供方核实,切勿自行假定。
格式与规模
| 格式 | 用途 |
|---|---|
| LAZ | 压缩交换/存档格式——默认选择 |
| COPC(云优化 LAZ) | 流式/HTTP 范围访问、Web 查看器 |
| LAS | 仅在工具无法读取 LAZ 时使用 |
| Entwine/EPT | 大型多瓦片集合,已建立索引 |
将大型集合切分成瓦片;按瓦片处理时,为边缘添加缓冲区(约为搜索 半径的 2 倍),以避免滤波和地表处理产生接缝伪影;写入时去除缓冲区。
PDAL 流水线模式
{
"pipeline": [
"input.laz",
{"type": "filters.reprojection", "out_srs": "EPSG:32636"},
{"type": "filters.outlier", "method": "statistical",
"mean_k": 8, "multiplier": 2.5},
{"type": "filters.smrf", "slope": 0.15, "window": 18.0,
"threshold": 0.5, "scalar": 1.2},
{"type": "writers.las", "filename": "classified.laz",
"extra_dims": "all"}
]
}
运行:pdal pipeline pipeline.json。先去噪,再进行地面分类
(地面以下的低位离群点会破坏 SMRF/CSF);陡峭地形应调高 slope,
window 则应设为最大的非地面对象(大型建筑需要更大的窗口)。
地面分类与 DTM
- 如果供应商已提供 class 2(地面):先审查 2–3 条横截面 (桥梁、茂密树冠、陡坡),再决定是否信任;对分类失败的区域重新分类。
- 算法:SMRF(PDAL 默认算法,稳健)、CSF(布料模拟,适用于 陡峭森林)。参数取决于地形——应提供横截面图作为依据,而不只是参数列表。
- 仅使用地面点生成 DTM;插值方法:TIN → 栅格(DTM 的标准方法), 或对高密度点云使用 IDW。输出分辨率应 ≥ ~1/√density;用 1 pt/m² 数据生成 0.5 m DTM 属于凭空创造细节。
- 使用首次回波/最高点分箱生成 DSM。CHM = DSM − DTM, 将负值设为 0;林业应用应使用无坑算法(朴素 CHM 会因树冠内部的坑洞而出现斑点)。
结构指标
- 林业:高度百分位数(p95 ≈ 树冠高度)、树冠覆盖率
(高于 2 m 的首次回波数 / 首次回波总数)、每个网格单元或样地的
密度指标;先用 DTM 归一化高度(
filters.hag_dem或filters.hag_nn)。单木检测:在无坑 CHM 上提取局部极大值并结合 分水岭分割——使用野外样地或人工照片解译样本验证树木计数。 - 建筑物:使用 class 6 或提取平面片;建筑高度 = p90(屋顶点 HAG);通过对 HAG 进行分区统计,将建筑轮廓与地籍/OSM 多边形融合。
- 下游地形分析(坡度、流域)→
terrain-hydrology; 点云或派生栅格上的 DL →geo-deep-learning。
SfM/摄影测量点云——并非 LiDAR
无人机摄影测量点云没有回波,不具备树冠穿透能力(植被下的地面是推测得出的), 存在相关噪声,且相机标定不佳时可能产生穹顶效应。森林中的 SfM「DTM」 实际是树冠模型。每份交付成果都应注明传感器类型;仅对 LiDAR 使用穿透能力、 回波指标等相关表述。
垂直基准:解析、转换、记录
每个高程产品都承担三项义务,而第三项最容易被跳过。**在回答中注明基准,不等于将其记录下来。**如果某个高度产品的垂直基准只存在于聊天回复中,那么文件一旦交给其他人,它就和完全没有基准信息的文件毫无区别。
- **解析。**从头文件/VLR 中读取垂直 CRS。若缺失或存在矛盾,则根据采集元数据(供应商飞行报告、项目规范)解析,或进行诊断:与当地大地水准面起伏相符、贯穿整个瓦片的固定偏移,是椭球高与正高混淆的特征。切勿仅根据高程数值推断基准。
- **转换。**应用明确命名的转换——通过
filters.reprojection使用复合 CRS 和大地水准面模型,或在没有大地水准面网格时拟合逐瓦片偏移。之后重新计算重叠区域的差值,并确认各条带在噪声范围内一致。 - **将信息记录到输出中,而不只是写在回复里。**每个交付的产品都必须以机器可读的形式包含:
- 写入文件本身的复合或垂直 CRS(LAS/LAZ 头部 VLR、GeoTIFF CRS,或旁车文件中的 PROJJSON);
- 实际应用的大地水准面模型名称和版本(例如 EGM2008、GEOID18),以及转换流程或 EPSG 操作代码;
- 应用的逐瓦片偏移(若按瓦片进行校正),以及拟合所依据的控制点或参考数据;
- 用于解析原先缺失的基准的事实来源;
- 校正后的条带边缘残余不一致。
将这些信息作为旁车文件(*.prj/PROJJSON、元数据 JSON 或嵌入式栅格标签)与产品一同输出,绝不发布垂直基准尚未解析的高度产品。如果无法解析基准,则将产品标记为 provisional,并在同一元数据块中记录尚未解析的基准——不能保持沉默。
验证流程
- 横截面(2-3 处,包括建筑边缘和植被坡面):地面分类贴合地形,DSM 覆盖地表。
- 将 DTM 与已知控制点/国家 DEM 作差:报告 RMSE,并检查是否存在表示垂直基准不匹配的固定偏移。
- 对 DTM 生成山体阴影图——分类伪影(凹坑、凸点、航带条纹)会立刻显现。
- 在回答中报告点密度、CRS + 垂直基准、分类器 + 参数,以及输出分辨率的选取依据——并且确认已将经过验证的垂直基准、大地水准面模型和转换写入输出元数据,然后再将产品视为已交付。
易错项检查清单
- 将椭球高作为正高交付(整个产品因大地水准面起伏而产生偏移)。
- 审核过程中解析了垂直基准,却未将其写入交付产品的元数据——下一个使用者仍会遇到你刚刚花费分析才消除的同一歧义。
- DTM 分辨率高于点密度所能支持的范围。
- 在茂密树冠下仍盲目信任供应商的地面分类。
- CHM 中存在负值或树冠凹坑(未进行无凹坑处理)。
- 按瓦片处理但未使用缓冲区 → 衍生产品中出现接缝线。
- 地面分类完成后才运行离群点滤波器。
- 将 SfM 点云当作能穿透树冠的 LiDAR。
执行规范
- **工作流:**检查头信息、CRS、垂直基准、密度、类别和回波;使用缓冲区进行分块;过滤噪声;分类;生成产品;拼接;在 3D 视图和横截面中验证。
- **决策规则:**当回波级 3D 证据很重要时,使用点云工作流;经过验证的 DEM 已存在时,使用地形工作流;对 LiDAR 点云和 SfM 点云采用不同的假设。
- **验证流程:**核对点数和类别,检查带缓冲区的接缝和横截面,将高程与控制点比较,对派生地形生成 hillshade,并报告有密度数据支持的分辨率。
- **故障模式:**遇到垂直基准未知、密度不足、分类损坏、瓦片接缝、未受限的异常值,或产品分辨率超出采样数据支持范围时,停止处理。垂直基准确定后,切勿在未将该基准及其转换记录到输出元数据中的情况下交付产品。
- **交付物:**经过验证的点云或派生的 DTM/DSM/CHM、管线参数、CRS 和垂直基准、密度和类别报告、QA 图件、精度指标及局限性。已验证的垂直基准、应用的大地水准面模型和转换,以及任何逐瓦片偏移,都必须写入输出元数据或 sidecar 文件,不能只写在回答文本中。
- **来源时效性:**应用格式、质量或处理规则前,请查阅权威来源注册表,并记录查阅日期。