Berechnung eines sphärischen Polygonschwerpunkts

11

Ich möchte eine allgemeine Methode zur Berechnung von Schwerpunkten für Polygone auf einer Kugel.

Bisher scheint die beste Online-Referenz zu sein:

Werkzeuge für Grafiken und Formen von Jeff Jenness.

Das dort beschriebene Verfahren schlägt vor, das Polygon in mehrere sphärische Dreiecke zu zerlegen und den Durchschnitt der sphärischen Dreiecksschwerpunkte zu berechnen, gewichtet mit der sphärischen Dreiecksfläche.

Ich weiß, dass es verschiedene Möglichkeiten gibt, einen sphärischen Polygonschwerpunkt zu definieren, aber ich suche etwas Analoges zu den folgenden Definitionen für Punkte und Polylinien:

  • Punkte : arithmetisches Mittel der kartesischen Vektoren, die die Punkte darstellen.
  • Polylinien : gewichteter Mittelwert der kartesischen Vektoren, die die Mittelpunkte jedes Liniensegments darstellen, gewichtet mit der (sphärischen) Länge jedes Segments.

Es scheint eine vernünftige Fortsetzung zu sein, Polygonschwerpunkte als gewichtetes Mittel der dreieckigen Zerlegung definiert zu haben , gewichtet nach Fläche.

Meine Frage ist, ob die Methode in der obigen Referenz unabhängig von der verwendeten Dreieckszerlegung funktioniert. Insbesondere wird die Zerlegung in Dreiecke relativ zu einem beliebigen Punkt, auch außerhalb des Polygons, erwähnt, so dass einige Dreiecke negative Bereiche haben, die ein negatives Gewicht tragen.

Verwandte: Wie finde ich den Mittelpunkt der Geometrie eines Objekts?

Jason Davies
quelle

Antworten:

9

Es funktioniert nicht konsistent, selbst wenn Sie alle Triangulationen relativ zu einem einzelnen festen Punkt ausführen . Das Problem ist, dass sphärische und euklidische Berechnungen gemischt werden, ohne zu berücksichtigen, was sie bedeuten könnten.

Eine Möglichkeit, dies deutlich zu machen, besteht darin, ein ziemlich extremes Dreieck zu betrachten, beispielsweise fast die Hälfte einer Halbkugel. Beginnen Sie beispielsweise ab (lon, lat) = (-179, 0) entlang des Äquators bis (0, 0), dann bis zum Nordpol bei (0, 90) und dann zurück zum Anfang bei (- 179, 0). Dies ist ein 90-179-90-Dreieck, das den größten Teil der nördlichen Hälfte der westlichen Hemisphäre umfasst. Das Problem ist, dass seine Endpunkte (in der Abbildung als weiße Punkte dargestellt) praktisch in einer Ebene liegen: einer befindet sich am Pol und die anderen beiden befinden sich fast auf gegenüberliegenden Seiten. Ihr Durchschnitt, der auf die Kugel (den roten Punkt) zurückprojiziert wird, liegt also fast am Pol - aber das ist ungefähr so weit von einem vernünftigen Zentrum entfernt, wie man nur erreichen kann:

Großes sphärisches Dreieck

Als weiteres Beispiel triangulieren wir ein Polygon, das die obere Hemisphäre relativ zu ihrem Zentrum, dem Nordpol, darstellt. Wir werden die westliche Hemisphäre immer in zwei gleiche Hälften teilen, von denen jede ein 90-90-90-Dreieck ist (wodurch Probleme mit riesigen, die Hemisphäre überspannenden Dreiecken vermieden werden). Die östliche Hemisphäre wird jedoch in n gleiche Halb-Lunes unterteilt. Die Eckpunkte von Lune k ( k = 1, 2, ..., n ) haben (lon, lat) Koordinaten

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

Lunes für k = 8

Diese Abbildung zeigt den Aufbau für k = 8. Die roten Punkte sind die einzelnen Dreiecks- "Zentren", die gemäß dem Dokument "Werkzeuge für Grafiken und Formen", S. 65-67, berechnet wurden.

Bei den Berechnungen stelle ich fest, dass sich mit k = 2 das flächengewichtete Zentrum zwar am Nordpol befindet (wie aus Symmetrieüberlegungen hervorgeht), aber mit zunehmendem n verschiebt sich das Ergebnis schnell in die westliche Hemisphäre und in die Grenze, nähert sich einem Breitengrad von 89,556 Grad entlang Längengrad -90 Grad. Dies ist ungefähr 50 Kilometer südlich des Nordpols.

Zugegebenermaßen ist ein Fehler von +/- 50 Kilometern für ein Polygon mit einer Länge von 20.000 Kilometern gering. Der Gesamtbetrag der willkürlichen Variation aufgrund unterschiedlicher Triangulationen beträgt in diesem Fall nur 0,5%. Offensichtlich können die relativen Fehler durch Einschließen negativer Dreiecke beliebig groß gemacht werden (addieren und subtrahieren Sie einfach einige wirklich große Dreiecke relativ zu einem kleinen Dreieck). Unabhängig davon versucht jeder, der sich offensichtlich bemüht, sphärische Berechnungen durchzuführen, Projektionsfehler zu vermeiden, und sucht daher nach einer hohen Genauigkeit. Diese Triangulationsmethode kann nicht empfohlen werden.

whuber
quelle
Sie haben gezeigt, dass sich Fehler für große n ansammeln können, aber es ist nicht klar, dass der Ansatz notwendigerweise fehlerhaft ist. Welchen Wert von n haben Sie verwendet, um den Grenzwert zu erreichen?
Jason Davies
Vielen Dank auch für die Berechnungen und die eingehende Prüfung. Ich möchte nur etwas mehr Klarheit, bevor ich das Problem lösen kann. :)
Jason Davies
Jason, ich habe ein vorläufiges Beispiel hinzugefügt, um Ihnen eine gewisse Intuition zu geben. Die Grenze selbst wird schnell erreicht; Ein paar Dutzend Lunes bringen Ihnen mehrere signifikante Ziffern. Das neue Beispiel sollte jedoch alle Zweifel zerstreuen, dass diese gewichtete Triangulation irgendetwas Vernünftiges bewirkt - mit Ausnahme kleiner Dreiecke, bei denen Sie die Berechnungen in projizierten Koordinaten viel besser durchführen sollten. Der einzige Grund für sphärische Berechnungen ist, wenn Ihr Analysebereich wirklich global ist, denn dann führen alle Projektionen zu starken Verzerrungen.
whuber
1
Fantastisch, danke. Wenn ich das richtig verstehe, führt die einfache Mittelung der kartesischen Vektoren nicht zu einem vernünftigen Schwerpunkt für ein sphärisches Dreieck (besonders große wie Ihr erstes Beispiel). Ich werde bessere Methoden untersuchen, z. B. den Schnittpunkt von Großkreismedianen finden.
Jason Davies
Übrigens hoffe ich immer noch, dass ein sphärisch-flächengewichteter Schwerpunkt ähnlich dem oben genannten funktioniert. Stellen Sie sich vor, jedem Polygon wird ein 3D-Volumen zugewiesen, indem Sie einen Scheitelpunkt am Ursprung der Kugel hinzufügen. Hängen Sie dann die Kugel an einer unsichtbaren Schnur auf, die mit ihrem Ursprung verbunden ist, und finden Sie ein stabiles Gleichgewicht. Der Schwerpunkt ist der unterste Punkt (es ist die Projektion des Massenschwerpunkts auf die sphärische Oberfläche). Dies sollte abgesehen von einigen mehrdeutigen Fällen funktionieren, z. B. einem Streifen um den Äquator, wo ich nur einen vernünftigen Punkt auswählen kann. Gerne diskutieren wir in einer neuen Frage, wenn Sie denken, dass es sich lohnt.
Jason Davies
3

Es ist eine gute Idee, Eigenschaften aufzulisten, die der Schwerpunkt eines Polygons haben sollte. Hier sind meine Kriterien:

(a) Es ist eine Eigenschaft des Polygoninneren (anstelle der Eckpunkte oder Kanten). Das Teilen einer Kante in zwei Teile durch Einfügen eines zusätzlichen Scheitelpunkts sollte daher die Position des Schwerpunkts nicht ändern. Beachten Sie, dass Jenness 'Definition des Schwerpunkts bei diesem Kriterium fehlschlägt , da die Position des Schwerpunkts davon abhängt, wie ein Polygon in Dreiecke unterteilt ist.

(b) Wenn Sie die Form des Polygons ein wenig stören, sollte sich der Schwerpunkt ein wenig bewegen. Hier ist es notwendig, die Gesamtausdehnung des Polygons einzuschränken (z. B. auf eine einzelne Halbkugel). Ohne diese Einschränkung ist es einfach, Fälle zu konstruieren, in denen der Schwerpunkt plötzlich mit einer leichten Bewegung eines Scheitelpunkts auf die gegenüberliegende Seite der Erde schwingt. Diese Bedingung schließt Methoden aus, bei denen der Schwerpunkt innerhalb des Polygons liegen muss.

(c) Es sollte sich auf die planare Definition des Schwerpunkts für kleine Polygone reduzieren.

Hier sind zwei Ansätze, die diese Kriterien erfüllen:

(1) Berechnen Sie den Schwerpunkt für das Ellipsoidpolygon in drei Dimensionen und projizieren Sie zurück zur Ellipsoidoberfläche (entlang einer Normalen zum Ellipsoid). Großer Vorteil: Der Schwerpunkt kann berechnet werden, indem das Polygon in einfachere Formen zerlegt wird.

(2) Der Schwerpunkt ist der Punkt mit einem minimalen geodätischen RMS-Abstand zu allen Punkten im Inneren des Polygons. Siehe Buss und Fillmore, "Sphärische Mittelwerte und Anwendungen auf sphärische Splines und Interpolation", ACM Transactions on Graphics 20 , 95–126 (2001). Großer Vorteil: Der resultierende Punkt hängt nicht davon ab, wie die Oberfläche in R 3 eingebettet ist .

Leider ist keine dieser Definitionen einfach in die Praxis umzusetzen. Die erste Methode kann jedoch einfach für eine Kugel durchgeführt werden. Der beste zu verwendende "elementare" Bereich ist das Viereck, das durch eine Kante des Polygons, zwei Meridiane durch die Endpunkte der Kante und den Äquator begrenzt wird. Das Ergebnis für das gesamte Polygon besteht darin, die Beiträge über die Kanten zu summieren. (Zusätzliche Schritte müssen unternommen werden, wenn das Polygon einen Pol umgibt.)

Angenommen, die Endpunkte der Kante sind (φ 1 , λ 1 ) und (φ 2 , λ 2 ). Lassen Sie die Azimute der Kante und der Endpunkte durch α 1 und α 2 . Angenommen, der Radius der Kugel ist 1, dann ist die Fläche des Vierecks

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

(Diese Formel für die Fläche verhält sich aufgrund von Bessel numerisch wesentlich besser als die üblicherweise verwendete L'Huilier-Formel für die Fläche eines Dreiecks.)

Die Komponenten des Schwerpunkts für dieses Viereck sind gegeben durch

  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 ) - sin α 02 - σ1 )

wobei σ 2 - σ 1 die Länge der Kante ist und λ 0 und α 0 die Länge und der Azimut der Kante sind, an der sie den Äquator kreuzt, und die x- und y- Achse so ausgerichtet sind, dass die Äquatorkreuzung bei x = liegt 1, y = 0. ( z ist natürlich die Achse durch den Pol.)

cffk
quelle
Können Sie erklären, warum die Position von Jenness 'Zentroiden davon abhängt, wie ein Polygon in Dreiecke unterteilt ist? Ich weiß aus dem Beispiel von @ whuber, dass Jenness 'Schwerpunktberechnung für sphärische Dreiecke falsch ist, aber was ist, wenn stattdessen ein Schwerpunkt verwendet wird, der auf sphärischen Dreiecksmedianen basiert? Wird das noch scheitern?
Jason Davies
Jenness ersetzt das sphärische Polygon effektiv durch eine Reihe planarer Dreiecke und berechnet deren Schwerpunkt. Das Ergebnis hängt eindeutig (?) Von der Partitionierung ab. Die Berechnung, die ich unter Verwendung der Schwerpunkte von sphärischen Dreiecken skizziert habe, ist in Ordnung. Sie finden die Formel für den Schwerpunkt in JE Brock, Der Trägheitstensor für ein sphärisches Dreieck, J. Applied Mechanics 42, 239 (1975) dx.doi.org/10.1115/1.3423535
cffk
Ich warf einen weiteren Blick auf Brocks Zeitung. Seine Formel für den Schwerpunkt eines sphärischen Dreiecks beinhaltet eine Summe über den Rändern des Dreiecks. Es kann daher trivial verallgemeinert werden, auf ein Polygon anzuwenden (ohne es in Dreiecke aufteilen zu müssen).
cffk
Haben Sie etwas dagegen, auch für Bessel eine Referenz für die Flächenberechnung bereitzustellen? Ich kann es anscheinend nirgendwo finden und bin daran interessiert, eine schnelle (und genaue) Routine für sphärische Polygonbereiche zu schreiben. Vielen Dank!
Jason Davies
Ich habe es gefunden und festgestellt, dass Sie es ins Englische übersetzt haben. Vielen Dank. :)
Jason Davies