如何使用LIDR将LAS/LAZ-FILE带到用户定义的点密度[每平方计的点]?

发布于 2025-02-03 09:38:57 字数 1262 浏览 1 评论 0原文

我有一个LAS/LAZ-FILE,点密度为72.91分/m²,我想使用lidr :: voxelize()从软件包,我想将其达到4分/m²的点密度/m² “ https://www.rdocumentation.org/packages/lidr/versions/4.0.1” rel =“ nofollow noreferrer”> {lidr}

但是,我不知道如何使用给定参数< res =>实现这一目标。

到目前为止,我尝试过的是:

# original las dataset
original_las
class        : LAS (v1.4 format 6)
memory       : 5.3 Mb 
extent       : ??????.?, ??????.?, ???????, ??????? (xmin, xmax, ymin, ymax)
coord. ref.  : ETRS89 / UTM zone 32N 
area         : 828 m²
points       : 60.4 thousand points
density      : 72.91 points/m²
density      : 36.43 pulses/m²

lowres_las <- lidR::voxelize_points(las = original_las, 
                    res = lidR::density(original_las)/18.2275)
# 72.91 points/m² divided by 4 points/m² should bring me 
# to a resolution argument of ~18.2275

lowres_las
class        : LAS (v1.4 format 6)
memory       : 23.9 Kb 
extent       : ??????.?, ??????.?, ???????, ??????? (xmin, xmax, ymin, ymax)
coord. ref.  : ETRS89 / UTM zone 32N 
area         : 767.9623 m²
points       : 304  points
density      : 0.4 points/m²
# however, I do not only get the wrong points/m², but also an altered area

I have a las/laz-file with a point density of 72.91 points/m² which I want to bring to point density of 4 points/m² using lidR::voxelize() from package {lidR}.

However, I do not know how to achieve that with the given argument <res = >.

What I have tried so far:

# original las dataset
original_las
class        : LAS (v1.4 format 6)
memory       : 5.3 Mb 
extent       : ??????.?, ??????.?, ???????, ??????? (xmin, xmax, ymin, ymax)
coord. ref.  : ETRS89 / UTM zone 32N 
area         : 828 m²
points       : 60.4 thousand points
density      : 72.91 points/m²
density      : 36.43 pulses/m²

lowres_las <- lidR::voxelize_points(las = original_las, 
                    res = lidR::density(original_las)/18.2275)
# 72.91 points/m² divided by 4 points/m² should bring me 
# to a resolution argument of ~18.2275

lowres_las
class        : LAS (v1.4 format 6)
memory       : 23.9 Kb 
extent       : ??????.?, ??????.?, ???????, ??????? (xmin, xmax, ymin, ymax)
coord. ref.  : ETRS89 / UTM zone 32N 
area         : 767.9623 m²
points       : 304  points
density      : 0.4 points/m²
# however, I do not only get the wrong points/m², but also an altered area

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陌路终见情 2025-02-10 09:38:57

您想通过在3D中衰减/脱氧来达到以PTS/m²表示的密度。它甚至不可能。如果要达到4 pts/m²,则使用decimate_points()是为此目的而设计的。

如果您真的想在3D中考虑Voxelize 达到4 pts/m²。估计每立方米的密度。假设您的高度树高和800平方米,则意味着您拥有大约16000立方米。您需要4分/平方米,因此4×800 = 3200点或16000立方米的体素。进行数学以估算大约解决问题的体素分辨率。

对于改变的区域,请考虑一下,您会发现它可以预期

You want to reach a density expressed in pts/m² by decimating/voxelizing in 3D. It don't think it is even possible. If you want to reach 4 pts/m² use decimate_points() which is designed for such purpose.

If you really want to voxelize and reach 4 pts/m² you must think in 3D. Estimate the density per m³. Assuming you have homogeneously 20 m height trees and 800 m² it means you have approx 16000 m³. You want 4 pts/m² so 4×800 = 3200 points or voxels in 16000 m³. Do the math to estimate a voxel resolution that solve approximately the problem.

For the altered area think about it a bit you will find that it is expected

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文