Problématique
Vous disposez d'enregistrements qui contiennent différentes données, notamment des coordonnées géographiques. Chaque enregistrement géolocalisé renvoie également à une commune.
Cependant, vous constatez que certaines données sont erronées : les coordonnées géographiques ne correspondent pas à la commune qui leur est associée…
Mais alors comment procéder à la validation de ces données géolocalisées et s'assurer de leur fiabilité ?
Éléments nécessaires à la validation des données géolocalisées
Pour la validation des données géolocalisées, vous devez disposer de deux éléments :
- Des enregistrements contenant les deux informations suivantes :
- 1 localisation par enregistrement à valider (coordonnées GPS en degrés décimaux) ;
- 1 commune (avec son code INSEE) associée à cet enregistrement.
- Un fichier contenant les localisations des communes INSEE ainsi que leur superficie, fichier téléchargeable gratuitement sur l'Open Data de l'INSEE.
Logique de validation des données géolocalisées
Il est possible de mesurer la distance qui sépare deux points grâce à leurs coordonnées géographiques respectives. Ainsi, on peut obtenir la distance (D) entre le centre de la commune et notre point géolocalisé, puis comparer cette distance au rayon (R) de cette même commune (rayon extrapolé à partir de la superficie).
- Si la distance est inférieure au rayon de la commune, la donnée est fiable : le point géolocalisé se situe bien dans la commune.
Si D ≤ R, alors la donnée est validée. - Si la distance est comprise entre 1 et 3 fois le rayon de la commune ou si cette distance est inférieure à 5 km, la donnée est « à vérifier ».
Si R ≤ D ≤ 3R ou si D ≤ 5 km, alors la donnée est à vérifier. - Si la distance est supérieure au rayon de la commune (ou supérieure à 5 km), alors le point géolocalisé ne peut pas être associé à la commune.
Si D > R ou si D > 5 km, alors la donnée est invalidée.
Formules de calcul
Soit deux points A et B géolocalisés. Ci-dessous la formule pour calculer la distance D qui sépare ces deux points :
DA-B = arc cos [sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(LonB – LonA)]
Lat : latitude en radians
Lon : longitude en radians
Pour convertir les degrés en radians, il suffit d'appliquer la formule suivante :
Latitude (en degrés) * π/180 = Latitude (en radians)
Longitude (en degrés) * π/180 = Longitude (en radians)
exemple : Nantes
Nantes | Degré | Radian |
Longitude (x) | 47.216671 | 0.8240864 |
Latitude (y) | -1.55 | 0.027052 |
La distance DA-B obtenue est une distance angulaire, exprimée en radians. Pour l'obtenir en kilomètres, il faut la multiplier par le rayon terrestre (6378,137 km).
La formule devient :
DA-B = arc cos [sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(LonB – LonA)] * 6378,137
Ensuite, il ne reste plus qu'à implémenter cette formule et à la valider avec un « si », « alors », « sinon » dans votre outil de traitement favori. Vous automatisez ainsi la validation des données géolocalisées.
Rappel :
La superficie des communes dans le fichier INSEE est exprimée en hectares. Sachant qu'un hectare vaut 0,01 km2, on peut extrapoler le rayon moyen de la commune grâce à la formule suivante :
L'implémentation de cette formule en SQL Server donne : sqrt(Superficie/100*pi())
Vous souhaitez bénéficier d'experts sur la validation de données géolocalisées ? Rendez vous sur la page Contact