Ähnliche Kartenpfade finden

9

Ich suche nach einem Algorithmus, der, wenn eine bestimmte Route auf einer Karte mit Attributen wie Steigung / Entfernung / Form / usw. angegeben wird, eine Route finden kann, die ähnlich ist (in Bezug auf die Attribute), aber an einem anderen Punkt oder beginnt in einer anderen Region auf der Welt.

Natürlich wird es in fast allen Fällen unmöglich sein, eine perfekte Passform zu finden, aber ich suche nach einem System mit "bester Übereinstimmung" und einer Methode zur idealen Messung der Ähnlichkeit.

Ich habe versucht zu suchen, aber die meisten meiner Abfragen haben entweder Probleme mit der Kartenübereinstimmung oder Routenähnlichkeit für GPS-Punkte auf demselben Pfad. Ich kenne möglicherweise nicht die richtige Terminologie! Gibt es einen Namen für dieses Problem? Welchen Algorithmus kann ich verwenden, um dies zu lösen?

Chris Foster
quelle
1
Sind "Routen" auf ein Liniennetz (Straße / Pfad / usw.) beschränkt? Wie verhindern Sie, dass der Algorithmus entscheidet, dass die nächstgelegene Route die Quellroute ist, aber nur ein kleines bisschen kürzer / länger?
Spacedman
1
"In Bezug auf die Attribute ähnlich" ist sinnvoll, aber so vage, dass es eine Vielzahl möglicher Lösungen zulässt. Könnten Sie genauer sein?
whuber
@Spacedman Ja, die Routen sind auf ein Straßennetz beschränkt. Die Absicht ist, eine Straßenroute von beispielsweise China aus zu nehmen und einen sehr ähnlichen Weg zu finden, der sich beispielsweise in der Nähe meines Hauses befindet. Ich bin mir nicht sicher, wie ich diese Einschränkung am besten umsetzen kann.
Chris Foster
@whuber Entschuldigung. Zur Verdeutlichung sind ähnliche Steigungen (in ähnlichen Bereichen der Route) und eine ähnliche Gesamtentfernung am wichtigsten.
Chris Foster

Antworten:

6

Der Kartenabgleich unterscheidet sich von dem, was Sie suchen. Mapmatching ist der richtige Weg, um eine fehlerhafte GPS-Beobachtung an das lineare Straßennetz anzupassen. Ihre Frage hat auch nichts mit GPS-Punkten zu tun. Weil Sie das Muster der statischen Routen (nicht zeitlich) vergleichen und ähnliche finden möchten. Was Sie suchen, ist ein lineares Feature- Matching (im Sinne von GIS, dh nicht maschinelles Lernen) . Die Literatur, die sich auf die GPS-Spur bezieht, ist die räumlich-zeitliche Musterübereinstimmung, die unter die Rubrik "Trajectory (räumlich zeitlich) Pattern Mining" fällt.

Weitere Informationen finden Sie im Kapitel (Trajectory Pattern Mining) aus dem Buch " Computing with Spatial Trajektory ". Sie erhalten viele Ideen zum Vergleichen und Gegenüberstellen (z. B. über Azimut, Segmentlänge, Sinuosität, Geraden usw.) verschiedener Routen oder Flugbahnen.

Farid Cheraghi
quelle
4

Ihre Frage basiert auf Vektordaten. Ich denke jedoch, dass Sie besser in der Lage sind, die Frage in eine Rasteranalyse umzuwandeln. Auf diese Weise verallgemeinern Sie in gewissem Maße auch Ihre Frage.

Ein Algorithmus zur Lösung Ihrer Frage wäre wie folgt:

  1. Rastern Sie die ursprüngliche Route und lassen Sie jede Zelle Parameter gemäß Ihren Spezifikationen (Steigung / Entfernung / Form / usw.) übertragen. Die Tatsache, dass eine Straße vorhanden ist, ist ebenfalls ein Parameter. Dies wird eine eindimensionale Liste mit n Objekten -> Routenliste (n)

Geben Sie hier die Bildbeschreibung ein

  1. Suchen Sie einen Testbereich, in dem Sie wissen, dass mindestens eine Replik Ihrer ursprünglichen Route vorhanden ist. Rasterisieren Sie diesen Bereich mit denselben Parametern wie Ihre ursprüngliche Route. Dies ist Raster a.

Geben Sie hier die Bildbeschreibung ein

  1. Beginnen Sie mit Zelle 1,1 in Raster a und bewegen Sie sich ordnungsgemäß durch das gesamte Raster.
  2. Für jede Zelle wird eine Funktion aufgerufen. Diese Funktion prüft, ob die Zelle der Routenliste (0) entspricht. In diesem Fall wird die gleiche Prüfung für die umgebenden Zellen durchgeführt. Mit Erfolg überprüft die Funktion die Zelle auf Routenliste (1) und so weiter. Bei Erfolg bis zur Routenliste (n) werden die Koordinaten als alternative Route in der Routenliste (n) gespeichert.
  3. Wiederholen Sie diesen Vorgang, bis Sie das letzte Pixel im Raster erreicht haben.

Geben Sie hier die Bildbeschreibung ein

Oben sehen Sie drei Optionen für Routen gemäß den Parametern in der Routenliste.

Weiter:

  • Die obigen Beispielraster werden nach nur einem Parameter gemessen. In Ihrer realen Herausforderung besteht ein Pixel aus einer Kombination mehrerer Parameter.
  • Sollte ich diese Aufgabe haben, würde ich versuchen, die oben erwähnte Funktion rekursiv zu schreiben. Dies wäre effizienter und würde das Problem der "divergierenden Spuren" lösen - wenn Sie mehrere alternative Spuren mit demselben Startpunkt haben.
  • Die Abbiegungen Ihrer Route werden nicht als Problem angesehen. Dies bedeutet, dass Antworten eine Liste von Pixeln sind, die in derselben Reihenfolge wie Ihre ursprüngliche Route verbunden sind. Drehungen und Wendungen sind kein Problem. Möglicherweise müssen Sie den Algorithmus so schreiben, dass sich selbst überschneidende Routen nicht Teil der Lösung sind.
  • Entwerfen Sie den Algorithmus so, dass Sie verschiedene Toleranzstufen für die im Spiel befindlichen Kriterien festlegen können. Dies gibt Ihnen mehr Flexibilität.
  • In einer operativen Umgebung kann der gesamte Prozess effizienter gestaltet werden, indem der Bereich gemäß Ihren Spezifikationen auf das Auftreten von Pixeln überprüft wird. Wenn sie nicht vorhanden sind, ist das Vermessungsgebiet negativ, daher kein Grund, Zeit für die Analyse des Gebiets zu verwenden.
ragnvald
quelle