Cálculo de un centroide poligonal esférico

11

Me gustaría una forma general de calcular los centroides para polígonos en una esfera.

Hasta ahora, la mejor referencia en línea parece ser:

Herramientas para gráficos y formas por Jeff Jenness.

El método descrito allí sugiere descomponer el polígono en múltiples triángulos esféricos y calcular el promedio de los centroides triangulares esféricos, ponderados por el área del triángulo esférico.

Sé que hay varias formas de definir un centroide poligonal esférico, pero estoy buscando algo análogo a las siguientes definiciones de puntos y polilíneas:

  • Puntos : media aritmética de los vectores cartesianos que representan los puntos.
  • Polilíneas : media ponderada de vectores cartesianos que representan puntos medios de cada segmento de línea, ponderada por la longitud (esférica) de cada segmento.

Parece una continuación razonable tener los centroides poligonales definidos como la media ponderada de la descomposición triangular, ponderada por área.

Mi pregunta es si el método en la referencia anterior funcionará independientemente de la descomposición del triángulo utilizado. En particular, menciona la descomposición en triángulos en relación con un punto arbitrario, incluso externo al polígono, de modo que algunos triángulos tendrán áreas negativas que contribuyan con un peso negativo.

Relacionado: ¿Cómo encontrar el centro de geometría de un objeto?

Jason Davies
fuente

Respuestas:

9

No funcionará de manera consistente incluso cuando realice todas las triangulaciones en relación con un único punto fijo . El problema es que los cálculos esféricos y euclidianos se mezclan sin tener en cuenta lo que podrían significar.

Una forma de hacer que esto sea obvio es considerar un triángulo bastante extremo, como casi la mitad de un hemisferio. Por ejemplo, comenzando en (lon, lat) = (-179, 0), corre a lo largo del ecuador hasta (0, 0), luego hasta el polo norte en (0, 90), luego regresa al principio en (- 179, 0). Este es un triángulo 90-179-90 que comprende la mayor parte de la mitad norte del hemisferio occidental. El problema es que sus puntos finales (mostrados como puntos blancos en la figura) se encuentran prácticamente en un plano: uno está en el poste y los otros dos están casi en lados opuestos. Por lo tanto, su promedio, proyectado de regreso a la esfera (el punto rojo), está casi en el polo, pero eso es lo más lejos posible de cualquier centro razonable:

Triángulo esférico grande

Como otro ejemplo, triangulemos un polígono que represente el hemisferio superior en relación con su centro, el Polo Norte. Siempre dividiremos el hemisferio occidental en dos mitades iguales, cada una de ellas un triángulo 90-90-90 (evitando así cualquier problema con triángulos enormes que abarquen el hemisferio). Sin embargo, el hemisferio oriental se dividirá en n semi-lunes iguales. Los vértices de la luna k ( k = 1, 2, ..., n ) tienen coordenadas (lon, lat)

((k-1) * 180/n, 0),  (k * 180/n, 0),  (k * 180/n, 90).

Lunes para k = 8

Esta figura muestra la configuración para k = 8. Los puntos rojos son los "centros" de triángulos individuales calculados de acuerdo con el documento "Herramientas para gráficos y formas", págs. 65-67.

Haciendo los cálculos, encuentro que con k = 2, el centro ponderado por área está en el Polo Norte (como se indicaría por consideraciones de simetría), pero a medida que n aumenta, el resultado cambia rápidamente al hemisferio occidental y, en el límite, se aproxima a una latitud de 89.556 grados a lo largo de una longitud de -90 grados. Esto es aproximadamente 50 kilómetros al sur del Polo Norte.

Es cierto que un error de +/- 50 kilómetros para un polígono que abarca 20,000 kilómetros es pequeño; la cantidad total de variación arbitraria debido a diferentes triangulaciones en este caso es solo 0.5%. Evidentemente, los errores relativos pueden hacerse arbitrariamente grandes mediante la inclusión de triángulos negativos (solo suma y resta algunos triángulos realmente grandes en relación con un triángulo pequeño). De todos modos, cualquiera que haga el esfuerzo de hacer cálculos esféricos evidentemente está tratando de evitar errores de proyección, por lo que está buscando una alta precisión. Este método de triangulación no se puede recomendar.

whuber
fuente
Ha demostrado que los errores pueden acumularse para n grande, pero no está claro que el enfoque sea necesariamente defectuoso. ¿Qué valor de n usaste para lograr el valor límite?
Jason Davies
Además, muchas gracias por hacer los cálculos y ver esto en profundidad. Solo quiero un poco más de aclaración antes de que pueda resolver el problema. :)
Jason Davies
Jason, agregué un ejemplo preliminar para darte algo de intuición. El límite mismo se acerca rápidamente; unas pocas docenas de lunes te darán varios dígitos significativos. Pero el nuevo ejemplo debería dejar descansar cualquier duda persistente de que esta triangulación ponderada hace algo razonable, excepto los triángulos pequeños, en los que es mucho mejor hacer los cálculos en coordenadas proyectadas en primer lugar. La única razón para hacer cálculos esféricos es cuando su área de análisis es verdaderamente global, ya que todas las proyecciones introducen mucha distorsión.
whuber
1
Fantástico, gracias. Entonces, si entiendo correctamente, simplemente promediar los vectores cartesianos no da como resultado un centroide razonable para un triángulo esférico (particularmente grandes como su primer ejemplo). Investigaré mejores métodos, por ejemplo, encontrar la intersección de las medianas de gran círculo.
Jason Davies
Por cierto, todavía tengo la esperanza de que un centroide ponderado por área esférica similar al anterior funcione. Imagine que a cada polígono se le da un volumen 3D agregando un vértice en el origen de la esfera. Luego suspenda la esfera por una cuerda invisible conectada a su origen y encuentre un equilibrio estable. El centroide es el punto más inferior (es la proyección del centro de masa sobre la superficie esférica). Esto debería funcionar aparte de algunos casos ambiguos, por ejemplo, una franja que rodea el ecuador, donde puedo elegir un punto sensible. Feliz de discutir en una nueva pregunta si cree que vale la pena.
Jason Davies
3

Es una buena idea enumerar las propiedades que debería tener el centroide de un polígono. Aquí están mis criterios:

(a) Es una propiedad del interior del polígono (en lugar de los vértices o bordes). Por lo tanto, dividir un borde en dos insertando un vértice adicional no debería cambiar la posición del centroide. Tenga en cuenta que la definición de Jenness del centroide falla en este criterio, ya que la posición del centroide dependerá de cómo se divide un polígono en triángulos.

(b) Perturbar un poco la forma del polígono debería mover un poco el centroide. Aquí es necesario imponer una restricción en la extensión general del polígono (por ejemplo, a un solo hemisferio). Sin esta restricción, es fácil construir casos donde el centroide se balanceará repentinamente hacia el lado opuesto de la tierra con un ligero movimiento de un vértice. Esta condición excluye los métodos que requieren que el centroide se encuentre dentro del polígono.

(c) Debería reducirse a la definición plana de centroide para polígonos pequeños.

Aquí hay dos enfoques que satisfacen estos criterios:

(1) Calcule el centroide para el polígono elipsoidal en tres dimensiones y proyecte de nuevo a la superficie elipsoide (a lo largo de una normal al elipsoide). Gran ventaja: el centroide se puede calcular dividiendo el polígono en formas más simples.

(2) El centroide es el punto con una distancia geodésica RMS mínima a todos los puntos en el interior del polígono. Ver Buss y Fillmore, "Promedios esféricos y aplicaciones a splines esféricos e interpolación", ACM Transactions on Graphics 20 , 95–126 (2001). Gran ventaja: el punto resultante no depende de cómo se incrusta la superficie en R 3 .

Desafortunadamente, ninguna de estas definiciones es fácil de poner en práctica. Sin embargo , el primer método puede llevarse a cabo simplemente para una esfera. La mejor área "elemental" para usar es el cuadrilátero delimitado por un borde del polígono, dos meridianos a través de los puntos finales del borde y el ecuador. El resultado para todo el polígono implica sumar las contribuciones sobre los bordes. (Deben tomarse medidas adicionales si el polígono rodea un poste).

Suponga que los puntos finales del borde son (φ 1 , λ 1 ) y (φ 2 , λ 2 ). Deje que los acimutes del borde y los puntos finales sean α 1 y α 2 . Suponiendo que el radio de la esfera es 1, el área del cuadrilátero es

  A = α 2 - α 1
      = 2 tan −1 [tan ½ (λ 2 - λ 1 ) sin ½ (φ 2 + φ 1 ) / cos ½ (φ 2 + φ 1 )]

(Esta fórmula para el área, debido a Bessel, se comporta sustancialmente mejor numéricamente que la fórmula de L'Huilier comúnmente utilizada del área de un triángulo).

Los componentes del centroide para este cuadrilátero están dados por

  2 Ax ⟩ = φ 2 sin (λ 2 - λ 0 ) - φ 1 sin (λ 1 - λ 0 )
  2 Ay ⟩ = cos α 02 - σ 1 ) - (φ 2 cos (λ 2 - λ 0 ) - φ 1 cos (λ 1 - λ 0 ))
  2 Az ⟩ = (λ 2 - λ 1 ) - sen α 02 - σ1 )

donde σ 2 - σ 1 es la longitud del borde, y λ 0 y α 0 son la longitud y el acimut del borde donde cruza el ecuador, y los ejes x e y están orientados de modo que el cruce del ecuador esté en x = 1, y = 0. ( z es el eje a través del polo, por supuesto).

cffk
fuente
¿Puedes explicar por qué la posición de los centroides de Jenness dependerá de cómo se divide un polígono en triángulos? Sé por el ejemplo de @ whuber que el cálculo del centroide de Jenness es incorrecto para los triángulos esféricos, pero ¿qué sucede si se usa un centroide basado en medianas de triángulos esféricos? ¿Esto todavía fallará?
Jason Davies
Jenness reemplaza efectivamente el polígono esférico por un conjunto de triángulos planos y calcula su centroide. Claramente (?), El resultado dependerá de la partición. Hacer el cálculo que describí usando los centroides de los triángulos esféricos está bien. Puede encontrar la fórmula para el centroide en JE Brock, The Inertia Tensor for a Spherical Triangle, J. Applied Mechanics 42, 239 (1975) dx.doi.org/10.1115/1.3423535
cffk
Eché otro vistazo al papel de Brock. Su fórmula para el centro de masa de un triángulo esférico implica una suma sobre los bordes del triángulo. Por lo tanto, puede generalizarse trivialmente para aplicarse a un polígono (sin la necesidad de dividirlo en triángulos).
cffk
¿Te importaría proporcionar una referencia para el cálculo del área debido a Bessel también? Parece que no puedo encontrarlo en ningún lado, y estoy interesado en escribir una rutina de área poligonal esférica rápida (y precisa). ¡Gracias!
Jason Davies
Lo encontré y me di cuenta de que lo tradujiste al inglés, así que gracias. :)
Jason Davies