【发布时间】:2018-05-29 03:40:12
【问题描述】:
我正在查看一些分散数据,并希望获得点之间的距离以及这些点之间的角度。到目前为止,我只能实现第一部分。使用 adehabitatLT 包中的青色数据我已经这样做了:
require("adehabitatLT")
require("sp")
data("teal")
teal <- teal[1:10 ,]
capsd <- SpatialPointsDataFrame(coords = SpatialPoints(coords =
teal[, c("x","y")], proj4string = CRS("+proj=longlat +datum=WGS84
+ellps=WGS84 +towgs84=0,0,0")), data=teal)
capdistance <- as.data.frame(pointDistance(capsd))
capdistance 是一个 10x10 的数据框,显示蓝绿色数据集前 10 个点之间的距离。
有谁知道我将如何计算这些点之间的角度以创建与 capdistance data.frame 类似的矩阵?我已经搜索过了,但到目前为止,我还没有找到任何可以计算两个设定位置之间角度的东西。任何帮助将不胜感激。
编辑
所以我一直在环顾四周,似乎 geosphere 包中的方位功能对此很有用,但我仍然(至少)一步之遥:
require("geosphere")
capbearing1 <- bearing(capsd[1:10 ,], capsd[1 ,])
capbearing2 <- bearing(capsd[1:10 ,], capsd[2 ,])
我可以重复这十次以获得十个列表,每个列表给出十个点之一相对于所有十个点(本身和其他九个点)的角度;但是,我真的希望它能够顺利运行,以一次将所有十个列表作为单个矩阵提供;再次,非常感谢任何帮助。
如果您在单个区域中使用 UTM 并且数据点有限,那么 cygps 提供了一些很好的代码,因此如果您有这些参数,请尝试一下。
【问题讨论】: