¿Cómo puedo encontrar el punto más lejano de un conjunto de puntos existentes?

17

Tengo un conjunto de puntos como un shapefile y quiero encontrar (las coordenadas) un nuevo punto que tendrá la mayor distancia posible de cada uno de los puntos existentes. ¿Es eso posible? En caso afirmativo, ¿hay algún código VB de muestra? Gracias Demetris

    
pregunta Demetris 29.11.2011 - 15:03

6 respuestas

12

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 problemas técnicos que resolver. Mientras tanto, como alternativa, uno puede aplicar la solución raster estándar como se describe en otro subproceso . Utilice distancias esféricas en lugar de distancias euclidianas.

Aquí hay un ejemplo que usa cinco puntos, aquí dado como (lat, lon):

 82.7051   -145.256
 60.3321     81.2881
-17.076     105.125
-38.792    -122.686
  0.000     180.000

Este mapa de distancia esférica abarca el globo desde -180 hasta 180 grados de longitud horizontalmente y de 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, se puede hacer zoom en ese punto (y en 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.

    
respondido por el whuber 29.11.2011 - 19:04
8

Nuncaheintentadoesto,peroparecequeestofuncionaría:

Creeun diagrama de voronoi 3D de la esfera. Estos polígonos resultantes se centrarán aproximadamente en los puntos originales (semillas) existentes.

Recorra cada vértice resultante para encontrar el que esté más alejado de su punto existente más cercano. Este punto debe ser el punto más remoto del mundo.

    
respondido por el Kirk Kuykendall 29.11.2011 - 16:17
1

Puede usar una función de distancia ponderada por costo para identificar qué tan lejos están las celdas de su ráster de todos los demás puntos.

    
respondido por el djq 29.11.2011 - 15:39
1

Por lo que sé, este análisis " Pole of Inaccessability " debe hacerse de forma iterativa.

Un enfoque raster 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, calcula la distancia a todos los puntos, luego toma la distancia mínima. La celda con el valor más alto es el polo. También puede utilizar Euclidean Distance en el analista espacial para lograr esto .

Un enfoque vectorial iterativo es más complicado. Garcia-Castellanos et al 2007 describen un Método iterativo basado en una tierra esférica. Parece que han puesto su código C disponible en línea . Puedo imaginar formas de hacer esto en Arc con búferes, pero aún así sería iterativo y lento.

    
respondido por el dmahr 29.11.2011 - 16:10
0

puedes usar la Distancia de Puntos (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 hasta todos los puntos cercanos. La tabla de salida puede ser bastante grande. Por ejemplo, si tanto la entrada como las entidades cercanas tienen 1,000 puntos cada una, entonces la tabla de salida puede contener un millón de registros.

    
respondido por el salehamra 30.08.2013 - 17:41
0

El punto más lejano a tu conjunto de puntos sería el recíproco al punto más interno de tu 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 el más lejano tendrían 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 en gran medida de qué proyección y sistemas geográficos (ortográficos, ortorrectificados ...) utiliza. Podría ser útil encontrar un recíproco para todo el conjunto (transferir una antípoda para un conjunto) y luego realizar un análisis de la 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 es sobre ningún punto sobre cuerpos extraterrestres, como otros planetas o lunas. Lo siento, no tengo el código VB para usted.

respondido por el Yuriy Shevchuk 31.12.2016 - 09:11

Lea otras preguntas en las etiquetas