如何使用 R "simple features" 库 `sf` 进行 3D 距离计算?
How can I do 3D distance calcs using the R "simple features" library `sf`?
我最近才开始使用 nice 和相对较新的 library(sf)
。很高兴看到点和线可以有 Z 坐标。例如:
> st_linestring(rbind(c(0,0,0),c(1,1,1)))
LINESTRINGZ(0 0 0, 1 1 1)
然而,使用具有 Z 信息的对象的计算似乎很清楚,将其全部投影到 XY 平面中:
# I wish this returned POINTZ(0.5 0.5 0.5)...
> st_centroid(st_linestring(rbind(c(0,0,0),c(1,1,1))))
POINT(0.5 0.5)
# I wish this returned 1.0...
> st_distance(st_linestring(rbind(c(0,0,0),c(1,1,1))),
st_linestring(rbind(c(2,0,2),c(0,2,2))))
[,1]
[1,] 0
如何在不自己滚动的情况下使用 Z 坐标进行操作?
(我猜是我因为缺乏理解而遗漏了一些东西,或者这个库太新了,这些操作根本还没有实现。)
现在你不能不写(或作为参数传递给st_distance
)你自己的距离函数。
我最近才开始使用 nice 和相对较新的 library(sf)
。很高兴看到点和线可以有 Z 坐标。例如:
> st_linestring(rbind(c(0,0,0),c(1,1,1)))
LINESTRINGZ(0 0 0, 1 1 1)
然而,使用具有 Z 信息的对象的计算似乎很清楚,将其全部投影到 XY 平面中:
# I wish this returned POINTZ(0.5 0.5 0.5)...
> st_centroid(st_linestring(rbind(c(0,0,0),c(1,1,1))))
POINT(0.5 0.5)
# I wish this returned 1.0...
> st_distance(st_linestring(rbind(c(0,0,0),c(1,1,1))),
st_linestring(rbind(c(2,0,2),c(0,2,2))))
[,1]
[1,] 0
如何在不自己滚动的情况下使用 Z 坐标进行操作?
(我猜是我因为缺乏理解而遗漏了一些东西,或者这个库太新了,这些操作根本还没有实现。)
现在你不能不写(或作为参数传递给st_distance
)你自己的距离函数。