J'ai un ensemble de points en tant que fichier de formes et je veux trouver (les coordonnées) d'un nouveau point qui aura la distance la plus longue possible de chacun des points existants. Est-ce possible? Si oui, existe-t-il un exemple de code VB? Merci Demetris
arcgis-10.0
arcobjects
vba
vb.net
Demetris
la source
la source
Réponses:
La recommandation de Kirk Kuykendall de construire un diagramme sphérique de Voronoï (polygones de Thiessen) est bonne, mais pourrait avoir quelques problèmes techniques à résoudre. En attendant, comme alternative, on peut appliquer la solution raster standard comme décrit dans un autre thread . Utilisez des distances sphériques au lieu des distances euclidiennes.
Voici un exemple utilisant cinq points, donné ici comme (lat, lon):
Cette carte de distance sphérique couvre le globe de -180 à 180 degrés de longitude horizontalement et de -90 à 90 degrés de latitude verticalement. Les points sont représentés par de gros points rouges. Les distances augmentent avec la luminosité. Les crêtes apparentes doivent être des portions de grands cercles. Le petit point noir proche (-15.3268, -2.04352) marque le point de distance maximum de 11.227 km. (Les distances ont été calculées dans le référentiel ellipsoïdal ITRF00.)
La résolution de cette grille est d'un degré. Pour obtenir une solution plus précise, on peut zoomer sur un tel point (et sur tout autre maximum local avec une valeur suffisamment proche du maximum global) et répéter le calcul sur une grille plus petite mais à plus haute résolution.
la source
Je n'ai jamais essayé cela mais il semble que cela fonctionnerait:
Créez un diagramme voronoi 3D de la sphère. Ces polygones résultants seront à peu près centrés sur les points d'origine existants (source).
Parcourez chaque sommet résultant pour trouver celui qui est le plus éloigné de son point existant le plus proche. Ce point devrait être le point le plus éloigné du globe.
la source
Vous pouvez utiliser une fonction de distance pondérée en fonction des coûts pour identifier la distance de chaque cellule de votre raster par rapport à tous les autres points.
la source
Pour autant que je sache, cette analyse du " Pôle d'inaccessibilité " doit être effectuée de manière itérative.
Une approche raster itérative serait appropriée tant que vous regardez une petite zone avec une distorsion minimale de la projection. Pour chaque cellule, calculez la distance à tous les points, puis prenez la distance minimale. La cellule avec la valeur la plus élevée est le pôle. Pour ce faire, vous pouvez également utiliser la distance euclidienne dans Spatial Analyst.
Une approche vectorielle itérative est plus compliquée. Garcia-Castellanos et al 2007 décrivent une méthode itérative basée sur une terre sphérique. Il semble qu'ils aient rendu leur code C disponible en ligne . Je peux imaginer des façons de le faire dans Arc avec des tampons, mais ce serait toujours itératif et lent.
la source
vous pouvez utiliser la distance de point (analyse) L'outil crée un tableau avec des distances entre deux ensembles de points. si le rayon de recherche par défaut est utilisé, les distances de tous les points d'entrée à tous les points proches sont calculées. Le tableau de sortie peut être assez volumineux. Par exemple, si les entités en entrée et proches ont chacune 1 000 points, la table en sortie peut contenir un million d'enregistrements.
la source
Le point le plus éloigné de votre ensemble de points serait l'inverse du point le plus intérieur de votre ensemble. Par exemple, si votre point le plus intérieur de votre ensemble avait des coordonnées 49 degrés Nord et -144 degrés Est, alors le point réciproque et le point le plus éloigné auraient des coordonnées 49 degrés Sud et 36 degrés Ouest. Ce n'est pas tout à fait vrai car la Terre n'est pas parfaitement sphérique, plutôt géoïdale; par conséquent, l'exactitude de votre résultat dépend beaucoup des systèmes géographiques et de projection (orthographiques, orthorectifiés ...) que vous utilisez. Il pourrait être utile de trouver une réciproque pour l'ensemble entier (transférer un antipode pour un ensemble), puis d'effectuer une analyse de surface dans le terrain couvert par l'ensemble de points antipode, car le terrain peut très. Je suppose que votre question ne concerne aucun point sur les corps extraterrestres, tels que d'autres planètes ou lunes. Pardon, Je n'ai pas de code VB pour vous. 🙄
la source