Distancia geoespacial entre dos puntos en R

La distancia geoespacial, también conocida como la distancia geográfica entre dos puntos cualesquiera en el espacio, se refiere a la distancia medida a lo largo de la superficie de la tierra. Esta distancia se mide en función de la posición de los puntos con respecto a la latitud y posición longitudinal. Existen diferentes aspectos y fórmulas para calcular esta distancia. 

En el lenguaje de programación R, está disponible un paquete externo » geosfera » para calcular las distancias y las respectivas medidas para ubicaciones angulares (longitud/latitud). Este paquete implementa los métodos que calculan varios aspectos de distancia, dirección, área, etc. para posiciones de coordenadas geográficas. El paquete se puede instalar en el espacio de trabajo usando el siguiente comando: 

install.packages(“geosfera”)

Hay diferentes tipos de distancias disponibles entre los puntos teniendo en cuenta la forma de la tierra, el radio supuesto de la tierra, etc. Los puntos especificados para cada uno de los métodos de cálculo de distancia pueden ser un vector de dos números que contienen las respectivas x e y. coordenadas, una array de 2 columnas, la primera es la longitud, seguida de la latitud. En caso de que los dos puntos sean iguales, la distancia se considera 0 a todos los efectos prácticos. 

  • Distancia de Haversine : esta distancia más corta se basa en la suposición de que la Tierra es esférica, ignorando los efectos elipsoidales.

Sintaxis:

distHaversine(pt1, pt2, r=6378137)

Parámetro: 

  • pt1 y pt2 – longitud/latitud del punto(s). 
  • r – radio de la tierra; predeterminado = 6378137m

Ejemplo:

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)   

Producción

[1] “Distancia Haversine” 

[1] 4405533

  • Distancia geográfica: estimación altamente precisa de la distancia más corta entre dos puntos en una superficie elipsoidal de la tierra. El método distm() de este paquete se usa para calcular la array de distancia de un conjunto (un par) de puntos.

Sintaxis:

distm(xpos, ypos, fun=distGeo)

Parámetro:

  • xpos – longitud/latitud del punto(s). 
  • ypos – Predeterminado: igual que x, en caso de que falte 
  • fun – Función de cálculo de distancia (p. ej., distCosine o distGeo)

Ejemplo:

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)

Producción

[1] “Array original” 

      [,1] [,2] 

[1,] 82,13 43,23 

[2,] 23,43 51,12 

[1] «Array de distancia» 

        [,1] [,2] 

[1,] 0 4412901 

[2,] 4412901 0

  • Distancia del coseno : esta distancia más corta se basa en la suposición de que la Tierra es esférica, ignorando los efectos elipsoidales.

Sintaxis:

distCoseno(pt1, pt2, r=6378137)

Parámetro:

  • pt1 y pt2 – longitud/latitud del punto(s).
  • r – radio de la tierra; predeterminado = 6378137m
  • La distancia Meeus es la distancia más corta entre dos puntos en un elipsoide (el ‘geodésico’).

Ejemplo:

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)      

Producción

[1] “Array original”

     [,1] [,2]

[1,] 82,13 43,23

[2,] 23,43 51,12 

[1] “Distancia del coseno” 

[1] 4405533 

[1] “Meeus Distancia” 

[1] 4412894

Publicación traducida automáticamente

Artículo escrito por mallikagupta90 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *