Tengo un conjunto de puntos como un archivo de forma y quiero encontrar (las coordenadas) de un nuevo punto que tendrá la mayor distancia posible desde cada uno de los puntos existentes. ¿Es eso posible? En caso afirmativo, ¿hay algún código VB de muestra? Gracias Demetris
arcgis-10.0
arcobjects
vba
vb.net
Demetris
fuente
fuente
Respuestas:
La recomendación de Kirk Kuykendall de construir un diagrama esférico de Voronoi (polígonos de Thiessen) es buena, pero podría tener algunos inconvenientes técnicos para resolver. Mientras tanto, como alternativa, se puede aplicar la solución ráster estándar como se describe en otro hilo . Use distancias esféricas en lugar de distancias euclidianas.
Aquí hay un ejemplo usando cinco puntos, aquí dado como (lat, lon):
Este mapa de distancia esférico abarca el globo desde -180 a 180 grados de longitud horizontalmente y -90 a 90 grados de latitud vertical. Los puntos se muestran con grandes puntos rojos. Las distancias aumentan con el brillo. Las crestas aparentes deben ser porciones de grandes círculos. El pequeño punto negro cerca (-15.3268, -2.04352) marca el punto de distancia máxima de 11,227 km. (Las distancias se calcularon en el dato elipsoidal ITRF00).
La resolución de esta cuadrícula es de un grado. Para obtener una solución más precisa, uno puede acercarse a dicho punto (y a cualquier otro máximo local con un valor suficientemente cercano al máximo global) y repetir el cálculo en una cuadrícula más pequeña pero de mayor resolución.
fuente
Nunca he intentado esto, pero parece que esto funcionaría:
Crea un diagrama voronoi 3D de la esfera. Estos polígonos resultantes se centrarán aproximadamente en los puntos existentes (semilla) originales.
Recorra cada vértice resultante para encontrar el que está más alejado de su punto existente más cercano. Este punto debería ser el punto más remoto del mundo.
fuente
Puede usar una función de distancia ponderada por costo para identificar qué tan lejos está cada celda de su ráster de todos los demás puntos.
fuente
Hasta donde yo sé, este análisis del " Polo de Inaccesibilidad " tiene que hacerse de forma iterativa.
Un enfoque ráster iterativo sería apropiado siempre que esté mirando un área pequeña con una distorsión mínima de la proyección. Para cada celda, calcule la distancia a todos los puntos, luego tome la distancia mínima. La celda con el valor más alto es el polo. También puede usar Euclidean Distance en Spatial Analyst para lograr esto.
Un enfoque vectorial iterativo es más complicado. García-Castellanos et al. 2007 describen un método iterativo basado en una tierra esférica. Parece que han hecho que su código C esté disponible en línea . Puedo imaginar formas de hacer esto en Arc con buffers, pero aún sería iterativo y lento.
fuente
puede usar Distancia de punto (Análisis) La herramienta crea una tabla con distancias entre dos conjuntos de puntos. Si se utiliza el radio de búsqueda predeterminado, se calculan las distancias desde todos los puntos de entrada a todos los puntos cercanos. La tabla de salida puede ser bastante grande. Por ejemplo, si tanto las características de entrada como las cercanas tienen 1,000 puntos cada una, la tabla de salida puede contener un millón de registros.
fuente
El punto más alejado de su conjunto de puntos sería el recíproco al punto más interno de su conjunto. Por ejemplo, si su punto más interno en su conjunto tenía coordenadas 49 grados Norte y -144 grados Este, entonces el punto recíproco y más alejado tendría coordenadas de 49 grados Sur y 36 grados Oeste. Esto no es exactamente cierto porque la Tierra no es perfectamente esférica, sino geoidal; por lo tanto, la exactitud de su punto de resultado depende mucho de qué proyección y sistemas geográficos (ortográficos, ortorectificados ...) use. Podría ser útil encontrar un recíproco para todo el conjunto (transferir una antípoda para un conjunto) y luego ejecutar un análisis de superficie dentro del terreno cubierto por el conjunto de puntos de la antípoda, ya que el terreno puede muy. Supongo que su pregunta no se trata de ningún punto en cuerpos extraterrestres, como otros planetas o lunas. Lo siento, No tengo código VB para ti. 🙄
fuente