Distance géospatiale entre deux points dans R

La distance géospatiale, également connue sous le nom de distance géographique entre deux points quelconques dans l’espace, est appelée la distance mesurée le long de la surface de la terre. Cette distance est mesurée en fonction de la position des points par rapport à la latitude et à la position longitudinale. Il existe différents aspects et formules pour calculer cette distance.

Dans le langage de programmation R, un package externe “géosphère» est disponible afin de calculer les distances et les mesures respectives pour les emplacements angulaires (longitude/latitude). Ce package implémente les méthodes qui calculent divers aspects de la distance, de la direction, de la zone, etc. pour les positions de coordonnées géographiques. Le package peut être installé dans l’espace de travail à l’aide de la commande suivante :

install.packages(“géosphère”)

Différents types de distances sont disponibles entre les points en tenant compte de la forme de la terre, du rayon supposé de la terre, etc. Les points spécifiés pour chacune des méthodes de calcul de distance peuvent être un vecteur de deux nombres contenant les x et y respectifs coordonnées, une matrice de 2 colonnes, la première est la longitude, suivie de la latitude. Dans le cas où les deux points sont égaux, la distance est considérée comme égale à 0 à toutes fins pratiques.

  • Distance Haversine – Cette distance la plus courte est basée sur l’hypothèse que la Terre est sphérique, en ignorant les effets ellipsoïdaux.

Syntaxe:

distHaversine(pt1, pt2, r=6378137)

Paramètre :

  • pt1 et pt2 – longitude/latitude du/des point(s).
  • r – rayon de la terre ; par défaut = 6378137 m

Exemple:

R

library ("geosphere")

 

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)

 

print ("Haversine Distance")

distHaversine(point_mat)   

Production

[1] “Distance Haversine”

[1] 4405533

  • Géodistance – Estimation très précise de la distance la plus courte entre deux points sur une surface ellipsoïdale de la Terre. La méthode distm() de ce package est utilisée pour le calcul de la matrice de distance d’un ensemble (une paire) de points.

Syntaxe:

distm(xpos, ypos, fun=distGeo)

Paramètre :

  • xpos – longitude/latitude du (des) point(s).
  • ypos – Par défaut : identique à x , en cas d’absence
  • fun – Fonction de calcul de distance (par exemple, distCosine ou distGeo)

Exemple:

R

library ("geosphere")

 

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)

 

geospatial_dist <- distm(point_mat, fun = distGeo)  

print ("Distance Matrix")

print (geospatial_dist)

Production

[1] “Matrice originale”

[,1] [,2]

[1,] 82,13 43,23

[2,] 23,43 51,12

[1] “Matrice des distances”

[,1] [,2]

[1,] 0 4412901

[2,] 4412901 0

  • Cosinus Distance – Cette distance la plus courte est basée sur l’hypothèse que la Terre est sphérique, en ignorant les effets ellipsoïdaux.

Syntaxe:

distCosinus(pt1, pt2, r=6378137)

Paramètre :

  • pt1 et pt2 – longitude/latitude du/des point(s).
  • r – rayon de la terre ; par défaut = 6378137 m
  • Distance de Méeus est la distance la plus courte entre deux points sur un ellipsoïde (la «géodésique»).

Exemple:

R

library ("geosphere")

 

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)

 

print ("Cosine Distance")

distCosine(point_mat)                      

 

print ("Meeus Distance")

distMeeus(point_mat)      

Production

[1] “Matrice originale”

[,1] [,2]

[1,] 82,13 43,23

[2,] 23,43 51,12

[1] “Distance cosinus”

[1] 4405533

[1] “Meeus Distance”

[1] 4412894

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller en haut