R语言 两点之间的地理空间距离

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程