【发布时间】:2016-08-23 09:38:22
【问题描述】:
我在使用 geosphere 包中的 perimeter 函数时遇到了一些问题。
根据第一原理,1 度弧等于 1 纳米 所以弧度 90° = 90 * 60 = 5400nm
当我使用 distGeo 和赤道上的两个点时,我得到的答案与该图相对应。
library(geosphere)
distGeo(c(0,0),c(0,90), a=6378137, f=1/298.257223563)/1852
#[1] 5400.629
如果我尝试用周长做同样的计算,我会得到两倍的距离!
#Two points on equator
xy <- rbind(c(0,0), c(90,0))
xy
# [,1] [,2]
#[1,] 0 0
#[2,] 90 0
perimeter(xy)/1852
#[1] 10819.39
perimeter(xy, a=6378137, f=1/298.257223563)/1852
#[1] 10819.39
如果这次我们沿着本初子午线在赤道和北极之间取另一个点,结果是......
distGeo(c(0,0),c(90,0), a=6378137, f=1/298.257223563)/1852
#[1] 5409.694
这显示了椭球的效果。
当我对这些新点使用周长时,我仍然遇到和以前一样的问题!
#From the equator to the north Pole along the Prime meridian
xy <- rbind(c(0,0), c(0,90))
xy
# [,1] [,2]
#[1,] 0 0
#[2,] 0 90
perimeter(xy)/1852
#[1] 10801.26
perimeter(xy, a=6378137, f=1/298.257223563)/1852
#[1] 10801.26
那我做错了什么?
史蒂夫
【问题讨论】:
标签: r