You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用filter_poi()过滤1米至最大高度减3之间的点云数据

问题描述

我尝试将归一化点云过滤为仅保留地面以上1米至冠层以下3米的点,请问如何引用最高(Z最大值)点的数值?

环境设置代码
library(lidR)

las.dir <- "E:\\FNF_LAS\\Batch5_FNF_4"
fileNames <- list.files(las.dir, pattern = "*216539.las|*217533.las|*217538.las", full.names = T)

las <- readLAS(fileNames[1])
las.norm <- normalize_height(las, algorithm = tin(), na.rm = T, res = 10)
尝试的错误代码
las.norm_minus3 <- filter_poi(las.norm, Z > 1 & Z < (zmax - 3))
解决方案

在lidR包中,你可以通过以下两种方式获取并使用归一化点云的Z最大值:

方式一:先提取冠层高度再过滤

# 提取归一化点云的Z轴最大值(即冠层最高高度)
canopy_max_height <- zmax(las.norm)

# 执行过滤:保留Z值在1米到(冠层高度-3米)之间的点
las.filtered <- filter_poi(las.norm, Z > 1 & Z < (canopy_max_height - 3))

方式二:直接在过滤表达式中调用函数

# 直接在filter_poi的条件里使用zmax()获取最大值
las.filtered <- filter_poi(las.norm, Z > 1 & Z < (zmax(las.norm) - 3))

额外提示

原代码中的文件路径存在转义问题:R语言中文件路径需要使用双反斜杠\\或者正斜杠/,所以"E:\FNF_LAS\Batch5_FNF_4"需要修正为"E:\\FNF_LAS\\Batch5_FNF_4",否则会导致路径解析错误。


内容的提问来源于stack exchange,提问作者regular_fs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:43:11