【问题标题】:Calculate the bearing between more than two data points计算两个以上数据点之间的方位角
【发布时间】:2016-02-16 12:04:18
【问题描述】:

我有一些跟踪数据,我想在跟踪过程中计算bearing。对于两点,我们可以使用 fossil 包中的函数:

# earth.bear(long1, lat1, long2, lat2)
earth.bear(-10.54427, 52.11112, -10.55493, 52.10944)
# 255.6118

但是,这不会超过两点。以下是一些示例数据:

tracks <- read.table(text = 
"latitude,  longitude
52.111122,  -10.544271
52.10944,   -10.554933
52.108898,  -10.558025
52.108871,  -10.560946
52.113991,  -10.582005
52.157223,  -10.626506
52.194977,  -10.652878
52.240215,  -10.678817
52.26421,   -10.720366
52.264015,  -10.720642", header = TRUE, sep = ",")

【问题讨论】:

    标签: r coordinates gis spatial


    【解决方案1】:

    试试这个:

    sum(
      sapply(1:(nrow(tracks) - 1), function(i){
        earth.bear(tracks$longitude[i], tracks$latitude[i],
                   tracks$longitude[i+1], tracks$latitude[i+1] )
    
      })
    )
    
    # 2609.871
    

    【讨论】:

    • 我将编辑我的问题以使其更清楚,因为这不是我需要的方位之和,而是我想循环超过两个数据点。您的回答也提供了这一点。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 2011-12-28
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多