Suite

La recherche la plus proche effectuée sur le plan euclidien est-elle précise

La recherche la plus proche effectuée sur le plan euclidien est-elle précise


J'écris un programme qui trouvera tous les points à moins de 1 km. Je prévois de le faire sur un plan euclidien car ma base de données ne prend en charge que l'indexation des plans euclidiens ou des sphères (http://docs.mongodb.org/manual/applications/geospatial-indexes/). J'ai choisi l'avion pour ses performances. Je me demandais à quel point l'utilisation de cet avion serait précise sur toute la terre. Je ne suis pas trop soucieux des correspondances EXACTES, mais je ne voudrais pas plus de 50 m d'erreur lors de la recherche de tous les points à moins de 1 km d'un certain point. Cela fonctionnerait-il sur toute la terre ou est-ce que je perdrais en précision si je me déplace sur toute la terre (poteaux et autres) ?

PS : je ne suis pas un expert en SIG, je ne me considérerais même pas comme un débutant.


Pourquoi l'utilisation d'une projection fixe ne fonctionnera pas

Pour qu'une projection soit d'une quelconque utilité pour les requêtes liées à la distance, elle et son inverse doivent être continues presque partout. Considérez alors ce qui se passe lorsque vous choisissez un point - n'importe quel point - et commencez à dessiner sur la carte un ensemble d'itinéraires qui émanent de ce point et s'en éloignent directement, dans toutes les directions, sur la terre. Initialement, ces itinéraires rempliront un quartier local du point, car chaque emplacement de ce quartier local peut (évidemment) être atteint en se déplaçant directement vers celui-ci. À n'importe quelle distance donnée, l'ensemble des emplacements qui peuvent être atteints devra remplir une sorte de goutte sur la carte centrée sur l'image du point de départ. Au fur et à mesure que la distance augmente, ce blob doit continuer à s'étendre tout le long de son périmètre. Après une très longue distance, cependant, ces routes convergeront toutes vers un petit ensemble de points qui sont diamétralement opposé le point de départ sur la terre. Mais maintenant, ils ne peuvent plus converger sur la carte, car ils doivent former le périmètre d'un blob (maintenant très grand). Il doit donc y avoir quelque endroit où la projection crée une énorme distorsion des distances. Tout algorithme basé sur une carte euclidienne est garanti d'échouer lorsqu'il est appliqué à proximité d'un tel emplacement.


Que faire

Il y a deux problèmes à gérer :

  1. Changements dans l'échelle de la projection d'un point à l'autre sur la terre.

  2. Modifications de l'échelle de la projection en fonction de la direction par rapport à un point fixe de la terre.

Toute projection dont l'échelle change avec la direction est appelée « non conforme ». Lorsque vous utilisez une telle projection, un cercle sur la terre, même très petit, ne sera pas circulaire sur la carte. Cela crée des résultats subtilement mauvais pour votre algorithme, car il aura alors tendance à sélectionner plus de points dans certaines directions et moins de points dans d'autres directions. Par conséquent, bien que des écarts par rapport à la conformité puissent être acceptables, ils doivent être maintenus dans des limites étroites.

De telles considérations conduisent à plusieurs stratégies possibles :

  1. Utilisez une collection de projections bien réglées couvrant la Terre. Chaque projection est autorisée à s'étendre sur une distance - qui dans certains cas peut être d'environ un millier de kilomètres (j'estime) - sur laquelle son échelle varie d'une quantité acceptable. Un tel ensemble standard de projections est UTM, l'Universal Transverse Mercator. (Malgré le nom, il comprend quelques projections stéréographiques près des pôles.)

    Le prix que vous payez en utilisant cette stratégie est une étape initiale dans laquelle vous identifiez une projection appropriée pour le point de sonde et ses environs, puis reprojetez tous les points cibles. Ensuite, vous appliquez votre algorithme euclidien 2D.

  2. Utiliser un très petit nombre de projections conformes--deux feront l'affaire (comme deux projections stéréographiques polaires) ou même une seule dans certains cas--et modifieront l'algorithme de recherche pour permettre au rayon de recherche de varier en fonction de l'emplacement du point de la sonde.

    C'est facile à réaliser - les formules à l'échelle pour les projections Mercator et stéréographiques sont simples (voir les ressources ci-dessous) - mais cela ne fonctionne que pour de courtes distances, généralement inférieures à quelques milliers de kilomètres, selon la précision requise.

  3. Effectuez la recherche en 3D. Utilisez les coordonnées X,Y,Z centrées sur la terre. Convertissez la distance sur le sphéroïde en une distance 3D (approximative) (qui sera un peu plus courte).

    Cela pourrait être le plus simple parmi les solutions très précises. Il y a un coût de précalcul ponctuel associé à la conversion de toutes les coordonnées de point en coordonnées 3D. Le prix réel est que vous devez implémenter un algorithme euclidien 3D au lieu d'un 2D.

  4. Utilisez une approximation grossière. Pour une précision de 50 m dans un rayon de 1000 km, il suffit de redimensionner les longitudes localement pour fonctionner correctement, comme décrit dans /a/108016. Il s'agit en réalité d'une approximation de (1), mais la charge de calcul est moindre.

Ressources

Les facteurs d'échelle pour les distorsions de distance UTM sont indiqués dans Calcul de la distorsion de surface en dehors de la zone UTM ?.

Une discussion de ces problèmes aux fins de l'interpolation pondérée en fonction de la distance, ainsi que quelques recommandations, apparaît à la rubrique Les données ponctuelles doivent-elles être projetées à égale distance lors de l'utilisation de l'interpolation spatiale ArcGIS IDW ?.

Les facteurs d'échelle de Mercator sont indiqués dans Utilisation de SRTM Global DEM pour le calcul de la pente ?. Si vous n'avez pas besoin de chercher à proximité de l'un ou l'autre des pôles, cette Célibataire La projection fonctionnera avec la stratégie (2) (en faisant varier le rayon de recherche selon les emplacements des sondes).


Voir la vidéo: Maher Zain - Toujours Proche Français. Always Be There. Official Lyric Video