Hauptrichtung in 2D-Datenkarte


8

Es kann eine sehr einfache Frage sein. Wir würden uns über Kommentare, Anleitungen oder Komplettlösungen freuen. Wir bevorzugen jedoch unvollständige Lösungen, aber neuartige praktische Ideen.
- Wie finde ich die Hauptvariationsrichtung, dh die Hauptdiagonale in der folgenden Beispielfigur (Nordosten, Südwesten)?
Jeder Algorithmus und jede Idee zum Codieren oder Snippet ist willkommen.

Geben Sie hier die Bildbeschreibung ein

Aktualisierungen:
Wir haben festgestellt, dass das in der akzeptierten Antwort erwähnte Verfahren in seiner einfachsten Implementierung fast PCA (Principal Component Analysis) ist . PCA hat sehr gut funktioniert. Die resultierende Richtung ist perfekt auf das abgestimmt, was wir visuell erwarten können.


3
Haben Sie nur das Konturkarten-Rasterbild zur Verfügung oder haben Sie die rohen Höhendaten, aus denen die Konturen generiert werden?
Jason R

1
Beide Arten von Daten sind verfügbar. Die Originaldaten sind eine Matrix. Konturen werden später basierend auf der Matrix generiert. Das ist die Anzahl der Ebenen in der Konturierung ist felxible.
Entwickler

Antworten:



4

Hier einige Ideen:

  1. Wenn sich die Konturen nicht bereits in separaten Datenstrukturen befinden, verwenden Sie einen Kantenverfolgungsalgorithmus (auch als "Konturverfolgung" bezeichnet), um jedem zu folgen. Sobald Sie die Kontur haben, finden Sie die beiden Punkte, die am weitesten voneinander entfernt sind. Wenn Sie die beiden am weitesten voneinander entfernten Punkte (Ferets Durchmesser) haben, nehmen Sie den Mittelpunkt dieser Punkte, projizieren Sie eine senkrechte Linie und überprüfen Sie, ob es sich um eine Nebenachse mit einer rauen elliptischen Form handelt. Überprüfen Sie das Paar der am weitesten entfernten Punkte und ihre "Nebenachse", die am weitesten entfernte usw.
  2. Scannen Sie vom Massenmittelpunkt der innersten Kontur in radialer Richtung nach außen. Verfolgen Sie die Kreuzungspunkte an jeder Kontur. Die radiale Richtung (oder Gruppe von radialen Richtungen) mit dem größten durchschnittlichen Abstand von Kontur zu Kontur weist die geringste Neigung und den längsten Abstand auf.
  3. Führen Sie einen "Wassertropfen" -Test durch. Dies erfordert ein wenig Physik. Stellen Sie sich vor, Sie haben einen Tropfen Wasser oder Ball auf Ihrem Höhepunkt (irgendwo innerhalb der innersten Kontur). Schieben Sie es in radialer Richtung Theta. Berechnen Sie bei gegebener Schwerkraft und einer nominell reibungsfreien Oberfläche die Geschwindigkeit Ihres Tropfens / Balls, wenn dieser die untere horizontale Ebene erreicht.

Berücksichtigen Sie für jede der oben genannten Techniken Winkel von 0 bis 179, obwohl Sie möglicherweise eine radiale Technik (0 bis 359 Grad) verwenden. Wenn es mehr als eine Spitzenantwort gibt, suchen Sie den längsten Radius (oder was auch immer), der mehr Nachbarn mit großen Antworten hat.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.