14 votos

Calcular el centroide de un polígono esférico

Me gustaría tener una forma general de calcular los centroides de los 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 la media de los centroides de los triángulos esféricos, ponderada por el área del triángulo esférico.

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

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

Parece una continuación razonable tener polígono centroides definidos como la media ponderada de la descomposición triangular, ponderada por el área.

Mi pregunta es si el método de la referencia anterior funcionará independientemente de la descomposición triangular utilizada. En particular, se menciona la descomposición en triángulos relativos a un punto arbitrario, incluso externo al polígono, de manera que algunos triángulos tendrán áreas negativas que contribuyen a un peso negativo.

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

11voto

cjstehno Puntos 131

No funcionará de forma consistente incluso cuando se realicen todas las triangulaciones relativas a un simple, fijo punto. El problema es que se mezclan los cálculos esféricos y euclidianos sin tener en cuenta lo que pueden significar.

Una forma de hacer esto evidente es considerar un triángulo bastante extremo, como casi la mitad de un hemisferio. Por ejemplo, partiendo de (lon,lat) = (-179, 0), se recorre el ecuador hasta (0, 0), luego se sube hasta el polo norte en (0, 90) y se vuelve al principio en (-179, 0). Se trata de un triángulo 90-179-90 que abarca la mayor parte de la mitad norte del hemisferio occidental. El problema es que sus extremos (mostrados como puntos blancos en la figura) se encuentran prácticamente en un plano: uno está en el polo y los otros dos están casi en lados opuestos del mismo. Por lo tanto, su promedio, proyectado hacia la esfera (el punto rojo), está casi en el polo, pero eso es lo más importante. lejos de cualquier centro razonable como uno puede conseguir:

Large spherical triangle

Como otro ejemplo, vamos a triangular un polígono que representa 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 los enormes triángulos que abarcan el hemisferio). El hemisferio oriental, sin embargo, se dividirá en n semilunas 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 for k=8

Esta figura muestra la configuración para k=8. Los puntos rojos son los "centros" individuales de los triángulos calculados según el documento "Tools for Graphics and Shapes", pp 65-67.

Haciendo los cálculos, encuentro que con k \= 2, el centro ponderado por área se encuentra efectivamente en el Polo Norte (como indicarían las consideraciones de simetría), pero como n aumenta, el resultado se desplaza rápidamente hacia el hemisferio occidental y, en el límite, se acerca a una latitud de 89,556 grados a lo largo de la longitud -90 grados. Esto es aproximadamente 50 kilómetros al sur del propio 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 arbitrario variación debida a diferentes triangulaciones en este caso es sólo del 0,5%. Evidentemente, los errores relativos pueden hacerse arbitrariamente grandes incluyendo triángulos negativos (basta con sumar y restar algunos triángulos realmente grandes en relación con un triángulo pequeño). En cualquier caso, cualquiera que se esfuerce en hacer cálculos esféricos evidentemente está tratando de evitar errores de proyección, por lo que busca una gran precisión. Este método de triangulación no es recomendable.

3voto

GSree Puntos 161

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

(a) Es una propiedad del interior del polígono (en lugar de los vértices o aristas). Por lo tanto, la división de una arista en dos mediante la inserción de un vértice adicional vértice adicional no debería cambiar la posición del centroide. Obsérvese que La definición de Jenness del centroide falla con este criterio, ya que la posición del centroide dependerá de cómo se divida un polígono en triángulos.

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

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

Aquí hay dos enfoques que satisfacen estos criterios:

(1) Calcular el centroide del polígono elipsoidal en tres dimensiones y proyectar a la superficie del elipsoide (a lo largo de una normal al elipsoide). Gran ventaja: el centroide puede calcularse 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 del interior del polígono. Véase Buss y Fillmore, "Spherical Averages and Applications to Spherical Splines and Interpolation", ACM Transactions on Graphics 20 , 95-126 (2001). Gran ventaja: el punto resultante no depende de cómo la superficie está incrustada en R 3 .

Por desgracia, ninguna de estas definiciones es fácil de poner en práctica. en la práctica. Sin embargo, el primer método puede llevarse a cabo simplemente para una esfera. La mejor área "elemental" que se puede utilizar es el cuadrilátero delimitado por una arista del polígono, dos meridianos que pasan por dos meridianos que pasan por los extremos de la arista y el ecuador. El resultado para el conjunto polígono implica la suma de las contribuciones sobre las aristas. (Los pasos pasos adicionales si el polígono rodea un polo).

Supongamos que los puntos finales de la arista son (φ 1 , λ 1 ) y (φ 2 , λ 2 ). Sean los acimutes de la arista y de los puntos extremos por α 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, debida a Bessel, se comporta sustancialmente mejor comportamiento numérico que la fórmula de L'Huilier del área de un triángulo. área de un triángulo).

Las componentes del centroide de este cuadrilátero vienen dadas por

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

donde σ 2 - σ 1 es la longitud de la arista, y λ 0 y α 0 son la longitud y el acimut del borde donde cruza el ecuador, y la x y y Los ejes están orientados de tal manera que el cruce del ecuador está en x \= 1, y \= 0. ( z es el eje que pasa por el polo, por supuesto.)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X