R语言 两点之间的地理空间距离
地理空间距离,也被称为空间中任何两点之间的地理距离,是指沿地球表面测量的距离。这个距离是以两点的纬度和经度位置来衡量的。有不同的方面和公式来计算这个距离。
在R编程语言中,有一个外部软件包 “geosphere “可以用来计算角度(经度/纬度)位置的距离和各自的量度。这个包实现了计算地理坐标位置的距离、方向、面积等各个方面的方法。该软件包可以通过以下命令安装到工作空间中。
install.packages(“geosphere”)
考虑到地球的形状、假设的地球半径等,各点之间有不同类型的距离。为每种距离计算方法指定的点可以是一个包含各自X和Y坐标的两个数字的向量,一个由两列组成的矩阵,第一列是经度,其次是纬度。在两点相等的情况下,就所有实际目的而言,距离被认为是0。
- Haversine距离 – 这个最短距离是基于地球是球形的假设,忽略了椭圆体的影响。
语法
distHaversine(pt1, pt2, r=6378137)
参数:
- pt1和pt2 – 点的经度/纬度。
- r – 地球的半径;默认=6378137米
例子
# installing required library
library ("geosphere")
# declaring two points
point1 <- c(82.13452, 23.430502)
point2 <- c(43.23245,51.12356)
point_mat <- matrix(c(point1, point2), ncol =2 )
print ("Original Matrix")
print (point_mat)
# haversine distance
print ("Haversine Distance")
distHaversine(point_mat)
输出
[1] “Haversine Distance”
[1] 4405533
- 地理距离 – 对地球椭圆表面上两点之间最短距离的高度精确估计。该软件包的distm()方法用于计算一组(一对)点的距离矩阵。
语法
distm(xpos, ypos, fun=distGeo)
参数:
- xpos – 点的经度/纬度。
- ypos – 默认值:与x相同,如果缺少的话。
- fun – 距离计算函数(例如distCosine或distGeo)
例子
# installing required library
library ("geosphere")
# declaring two points
point1 <- c(82.13452, 23.430502)
point2 <- c(43.23245,51.12356)
point_mat <- matrix(c(point1, point2), ncol =2 )
print ("Original Matrix")
print (point_mat)
# applying distm method
geospatial_dist <- distm(point_mat, fun = distGeo)
print ("Distance Matrix")
print (geospatial_dist)
输出
[1] “Original Matrix”
[,1] [,2]
[1,] 82.13 43.23
[2,] 23.43 51.12
[1] “Distance Matrix”
[,1] [,2]
[1,] 0 4412901
[2,] 4412901 0
- 余弦距离 – 这个最短距离是基于地球是球形的假设,忽略了椭圆体的影响。
语法
distCosine(pt1, pt2, r=6378137)
参数:
- pt1和pt2 – 点的经度/纬度。
- r – 地球的半径;默认=6378137米
-
Meeus距离 是椭圆体上两点之间的最短距离(”大地测量”)。
例子
# installing required library
library ("geosphere")
# declaring two points
point1 <- c(82.13452, 23.430502)
point2 <- c(43.23245,51.12356)
point_mat <- matrix(c(point1, point2), ncol =2 )
print ("Original Matrix")
print (point_mat)
# cosine distance
print ("Cosine Distance")
distCosine(point_mat)
# Meeus distance
print ("Meeus Distance")
distMeeus(point_mat)
输出
[1] “Original Matrix”
[,1] [,2]
[1,] 82.13 43.23
[2,] 23.43 51.12
[1] “Cosine Distance”
[1] 4405533
[1] “Meeus Distance”
[1] 4412894