【问题标题】:How can I do 3D distance calcs using the R "simple features" library `sf`?如何使用 R“简单特征”库`sf` 进行 3D 距离计算?
【发布时间】:2017-05-22 02:22:48
【问题描述】:

我最近才开始使用 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 坐标进行操作?

(我猜要么是因为缺乏理解而遗漏了一些东西,要么是库太新了,这些操作根本还没有实现。)

【问题讨论】:

  • 不确定,但我认为您需要先设置一个描述 3d 投影的 crs
  • @yeedle,谢谢。如果我添加一个 CRS,我会得到同样的结果。我猜想像质心和距离这样的操作应该在地图上定义,而不是在 3-D 空间中定义。

标签: r 3d distance spatial sf


【解决方案1】:

现在你不能不编写(或作为参数传递给st_distance)你自己的距离函数。

【讨论】:

    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多