DE:Cycle Node Network Tagging

From OpenStreetMap Wiki
Jump to navigation Jump to search

Rad Knotenpunktnetz

Die Grundlagen stammen aus einer Diskussion auf talk-nl im September 2008 und wurden in den darauffolgenden Monaten weiter ausgebaut. Dieses Tagging wird derzeit in Teilen der Niederlande und Belgiens aktiv genutzt - und jetzt, 2021, auch in Deutschland weitgehend übernommen.

Cyclejunctionnetwork.png

Diese erweiterte Kennzeichnung beruht auf den folgenden Beobachtungen aus der Praxis:

  • ein Fahrradknotennetz umfasst ein begrenztes geografisches Gebiet und hat einen Namen
  • Die Netze haben eine Reihe von nummerierten Knotenpunkten, und auf den Schildern an diesen Knotenpunkten steht der Name des Netzes (in einer idealen Welt; in Flandern ist das nicht der Fall; in Deutschland werden überhaupt keine Namen verwendet, die "Netze" sind lediglich virtuell).
  • An und zwischen den Knotenpunkten befinden sich Hinweisschilder, die den Weg zu den benachbarten Knotenpunkten anzeigen
  • Netze verbinden sich mit anderen Netzen (die Routen, die die Verbindung bilden, erhalten die Rolle: 'Verbindung' in beiden Netzbeziehungen)
  • Routen können, je nach Fahrtrichtung, unterschiedlichen Straßen folgen. Dies kann durch Einbahnstraßen, Radwege auf beiden Seiten von Straßen und Kreisverkehre mit geteilten Wegen geschehen.
  • Knotenpunkte können aufgeteilt werden, wobei gleich nummerierte Knotenpunkte in geringer Entfernung voneinander liegen (in der Regel weniger als ein paar hundert Meter)
  • es gibt einige Knotenpunkte, die Teil von 2 Netzen sind. Diese Knoten erhalten auch eine Rolle Verbindung in der Netzbeziehung.
  • es gibt Routen, die den Radfahrer zu einem POI, einer Stadt oder einem Dorfzentrum führen. Diese Routen schließen nicht immer an einen nummerierten Knoten an, sondern münden oft in der Mitte einer anderen Route. Diese Routen erhalten einen zusätzlichen Tag: {Tag|state|connection}} und eine Notiz wie note=34-35 - 57-98 oder note=55-89 - Alkmaar Centrum

Und die folgenden OSM-technischen Beobachtungen:

  • Beziehungen können durch Bearbeitungsfehler, Missverständnisse der Nutzer oder schlechte Software zerstört werden.
  • Die Vollständigkeit des Netzwerks könnte daher durch intelligenteres Tagging überwacht werden.

Wie?

(A) Knoten Tagging

Alle nummerierten Knotenpunkte in einem Netzwerk sind mit einem Tag versehen:

Key Value Comment
rcn_ref reference Die Referenznummer der Kreuzung. Kann auf der Beschilderung an der Straße gefunden oder von ihr abgeleitet werden. Oft eine 2-stellige Zahl.
network:type node_network Dadurch wird der Knoten als Netzknoten definiert.
expected_rcn_route_relations count (optional) kann auf die Anzahl der Relationen gesetzt werden, die an diesem Knotenpunkt enden/beginnen. Dies kann verwendet werden, um die (automatische) Prüfung auf fehlende Routen zu erleichtern. Es werden nur reguläre Routen gezählt, Routenrelationen mit state=connection oder state=alternate werden nicht zur Anzahl der erwarteten Routenrelationen gezählt.

Ein network=rcn Tag ist nicht mehr nötig. rcn_ref=xx und die Relation einer Netzwerk-Relation machen es deutlich genug. Einige Knoten sind auch Teil anderer Netzwerke und können rwn_ref=yy haben.

(B) Routen Tagging

Die Routen, aus denen das Netzwerk besteht, sind Teil einer type=route Relation:

Key Value Comment
type route
route bicycle
network rcn
network:type node_network Damit wird die Route als eine Route in einem Fahrradknotennetz definiert.
ref 04-35 Die niedrigere Zahl wird an die erste Stelle gesetzt, damit sie in einer sortierten Liste leichter wiedergefunden werden kann.
state empty, 'connection' or 'alternate' Nicht angeben für reguläre Routen.

(optional) "connection": Falls die Route einen POI oder ein Stadtzzentrum mit dem Netzwerk verbindet (oder)
(optional) "alternate": Wenn es sich um eine Alternativroute zwischen den Knotenpunkten handelt; es könnte sich um eine Abkürzung oder eine andere Möglichkeit handeln, zwischen den Knotenpunkten zu reisen.

Anmerkung

In Deutschland gibt es auch andere Routen als "Fahrradknotennetze", die als network=rcn gekennzeichnet sind. Die gab es schon, bevor es CNNs in Deutschland gab, und sie werden auch nicht verschwinden. Diese Routen haben meist einen ref=2 oder 3 LETters. Der Schlüssel network:type wird verwendet, um die Netzwerkrouten von anderen regionalen Routen zu unterscheiden.

Die Mitglieder dieser Relation sind:

  • Alle Wege, die die Route zwischen den beiden Knotenpunkten bilden, mit den richtigen Rollen für die Vorwärts- und Rückwärtsfahrt, falls erforderlich (unterschiedliche Wege, die von xx-yy als von yy-xx benutzt werden, keine Notwendigkeit, Rollen für Kreisverkehre hinzuzufügen, die für beide Fahrtrichtungen benutzt werden). Sie geben nicht an, dass der Mitgliedsweg eine Einbahnstraße ist. Diese Rollen bedeuten lediglich, dass der zugrundeliegende Weg in der Richtung seiner Pfeile für diesen bestimmten Zweig der Route befahren wird.
  • Es besteht keine Notwendigkeit, die Knotenpunkte dieser Relation hinzuzufügen. Sie sind Teil der Wege, also von Natur aus bereits Teil der Beziehung. Dies ermöglicht eine kontrolliertere Art des Herunterladens der Hierarchie (collection/network/route).
Aufgeteilte Knoten und die Verbindungswege, die die Routen verlängern, um sie zu verbinden
  • Beginnt oder endet eine Route an einer Gruppe von Splitknoten, werden alle Wege, die von einem der anderen Knoten zum Startpunkt führen, vor dem Startpunkt oder nach dem Endpunkt hinzugefügt. Und zwar so, dass die Wege, die dem Start- oder Endpunkt am nächsten liegen, auch in der Relation am nächsten liegen (nach dem Ende einer Route wird ihre Reihenfolge umgekehrt). Alle diese Wege benötigen auch entsprechende Rollen, die die Radfahrer zum Start-/Endknoten führen. Die Idee dahinter ist, dass Sie, wenn Sie von einer anderen Route zu einem nummerierten Knotenpunkt eines Fahrradknotennetzes gelangen, die Relationen zu den anderen Wegen, die zu diesem Knotenpunkt führen, ansehen und die gewünschte Routenrelation auswählen können. In dieser Relation finden Sie, wie Sie zum Start der gewünschten Route gelangen. Sie sehen ein wenig aus wie Tentakel am Anfang und am Ende einer Route und werden nur benötigt, wenn es nicht möglich ist, einen einzelnen Knoten als nummerierten Netzknoten auszuwählen.

BemmelKP26Overview.png
Dies soll den Leuten eine Vorstellung davon geben, wo sich der Split-Knoten befindet, über den wir gerade sprechen.

25-26

JOSM25-26Draw.png

  • 1, 6 (nicht abgebildet) Streckenabschnitte, die in beiden Richtungen benutzt werden (es müssen keine Rollen zugewiesen werden)
  • 7,8,9 Ende der Route, die von 25 kommt, für den Verkehr, der von 25 nach 26 fährt. 25-26 endet in einer Gabelung.
  • 10,11,12 Beginn der eigentlichen Route von 26 nach 25 (die Mitglieder haben Rollen und scheinen in umgekehrter Reihenfolge zu sein)
  • 13,14 ein Tentakel, das den Verkehr von 27 zum eigentlichen Start dieser Route führt (Wege, die Mitglieder eines Tentakels sind, haben immer Rollen und scheinen in umgekehrter Reihenfolge zu sein, da sie sich jenseits des höher nummerierten Knotens befinden)
  • 15,16 ein weiterer Tentakel, der den Verkehr von 98 kommend zum eigentlichen Start dieser Route führt
  • Für den von 30 kommenden Verkehr werden keine zusätzlichen Tentakel benötigt, da der Endknoten von 26-30 mit dem eigentlichen Start von 25-26 zusammenfällt.
  • Es ist wichtig zu beachten, dass eine einfache Umkehrung der Reihenfolge aller Mitglieder der Route Relation immer noch eine gültige Route ergeben würde, die dann ref=26-25 werden könnte. Ich würde es jedoch vorziehen, der Konvention zu folgen, immer von unten nach oben zu gehen. Das sollte erklären, warum die Reihenfolge einiger Mitglieder umgekehrt zu sein scheint.
26-27

JOSM26-27Draw.png

  • 1 ein Zweig für Radfahrer, die aus Richtung 30 kommen
  • 2 ein weiterer Zweig für Radfahrer, die aus Richtung 25 oder 98 kommen (die Reihenfolge der Zweige 1 und 2 kann leicht umgekehrt werden)
  • 3-12 Der Teil der Strecke, der von 26 (niedrig) nach 27 (hoch) befahren werden muss
  • 13-18 Der Teil der Strecke, der von 27 (hoch) nach 26 (niedrig) führt. Es ist die Ausnahme, dass eine solche Abzweigung bis zum nächsten nummerierten Fahrradknoten weitergeht, wie es hier der Fall ist. Daher haben alle Wege in dieser Relation eine Rolle, entweder vorwärts oder rückwärts.
26-30

JOSM26-30.png

  • 1,2,3,4 Zweige, die den von 25 und 98 kommenden Verkehr zum eigentlichen Beginn von 26-30 führen
  • 5,6,7,8,9 Wege, die von 26 nach 30 führen
  • 10-17 Wegmitglieder, die von 30 nach 26 fahren. Beachten Sie, dass JOSM nicht in der Lage ist zu zeigen, dass diese durchgängig sind, denn für JOSM beginnt diese Abzweigung/Gabelung mitten im Nirgendwo (d.h. JOSM kann keine Verbindung mit dem Rest der Strecke finden). Wenn man diese Glieder umdreht, scheinen sie zusammenhängend zu sein (und sogar die gesamte Route scheint zusammenhängend zu sein), aber dann kann die Route in ihrer Gesamtheit nicht mehr umgedreht werden und ergibt immer noch eine gültige Route. Auch wenn es seltsam aussieht, ist dies die richtige Reihenfolge für diese Streckenglieder.
26-98

JOSM26-98.png

  • 1,2 Erste Hälfte eines Zweigs
  • 3,4 Zweite Hälfte des anderen und ein eigenständiger Zweig. Dies zeigt, dass Zweige "teleskopisch" sein können.
  • 1,2,3,4 führt von Route 26-27 zu Route 26-98
  • 3,4 führt von Route 26-30 zu Route 26-98
  • 5 Erster Weg vom eigentlichen Start der Route. Keine Notwendigkeit für Rollen mehr, während Zweige immer Rollen haben.
  • 6,7,8,9,10,11,12 Rest der Route, die zu 98 führt

Für jemanden, der von 98 kommt, ist die erste 26, die er erreicht, das Ende seiner Reise auf dieser Route. Unabhängig davon, welchen Weg er nun einschlagen möchte, kann er beginnen, Zweigen zu folgen, die ihn zum nächsten Startpunkt der gewünschten Route und darüber hinaus führen werden.

(C) Netzwerk Tagging

Es wird eine Relation für jedes (benannte) Fahrradknotennetz erstellt. Diese Relation beschreibt alle Elemente des Netzes.

Key Value Comment
type network Bedeutet, dass diese Relation eine Sammlung aller Kreuzungen und Routen ist, aus denen das Netz besteht.
network rcn Bedeutet, dass es sich um ein Fahrradknotennetz handelt. 'rcn' ist das derzeit etablierte Kennzeichen für ein Fahrradknotennetz in Belgien, den Niederlanden und Deutschland.
network:type node_network Damit wird das Netz als Knotennetz definiert.
name Name Der name eines Netzes, z.B. "Fietsroutenetwerk Zeeland".
operator operator Der Name von Betreiber des Netzes, z.B. "Toerisme Oost-Vlaanderen".

Diese Relation gilt:

  • Alle nummerierten Kreuzungsknoten (A) dieses Fahrradknotennetzes. Fügen Sie nicht die Knotenpunkte des gegenüberliegenden Endes von Routen mit der role=connection hinzu, da diese Mitglieder eines anderen Netzes sind.
  • Alle Routen (B), die zu diesem Fahrradknotennetz gehören.
    • Routen, die sich mit einem anderen Netzwerk verbinden, erhalten eine role=connection Rolle.

Wenn ein Knotenpunkt in zwei Netzen ist, was in Grenzgebieten vorkommen kann, wird er zu beiden Relationen hinzugefügt und erhält aus Gründen der Konsistenz eine role=connection Rolle.

Alle Knoten und Routen mit einer role=connection Rolle sollten daher Mitglieder in zwei Netzwerk Relationen sein

In manchen Fällen ist ein sehr großes Netz weiter in verschiedene Bereiche (Teilnetze) unterteilt. In diesem Fall kann eine weitere Relation des obigen Typs erstellt werden, die als Mitglieder nur die Relationen für die Teilnetze enthält. Beispiel: Das obige Netz ist in Teilnetze unterteilt, wie "Oost Zeeuws-Vlaanderen" und "Schouwen-Duiveland". Die übergeordnete Relation enthält dann den Namen für das gesamte regionale Netz, während die untergeordneten Relationen den Namen eines bestimmten Teils des Netzes enthalten. Die Knotenpunkte sind (theoretisch, denn es gibt Ausnahmen) innerhalb eines Teilnetzes eindeutig nummeriert, werden aber höchstwahrscheinlich in den anderen Teilnetzen wiederholt.

(D) Sammelrelations-Tagging

Für jede Sammlung von Netzwerkrelationen wird eine Relation erstellt. Im Moment gibt es eine für Belgien. Eine für die Niederlande wird demnächst erstellt.

Key Value Comment
type collection Bedeutet, dass diese Relation eine Sammlung aller Netze in einem bestimmten Gebiet ist
network rcn Bedeutet, dass es sich um ein Fahrradknotennetz handelt. 'rcn' ist das derzeit etablierte Kennzeichen für ein Fahrradknotennetz in Belgien, den Niederlanden und Deutschland.
name name Der Name eines Netzes, z.B. "Fietsknooppuntennetwerken in België".
operator operator Der Name von Betreiber des Netzes, z.B. "Toerisme Vlaanderen".

Diese Relation gilt:

  • Alle Netzwerke in einem bestimmten Gebiet

Sie kann als Ausgangspunkt verwendet werden, um alle CNNs für ein Land von den Servern herunterzuladen, oder als Ausgangspunkt für ein Skript, das eine Qualitätskontrolle durchführt. Beim Herunterladen wird nur die Relation heruntergeladen, nicht alle ihre Mitglieder und Untermitglieder. RMB (rechte Maustaste) Mitglieder auf der Relation auswählen und dann RMB Download fehlende Mitglieder für alle Netzwerke und danach für alle Routen, führt zu einem Skelett der gesamten Sammlung von Netzwerken und deren Routen und nummerierten Kreuzungsknoten. Nach dem Herunterladen der Relationen sind nur die nummerierten Knotenpunkte in einem Offline-Editor wie JOSM sichtbar.


Vorteile

  • "Markierung/Schild/Aufkleber vor Ort"
Es sind die Knotenpunkte, die benannt/numeriert und Teil eines Netzes sind.
  • Hierarchie wird eingeführt.
Spezifische Netzwerke können gefunden und benannt werden. Mitgliedsknotenpunkte können identifiziert werden. Es können nun Karten für bestimmte Netze erstellt werden.
  • Redundanz wird reduziert.
In NL wurde der Name früher auf jeder Route wiederholt, aber jetzt wird er nur noch einmal in der Relation des Netzes gesetzt und die Namens-Tags werden gerade entfernt.
  • Programmatische Prüfungen auf Vollständigkeit.
Eine vollständige Route würde nun eine ununterbrochene Kette von Wegen enthalten, die die Endknoten verbinden (einfachster Fall).
Manchmal verzweigen sich die Routen (aufgrund von Radwegen auf beiden Seiten einer Straße, Einbahnstraßen, Kreisverkehren mit geteilten Wegen usw.), in diesem Fall werden zunächst die Wege, die von der niedrigeren Nummer zur höheren Knotennummer führen, mit Rollen hinzugefügt, bis zu der Stelle, an der sich die Zweige wieder vereinen. Dann werden die Wege von der Stelle, an der die Teilung stattgefunden hat, mit umgekehrten Rollen hinzugefügt. Das Endergebnis ist, dass man bei der Prüfung auf Kontinuität alle Mitglieder ohne Rollen und den ersten kontinuierlichen Satz von Mitgliedern eines Zweigs nehmen kann, um die Richtung von niedriger zu hoher Knotennummer zu prüfen.

Für die andere Richtung (hoch zu niedrig) kann man alle Mitglieder ohne Rolle und den Rest der Mitglieder mit einer Rolle nehmen, die im vorherigen Schritt nicht verbraucht wurden, und dann die gesamte Menge der Wege umkehren.

Es ist an dieser Stelle nicht wichtig, ob diese Rolle vorwärts oder rückwärts gerichtet ist. In der Tat wird die Mehrheit vorwärts sein (wegen der Einbahnstraßen). Wichtig ist die Reihenfolge der Mitglieder der Route Relation. Die erste Menge nach der Verzweigung gehört zur Gruppe niedrig->hoch, die Menge danach bis zu der Stelle, an der die Verzweigungen wieder zusammenkommen, gehört zur Gruppe hoch-niedrig der Mitglieder.
Am Anfang und am Ende der Routen finden sich auch einige Mitglieder mit Rollen. Sie sind 'Hinweise', die zeigen, wie man von einem geteilten Endknoten zum eigentlichen Start der Route kommt, der man folgen möchte. (Am eigentlichen Start der Route gibt es entweder einen nummerierten Knoten, oder alle diese Zweige laufen dort zusammen). Das Gleiche gilt nach dem Ende der Route (Sie sind alle dabei, von einem niedriger nummerierten Knoten zu einem höher nummerierten Knoten sortiert zu werden), aber in umgekehrter Reihenfolge.

Siehe Python-Skript, das innerhalb von JOSM abläuft für eine Beispiel-Implementierung

Beispiele für bereits bestehende Relationen im Netz

  • 51947 Altena Biesbosch
  • 116285 Oost Zeeuws-Vlaanderen
  • 116286 Meetjesland
  • 155047 Limburg(Belgium) (currently contains no connections, only nodes
  • 207888 Fietsroutenetwerk Antwerpse Kempen

JOSM

user:polyglot hat einige Stile und andere Tricks entwickelt, um die Bearbeitung der Fahrradknotennetze in JOSM zu erleichtern. Sie können es hier finden:
User:Polyglot/Some_ways_to_simplify_editing_cycle_node_routes_with_JOSM

Qualitätskontrolle mit Python-Skript im JOSM

Quality control with Python script in JOSM