Berechnung des durchschnittlichen Abstands zwischen zwei nicht parallelen Linien?


8

Ich arbeite derzeit an der Erstellung eines Datenmodells, mit dem der Analyst zwei nicht parallele Linien mit ungefähr derselben Länge digitalisieren kann. Derzeit besteht die Methode darin, die Linien in 11 Punkte zu unterteilen und die Abstände zwischen den beiden Linien zu mitteln.

Haben Sie Vorschläge zur Vereinfachung dieser Methode und / oder zur Automatisierung des Prozesses? Denken Sie daran, dass ich das Schema erstelle, damit ich den vollen Umfang habe, um zu ändern, was ist und wie es aufgezeichnet wird.

Im Anhang finden Sie ein Beispiel für das Problem. Geben Sie hier die Bildbeschreibung ein


Was ist die Magie hinter der Nummer 11? Würde es auch 10 oder 8 oder 5 Zeilen machen? Eigentlich sollte die Anzahl der Zeilen von der Länge der beiden Zeilen abhängen?
Ulrich

Gibt es eine Annahme, dass der Abstand ungefähr orthogonal zur Richtung der beiden Linien sein sollte? Beispielsweise könnte Punkt 7b näher an 8a als an 8b liegen. Möchten Sie die Entfernung zu den nächstgelegenen Punkten oder die Entfernung zum entsprechenden Punkt (7a bis 7b, 8a bis 8b usw.) ermitteln?
user55937

Antworten:


5

Wenn Sie die volle Kontrolle über den Algorithmus und die Implementierung haben, könnten Sie dies für eine grobe Annäherung wahrscheinlich tun

  1. Erhalten Sie die Koordinaten einiger Punkte auf Ihren Polylinien in gleichem Abstand vom jeweiligen Startpunkt
  2. Annähern Sie eine gerade Linie durch Ihre Punkte jeder Polylinie ( https://en.wikipedia.org/wiki/Simple_linear_regression )
  3. Ermitteln Sie den Abstand zwischen den Punkten auf den neuen Linien, die 1a und 1b sowie 11a und 11b entsprechen, aus Ihrer Grafik und berechnen Sie den Durchschnitt

Geben Sie hier die Bildbeschreibung ein

Hinweis: Hierbei handelt es sich um einen Algorithmus, nicht um eine bestimmte Implementierung.


1
Ich denke, dass der durchschnittliche Abstand zwischen den beiden blauen Linien (weil sie gerade sind) eigentlich nur die durchschnittliche Länge der beiden gelben Linien ist. Wenn dies der Fall wäre, wäre es nicht erforderlich, die Linie in Punkte zu diskretisieren.
user55937

Ja, das ist der Fall. Trotzdem benötigen Sie die lineare Regression der schwarzen Linien. Betrachten Sie zwei konvexe schwarze Linien, die nahe beieinander beginnen, sich dann voneinander entfernen und wieder näher kommen. Wenn Sie nur den Abstand zwischen den Start- und Endscheitelpunkten der ursprünglichen Linien berücksichtigen, unterschätzen Sie den durchschnittlichen Abstand.
Ulrich

Güte! Ich habe deine Antwort nicht gut genug gelesen. Ich habe gerade Ihren dritten Schritt angegeben.
user55937

2

1) Erstellen Sie ein Polygon mit Ihren beiden Linien, der Linie zwischen 1a und 1B und der Linie zwischen 11a und 11b

2) Erstellen Sie die Mittellinie

3) Teilen Sie die Fläche des Polygons durch die Länge auf der Mittellinie. Beachten Sie, dass Sie den Durchschnitt der Länge der beiden Linien als Näherungswert verwenden können, wenn Sie die Mittellinie nicht berechnen möchten.


Was genau meinst du mit Mittellinie? Wie würden Sie es ungefähr bekommen?
Ulrich

Hier finden Sie, was ich meine. gis.stackexchange.com/questions/29863/… Für den Algorithmus können Sie die Thiessen-Polygone zusammenführen, die aus den Eckpunkten jeder Linie abgeleitet wurden.
Radouxju

Ich bin mir nicht sicher, ob ich danach frage, ob ich den durchschnittlichen Gesamtabstand zwischen Linie a und b kennen muss, oder ich vermisse vielleicht, was Sie sagen.
Mark McCallister

Die durchschnittliche Breite Ihres Polygons ist der durchschnittliche Abstand zwischen den Linien. Stellen Sie sich vor, Sie nehmen unendlich
viele

+1. Das ist die richtige Antwort. Teilen Sie durch durchschnittlich 2 Zeilen
FelixIP

0

Also habe ich mit "Entfernungsband von Nachbarzahl berechnen" experimentiert, einem räumlichen Statistik-Tool, und es scheint zu funktionieren. Lassen Sie noch ein paar Tests durchführen und hoffentlich wird dies die Rechnung beantworten. Vielen Dank für das bisherige Feedback.

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.