Ada*_*son 17 geometry voronoi r computational-geometry
我一直在研究基于Qhull(R中的几何包)的R和MatLab中的一些函数,将圆形图中的局部笛卡尔X,Y,Z点投影到球面(theta,phi,R),以0为中心, 0,0.由于所有的Z值在原始坐标中都是正的(X和Y的中心位于0),这给了我所需的半球投影(点颜色按Z值缩放),用radial.plot绘制( )R plotrix的功能,使用phi(方位角)和theta(极角):
对于球面变换,在以0,0,0为中心之后,而不是使用Bourke(1996)的计算,我使用维基百科上列出的ISO规范(而不是物理惯例).
r <- sqrt(x^2 + y^2 + z^2)
theta <- acos(z/r)
phi <- atan2(y,x)
Run Code Online (Sandbox Code Playgroud)
我想知道在这个半球投影中包含给定类点的Voronoi单元区域,保留透视失真.虽然计算二维笛卡尔X,Y点的二维Voronoi图很简单,但将这个Voronoi图转换为二维球形可能无法产生预期的结果,是吗?也许最好直接从半球投影点计算Voronoi图,然后返回每个细胞的面积.
更新:我已经解决了.我的解决方案将在新的R包中共享,我将在此处发布.
OP Adam Erickson 发布了gapfraction实现 Erickson 半球-Voronoi 间隙分数算法的软件包。
R 的间隙分数包旨在利用光检测和测距 (LiDAR) 数据对森林中的林下光进行建模。除了冠层间隙分数 (Po)、冠层角度闭合 (ACC) 和垂直冠层覆盖 (VCC) 指标外,该软件包还实现了新的冠层高度模型 (CHM) 算法、流行的个体树冠 (ITC) 检测算法、以及许多其他算法,可以为统计建模产生有用的特征,包括树木距地块中心的距离。
欲了解更多详情,请参阅:gapfraction:LiDAR冠层光传输的R函数
请看下面代码的一些简单演示:
# devtools::install_github("adam-erickson/gapfraction", dependencies=TRUE)
library(raster)
library(gapfraction)
data(las)
# This function implements Erickson's hemispherical-Voronoi gap fraction algorithm
# with four common lens geometries: equi-distant, equi-angular, stereographic, and orthographic
P.hv(
las = las,
model = "equidist",
thresh.val = 1.25,
thresh.var = "height",
reprojection = NA,
pol.deg = 5,
azi.deg = 45,
col = "height",
plots = TRUE,
plots.each = FALSE,
plots.save= FALSE
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |