Mad*_*ddy 2 r angle latitude-longitude
我有一套纬度和经度,所以这是动物及时移动的数据.我想要做的是计算转弯角度,即它在每次运动之间转动的角度.所以说我有点1,点2和点3,纬度和经度值对应每个点(动物从点1移动到点2到点3,依此类推),我想计算这3点之间的角度,点2是中间点.我该怎么办?我的操作系统是Windows,我使用R进行分析.
所以这是我的样本数据:
longitude latitude
36.89379547 0.290166977
36.89384037 0.290194109
36.88999724 0.286821044
36.88708721 0.288339411
36.88650313 0.29010232
36.88563203 0.289939416
36.88545224 0.290924863
Run Code Online (Sandbox Code Playgroud)
它们是十进制度
使用功能trackAzimuth中maptools:
library(maptools)
trackAngle <- function(xy) {
angles <- abs(c(trackAzimuth(xy), 0) -
c(0, rev(trackAzimuth(xy[nrow(xy):1, ]))))
angles <- ifelse(angles > 180, 360 - angles, angles)
angles[is.na(angles)] <- 180
angles[-c(1, length(angles))]
}
Run Code Online (Sandbox Code Playgroud)
该trackAzimuth函数是一个简单的循环包装器gzAzimuth.有关?gzAzimuth计算球体方向的参考,请参阅参考资料.
使用您的数据:
x <- read.table(text = "longitude latitude
36.89379547 0.290166977
36.89384037 0.290194109
36.88999724 0.286821044
36.88708721 0.288339411
36.88650313 0.29010232
36.88563203 0.289939416
36.88545224 0.290924863", header = TRUE)
trackAngle(as.matrix(x))
[1] 10.12946 111.17211 135.88514 97.73801 89.74684
Run Code Online (Sandbox Code Playgroud)
编辑:我不得不从函数中删除第一个/最后一个角度,这是我在其他地方使用此函数后所做的事情.应该是现在.:)
此外,包adehabitatLT和argosfilter包含计算轨道方向和角度的功能.
| 归档时间: |
|
| 查看次数: |
4232 次 |
| 最近记录: |