📜  R中两点之间的地理空间距离

📅  最后修改于: 2022-05-13 01:54:52.139000             🧑  作者: Mango

R中两点之间的地理空间距离

地理空间距离,也称为空间中任意两点之间的地理距离,是指沿地球表面测量的距离。该距离是根据点相对于纬度和经度位置的位置来测量的。有不同的方面和公式来计算这个距离。

在 R 编程语言中,可以使用外部包“ geosphere ”来计算角度(经度/纬度)位置的距离和相应的度量。这个包实现了计算地理坐标位置的距离、方向、面积等各个方面的方法。可以使用以下命令将软件包安装到工作空间中:

考虑到地球的形状、假设的地球半径等,点之间的距离可以使用不同类型的距离。 为每种距离计算方法指定的点可以是包含各自 x 和 y 的两个数字的向量坐标,一个2列的矩阵,第一个是经度,然后是纬度。如果两点相等,则出于所有实际目的,距离被认为是 0。

  • 半正弦距离——这个最短距离是基于地球是球形的假设,忽略椭球效应。

例子:

R
# 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)


R
# 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)


R
# 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)


输出

  • 地理距离——地球椭球面上两点之间最短距离的高精度估计。该包的 distm() 方法用于计算一组(一对)点的距离矩阵。

例子:

电阻

# 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)

输出

  • 余弦距离——这个最短距离是基于地球是球形的假设,忽略椭球效应。
  • 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)      

输出