User talk:ToniE/Transportation/Analyse

From OpenStreetMap Wiki
Jump to: navigation, search

Overpass-API Abfrage

Als Beispiel und für Testzwecke wird hier die Gemeinde Ottobrunn südöstlich am Stadtrand von München verwendet. Es werde alle Bussen und Züge (S-Bahn) analysiert, die durch das Gemeindegebiet fahren.

  • Ottobrunn hat den "admin_level" 8 und existiert weltweit als Gemeinde mit diesem Namen nur ein einziges mal - das ist zu beachten!
  • alternativ und präziser kann der Suchbereich auch mit einem Polygon definiert werden.
  • ebenfalls alternativ und sehr präzise kann der Suchbereich nach den Grenzen des Verkehrsverbundes definiert werden - sofern eine solche Relation existiert.

Die Overpass-API Abfrage liefert alle Routen für ÖPNV sowie deren Route-Master für den angegebenen Ort (die angegebene Region). Route-Master ohne Routen (leere Route-Master) werden hiermit nicht gefunden. Zusätzlich liefert die Abfrage noch alle Ways und Nodes der Routen (d.h. Member der Relationen mit ihren Details, sowie die Ids aller Nodes der Ways).
Diese Abfrage erlaubt eine Analyse der ÖPNV-Linien dahingehend, dass auch die Wegstrecke auf Vollständigkeit geprüft werden kann. Nodes, Ways und Relationen (Stops und Platforms) und deren Tags können nun auch gegen deren Rolle 'role' in der Relation geprüft werden. Die Abfrage liefert für Ottobrunn derzeit etwa 1.1 MB.

Suche nach der Gemeinde

http://overpass-api.de/api/interpreter?data=area[boundary=administrative][admin_level=8][name='Ottobrunn']->.O; rel(area.O)[route~'(bus|train)']->.R; rel(br.R); out; rel.R; out; rel(r.R); out; way(r.R); out; node(r.R); out;

Suche per Polygon

http://overpass-api.de/api/interpreter?data=rel(poly:'48.0770 11.6378 48.0436 11.6378 48.0436 11.7024 48.0770 11.7024')[route~'(bus|train)']->.R; rel(br.R); out; rel.R; out; rel(r.R); out; way(r.R); out; node(r.R); out;

Hier wurde der Einfachheit halber ein Rechteck gewählt mit: oben links, unten links, unten rechts, oben rechts. Es sind jedoch beliebige Polygone realisierbar - durch Hinzufügen von weiteren Breitengrad/Längengrad-Paaren. Siehe auch: Overpass-API Abfrage für Augsburger Verkehrs- und Tarifverbund

Suche per Verkehrsverbund

http://overpass-api.de/api/interpreter?data=area[boundary=public_transport][name='Verkehrsverbund Rhein-Sieg']->.L; rel(area.L)[route~'(bus|tram|train|subway|light_rail|trolleybus|ferry|monorail|aerialway|share_taxi)']->.R; rel(br.R); out; rel.R; out; rel(r.R); out; way(r.R); out; node(r.R); out;

Hier werden die Grenzen des VRS, Verkehrsverbund Rhein-Sieg, benutzt.

Filter nach network

Aus den Daten der Overpass-API Abfrage werden alle Routen und Route-Master herausgefiltert/entnommen, die gewissen Kriterien entsprechen:

  • der network-Tag ist nicht vorhanden oder
  • der network-Tag enhält 'MVV' (short) oder
  • der network-Tag enthält 'Münchner Verkehrs- und Tarifverbund' (long).

Test Linien

Im nächsten Schritt werden die entnommenen Linien mit einer Liste verglichen. Diese Liste (CSV-Datei) enthält die Linien des MVV. Die Liste haben wir zum überwiegenden Teil vom MVV bekommen. Die Einträge in der CSV-Datei enthalten u.A. Informationen über die Liniennummer ('ref') und den Type des Verkehrsmittels ('route'='bus', ...). Die in OSM gefundenen Linien müssen dabei sowohl

  • mit ref als auch mit route_master bzw. route in der Liste vorkommen

Beispiel: '210;bus': Linie 210 muss als Bus-Linie erscheinen (d.h. 'ref' = 210 und ('route_master' = 'bus' oder 'route' = 'bus)).
Als Tram oder U-Bahn wird sie nicht berücksichtigt und erscheint auf der nächsten Liste ("Other Public Transport Lines").

Other Public Transport Lines

Übrig bleiben die Linien, die

  • den network-Tag Kriterien entsprechen und
  • eben nicht in der Liste (CSV-Datei) vorkommen.

Taucht in dieser Liste ("Other Public Transport Lines") z.B. eine MVV Linie 724 auf, so ist das ein Indiz, dass es diese Linie nicht mehr gibt - sie wurde u.U. eingestellt (denn sonst würde sie bei der Liste "Test Linien" auftauchen).

Public Transport Lines without 'ref'

Hierzu zählen alle Linien, die

  • den network-Tag Kriterien entsprechen und
  • keinen ref-Tag haben

Verdächtige Relationen

Dieser Abschnitt enthält alle Relationen, die verdächtig sind:

  • evtl. falsche 'route' oder 'route_master' Werte?
    • z.B. 'route' = "suspended_bus" statt 'route' = "bus"
  • aber auch 'type' = 'network' oder 'route' = "network", d.h. eine Sammlung aller zum 'network' gehörenden Route und Route-Master.

Die Darstellung erfolgt in diesem Abschnitt lediglich mit der Relation-ID und markanten Tags.

Prüfungen

Verwendetes Schema

Die Daten durchlaufen mehrere Prüfungen, wobei der Fokus auf dem Schema: Public Transport Version 2 liegt. Dieses Schema wird beschrieben unter:

wobei ich mich vornehmlich auf das Approved Feature Public Transport beziehe, da die einzelnen Tags dort weitaus besser beschrieben sind.

Abweichungen

Die Abweichungen betreffen im Wesentlichen eine striktere Auslegung der im Approved Feature Public Transport definierten Vorgehensweise:

  • "recommended" wird bei den folgenden Tags als "mandatory" gesehen
    • public_transport:version
      • public_transport:version=2 ist wichtig um die PTv2 Analyse für eine Route zu starten
    • network
      • ist wichtig um nach dem zu analysierenden Verkehrsverbund zu filtern
    • ref
      • ist wichtig um die einzelnen Teillinien einander zuordnen zu können (das wird nicht über einen evtl. vorhanden Route-Master gemacht, den gibt es bei PTv1 ja auch nicht)
    • name
      • sollte gesetzt werden, damit man die Teillinien auseinander halten kann
      • Einfache Linie
        • name="Bus 210: Neuperlach Süd => Brunnthal, Zusestraße" Hinfahrt
        • name="Bus 210: Brunnthal, Zusestraße => Neuperlach Süd" Rückfahrt
      • Linie mit unterschiedlichen Wegen
        • name="Bus 221: Unterhaching (S) => Waldheimplatz" Hinfahrt am Wochenende
        • name="Bus 221: Unterhaching (S) => Siemensstraße => Waldheimplatz" Hinfahrt werktags (durchs Gewerbegebiet)
        • name="Bus 221: Waldheimplatz => Unterhaching (S)" Rückfahrt am Wochenende
        • name="Bus 221: Waldheimplatz => Siemensstraße => Unterhaching (S)" Rückfahrt werktags (durchs Gewerbegebiet)

Besonderheiten

Die folgenden Besonderheiten beziehen sich immer auf einen einzelne Relation (type=route) in der PTv2-Notation (public_transport:version=2). Hierbei stellt eine solche Relation immer eine von (in der Regel) mehreren Teillinien dar.

  • Kreisverkehre
    • Hier ist das Tool nicht puristisch und erwartet nicht, dass der Fahrweg in der Relation (in der Regel: des Busses) nur die Teile eines Kreisverkehrs enthält, die auch tatsächlich durchfahren werden
      • das entspricht dem Verhalten von JOSM
      • es wird aber u.U. eine Anmerkung ausgegeben, wenn der Kreis nicht komplett durchfahren wird, das hat aber keinen Einfluss auf die weitere Analyse
      • der Kreis kann aber aufgeteilt, d.h. in mehrere Segmente geteilt werden (Kreisverkehr-Puristen mögen hier stöhnen)
      • wendet der Bus im Kreisverkehr und ist Einfahrt gleich Ausfahrt (ohne Verkehrsinsel), so wird der komplette Kreisverkehr eingebunden (aber nur dann)
      • kommt der Bus auf seinem Weg ein weiteres Mal zum selben Kreisverkehr, so benutzt er in der Regel ein anderes Segment des Kreises
  • Durchfahrt eines Weges in beide Richtungen bzw. erneut in der selben Richtungen
    • Fährt das Verkehrsmittel (hier in der Regel: der Bus, aber auch Züge die in Kopfbahnhöfen einen Zwischenhalt einlegen) einen Weg mehrfach, so ist der OSM-Way auch mehrfach in die Relation aufzunehmen (an der richtigen Stelle natürlich)
      • ohne: 'forward' oder 'backward', einfach nur so
      • JOSM wird auf das doppelte Vorhandensein hinweisen, aber das kann hier ignoriert werden
  • Anzahl Stops
    • Es wird erwartet, dass mindestens 2 Stops existieren
      • Derzeit werden mindestens 2 Nodes erwartet, egal ob Stop oder Platform
  • Anzahl Wege
    • es wird erwartet, dass mindestens zwei Wege/Straßen/Schienenstücke/... existieren
      • Eine Ausnahme bilden evtl. Fähren über Flüsse?
  • Beginn und Ende des Fahrweges
    • der erste Node im ersten Way muss eine Stop-Position sein: Rolle = 'stop' oder 'stop_entry_only'
      • eventuelle Schienen- oder Straßenstücke davor gehören nicht zum Fahrweg, denn es werden hier noch keine Personen befördert
    • der letzte Node im letzten Way muss eine Stop-Position sein: Rolle = 'stop' oder 'stop_exit_only'
      • eventuelle Schienen- oder Straßenstücke danach gehören nicht zum Fahrweg, denn es werden hier keine Personen mehr befördert
  • Sortierung mehrerer Routen (type=route) im Route-Master (type=route_master)
    • 'sort_name=' als Tag der Route wird zum Sortieren verwendet, wenn vorhanden
      • Z.B.:
        • sort_name="Hinfahrt: 1,5,7,9"
        • sort_name="Hinfahrt: 2,3,4,6,8"
        • sort_name="Rückfahrt: 1,2,3,4"
        • sort_name="Rückfahrt: 5,6,7,8,9"
    • 'name=' wird verwendet, wenn 'sort_name' nicht existiert
    • wenn 'name=' nicht gesetzt ist wird die ID der Relation genommen
    • eigentlich keine Besonderheit, aber nicht ohne Grund:
      • dient dazu, zufällige Reihenfolgen auf der Wiki-Seite zu vermeiden, was unnötige "deltas" im Wiki erzeugen würde

Vorgehensweise

tbd.

Momentane Prüfungen

Folgenden Texte werden (derzeit) ausgegeben:

Text Typ Erklärung
Missing route for ref='%s' and route='%s' Fehler diese Route wird z.B. laut CSV-Datei als '%s' (bus, tram, ...) erwartet, existiert aber nicht im gegebenen Datensatz (siehe: Overpass-API Abfrage)
Route-Master without Route(s) Fehler die Route-Master Relation enthält keine Routen (sollte bei der verwendeten Overpass-API Abfrage nicht passieren)
Route-Master with Platform Relation(s) Fehler die Route-Master Relation enthält Bahn-/Bussteig/... Relation(en)
Route-Master with Way(s) Fehler die Route-Master Relation enthält Straßen/Schienen/Bahn-/Bussteige/...
Route-Master with Node(s) Fehler die Route-Master Relation enthält Haltestellen oder Bahn-/Bussteige
Route without Node(s) Fehler die Route enthält keine Haltestellen und Bahn-/Bussteige
Route without Way(s) Fehler die Route enthält keine Straßen/Schienen/...
Route with Relation(s) Fehler die Route enthält andere Relation(en) (Ausnahme: role='*platform*')
Route with only 1 Node Fehler die Route enthält nur eine Haltestelle bzw. nur einen Bahn-/Bussteig
Route with only 1 Way Fehler die Route enthält nur eine Straße/Schiene/... (Ausnahme: Fähren, Seilbahnen)
Route-Master with only 1 Route Anmerkung die Route-Master Relation enthält nur eine Route (Fehler? Rundkurs? Braucht's dann einen Route-Master?)
There is more than one Route-Master for this line Fehler Es gibt mehr als einen Route-Master für diese Linie (verschiedene 'network'-tags?)
Route-Master has less Routes than actually exist (%d versus %d) in the given data set Fehler dieser Route-Master hat weniger Route-Relationen als hier aufgelistet sind (Route(n) nicht im Route-Master eingetragen?)
Route-Master has more Routes than actually exist (%d versus %d) in the given data set Fehler dieser Route-Master hat mehr Route-Relationen als hier aufgelistet sind (Route ohne oder mit anderem 'ref'/'network'-Tag?)
Route exists but 'ref' tag is not set: %s Fehler die Route ist Member dieses Route-Masters, hat aber keinen 'ref'-tag (Siehe: "Public Transport Lines without 'ref'")
Route has different 'ref' tag ('%s'): %s Fehler die Route ist Member dieses Route-Masters, hat aber einen anderen 'ref'-tag
Route has different 'network' tag ('%'s): %s Fehler die Route ist Member dieses Route-Masters, hat aber einen anderen 'network'-tag
Route has strange 'network' tag ('%s'): %s Fehler die Route ist Member dieses Route-Masters, hat aber einen merkwürdigen, unpassenden 'network'-tag
Route does not exist in the given data set: %s Fehler die Route ist Member dieses Route-Masters, existiert aber nicht (zumindest nicht im gegebenen Datensatz)
Route is not member of this Router-Master: %s Fehler die Route ist nicht Member dieses Route-Masters (wurde nicht eingetragen?)
Multiple Routes but no Route-Master in the given data set Fehler es existieren mehrere Routen dieser Linie, aber kein zugehöriger Route-Master.
Multiple Routes but 'public_transport:version' is not set to '2' Fehler es existieren mehrere Routen dieser Linie, aber der Wert des public_transport:version-Tags ist nicht '2'.
'network' of Route does not fit to 'network' of Route-Master: %s Fehler Inkonsistenz zwischen 'network'-Tag dieser Route und dem zugehörigen Route-Master (wichtig für Sketch-Line).
PTv2 route: there is no Route-Master for this line Anmerkung diese Route ist mit 'public_transport:version'='2' getagged, hat aber keinen Route-Master (Fehler? Rundkurs? Braucht's dann einen Route-Master?).
PTv2 route: Route is not member of an existing Route-Master of this line Fehler diese Route ist nicht Member eines Route-Masters dieser Linie (wurde nicht eingetragen, hat unterschiedliches ref-Tag?).
PTv2 route: empty 'role': %s Fehler erlaubt für Punkte: 'stop', 'platform', 'stop_exit_only', 'stop_entry_only', 'platform_exit_only', 'platform_entry_only'.
PTv2 route: wrong 'role' = '%s': %s' Fehler erlaubt für Punkte: 'stop', 'platform', 'stop_exit_only', 'stop_entry_only', 'platform_exit_only', 'platform_entry_only'.
PTv2 route: empty 'role': %s Fehler erlaubt für Wege/Multipolygone: 'platform', 'platform_exit_only', 'platform_entry_only'.
PTv2 route: wrong 'role' = '%s': %s Fehler erlaubt für Wege/Multipolygone: 'platform', 'platform_exit_only', 'platform_entry_only'.
PTv2 route: mismatch between 'role' = '%s' and 'public_transport' = '%s': %s Fehler Inkonsistenz zwischen Typ des Punktes/Weges/Multipolygons und dessen Rolle in der Route (z.B. role=platform und public_transport=stop_position.
PTv2 route: 'role' = '%s' but 'public_transport' is not set: %s Fehler Die Rolle eines Punktes/Weges/Multipolygons ist definiert aber public_transport ist nicht definiert.
PTv2 route: missing '%s' = 'yes' on 'public_transport' = '%s': %s Fehler Fehlendes 'bus'='yes', 'tram'='yes' oder 'share_taxi'='yes' bei 'stop_position' oder 'platform'
PTv2 route: 'public_transport' = 'stop_position' is not part of way: %s Fehler Punkt(e) mit Tag 'stop_position' ist/sind nicht Teil des Fahrweges.
PTv2 route: 'public_transport' = 'platform' is part of way: %s Fehler Punkt(e) mit Tag 'platform' ist/sind Teil des Fahrweges.
PTv2 route: 'role' = 'stop_entry_only' is not the first node of the first way: %s Fehler Punkt mit Rolle 'stop_entry_only' ist nicht erster Punkt des ersten Weges Gegenbeispiel: MVV Bus 213 in München, Karl-Preis-Platz
PTv2 route: 'role' = 'stop_exit_only' is not the last node of last last way: %s Fehler Punkt mit Rolle 'stop__exit_only' ist nicht letzter Punkt des letzten Fahrweges Gegenbeispiel: MVV Bus 213 in München, Karl-Preis-Platz
PTv2 route: has gap(s), consists of %d segments Fehler Die Fahrstrecke ist nicht durchgängig und in %d Segmente zerfallen, hat also Lücken.
PTv2 route: using oneway parts in wrong direction: %s Fehler Wege führen falsch herum in Einbahnstraßen hinein (JOSM erkennt das derzeit (2017-06-13) nicht: Ticket #14711). Bei der weiteren Analyse wird davon ausgegangen, dass der Weg in der 'falschen' Richtung befahren werden darf. Es entsteht hierdurch keine 'Lücke'.
PTv2 route: includes %d entire roundabout(s) but uses only segment(s) Anmerkung Kreisverkehre können aufgeteilt werden, der Fahrweg enthält dann nur die Teile, die auch tatsächlich durchfahren werden (Viertelkreis, Halbkreis, Drei-Viertelkreis, ...). Das ist kein 'Muss', ein 'Kann'. Diese Meldung hat keinen Einfluss auf die weitere Analyse.
PTv2 route: first node of way is not a stop position of this route: %s Fehler Der erste Punkt des Fahrweges muss eine 'stop_position' dieser Linie sein, eventuelle Schienen- oder Straßenstücke davor gehören nicht zum Fahrweg, denn es werden hier noch keine Personen befördert.
PTv2 route: last node of way is not a stop position of this route: %s Fehler Der letzte Punkt des Fahrweges muss eine 'stop_position' dieser Linie sein, eventuelle Schienen- oder Straßenstücke danach gehören nicht zum Fahrweg, denn es werden hier keine Personen mehr befördert.
PTv2 route: first node of way is not the first stop position of this route: %s versus %s Fehler Der erste Punkt des Fahrweges muss die erste 'stop_position' dieser Linie sein, eventuelle Schienen- oder Straßenstücke davor gehören nicht zum Fahrweg, denn es werden hier noch keine Personen befördert.
PTv2 route: last node of way is not the last stop position of this route: %s versus %s Fehler Der letzte Punkt des Fahrweges muss die letzte 'stop_position' dieser Linie sein, eventuelle Schienen- oder Straßenstücke danach gehören nicht zum Fahrweg, denn es werden hier keine Personen mehr befördert.
Route: restricted access (%s) to way(s) without 'bus' = 'yes', 'bus' = 'designated', 'psv' = 'yes', ...: %s Fehler Es werden Wege benutzt, die explizit oder implizit nicht befahren werden dürfen und wo 'bus'='yes', 'bus'='designated', 'bus'='official', 'psv'='yes', ... fehlen.
Derzeit wird in dieser Reihenfolge geprüft: access=no, access=private, vehicle=no, Vehice=private, motor_vehicle=no, motor_vehicle=private, motor_car=no, motor_car=private, highway=pedestrian, highway=footway, highway=cycleway, highway=path, highway=construction
Route: 'highway' = 'bus_stop' is set on way(s). Allowed on nodes only!: %s Fehler highway=bus_stop darf nur auf Punkten (nodes) gesetzt werden, nicht auf Wege oder Flächen. DE:Tag:highway=bus_stop
Diese Prüfung wurde erst einmal abgeschaltet, evtl. über's Ziel hinaus geschossen?
'network' is not set Fehler das network-Tag ist nicht vorhanden.
'name' is not set Fehler das name-Tag ist nicht vorhanden.
'ref' is not set Fehler das ref-Tag ist nicht vorhanden.
'public_transport:version' is neither '1' nor '2' Fehler das public_transport:version-Tag ist weder '1' noch '2' (bei Route).
'public_transport:version' is not set to '2' Fehler das public_transport:version-Tag ist ungleich '2' (bei Route-Master).
'public_transport:version' is not set Fehler das public_transport:version-Tag ist bei Route-Master nicht vorhanden.
'public_transport:version' is not set Anmerkung das public_transport:version-Tag ist bei Route nicht vorhanden (es würde die Auswertungen leichter machen).
PTv2 route: 'from' is not set Anmerkung das from-Tag ist nicht vorhanden.
PTv2 route: 'to' is not set Anmerkung das to-Tag ist nicht vorhanden.
PTv2 route: 'ref' is not part of 'name' Anmerkung der Wert des ref-Tags sollte im 'name' wieder auftauchen, muss aber nicht (ref='210' und name='Bus 210').
PTv2 route: 'from' is not part of 'name' Anmerkung der Wert des from-Tags sollte im 'name' wieder auftauchen, muss aber nicht (from='Neuperlach Süd' und name='Bus 210: Neuperlach Süd => Brunnthal, Zusestraße').
PTv2 route: 'to' is not part of 'name' Anmerkung der Wert des from-Tags sollte im 'name' wieder auftauchen, muss aber nicht (to='Brunnthal, Zusestraße' und name='Bus 210: Neuperlach Süd => Brunnthal, Zusestraße').
PTv2 route: 'name' includes deprecated '<=>' Anmerkung der Wert des name-Tags enthält das veraltete Zeichen '<=>'. PTv2 erwartet mindestens eine Relation für jede Richtung. Das name-Tag enthält dann '=>'.
PTv2 route: 'name' should (at least) be of the form '... ref: from => to' Anmerkung der Wert des name-Tags sollte mindestens diese Form haben.
Beispiel: name='Bus 210: Neuperlach Süd => Brunnthal, Zusestraße', mit route='bus', ref='210', from='Neuperlach Süd' und to='Brunnthal, Zusestraße'.
D.h. wenn das name-Tag kein oder nur ein '=>' enthält: dann sollte es mindest diese Form haben.
Alternative: siehe "Anmerkung" bzgl via-Tag.
PTv2 route: 'name' has more than one '=>' but 'via' is not set Anmerkung der Wert des name-Tags hat mehr als ein '=>', aber des via-Tag ist nicht gesetzt.
Beispiel: name='Bus 221: Unterhaching (S) => Ottobrunn, Siemensstraße => Waldheimplatz', mit route='bus', ref='221', from='Unterhaching (S)', via-Tag nicht gesetzt und to='Waldheimplatz'.
D.h. wenn das name-Tag mehr als ein ' => ' enthält: dann sollte das via-Tag entsprechend gesetzt sein.
PTv2 route: 'via' is set: via-part = '%s' is not part of 'name' (separate multiple 'via' values by ';', without blanks) Anmerkung der Wert des name-Tags kann eine alternative Form haben wenn das via-Tag gesetzt ist, muss aber nicht.
Beispiel: name='Bus 301: Wolfratshausen (S) => Waldram => Farchet (Holunderstraße) => Wolfratshausen (S) ', mit route='bus', ref='301', from='Wolfratshausen (S)', via='Waldram;Farchet (Holunderstraße)' und to='Wolfratshausen (S)'.
D.h. wenn das via-Tag gesetzt ist und mehr als ein '=>' im name-Tag ist, und mindestens ein ';' im via-Tag enthalten ist, dann müssen die Teile des via-Tag jeweils im name-Tag vorhanden sein.
Nach dem Motto: wennschon, dennschon!.
PTv2 route: 'via' is set: 'name' should be of the form '... ref: from => via => to' Anmerkung der Wert des name-Tags kann eine alternative Form haben wenn das via-Tag gesetzt ist, muss aber nicht.
Beispiel: name='Bus 221: Unterhaching (S) => Ottobrunn, Siemensstraße => Waldheimplatz', mit route='bus', ref='221', from='Unterhaching (S)', via='Ottobrunn, Siemensstraße' und to='Waldheimplatz'.
D.h. wenn das via-Tag gesetzt ist und mehr als ein '=>' im name-Tag ist, dann müssen die Teile des via-Tag exakt im name-Tag vorhanden sein (in der richtigen Reihenfolge und natürlich auch das from-Tag und to-Tag).
Nach dem Motto: wennschon, dennschon!.
Beachte! Das Trennungszeichen für mehrere Werte im via-Tag ist das Semikolon ';' (ohne blanks drumherum), nicht das Komma ',', denn 'Ottobrunn, Siemensstraße' kann z.B. ein Haltestellennamen sein.
PTv2 route: 'via' is set: 'name' should be of the form '... ref: from => via => ... => to' (separate multiple "via" values by ';', without blanks) Anmerkung der Wert des name-Tags kann eine alternative Form haben wenn das via-Tag gesetzt ist, muss aber nicht.
Beispiel: name='Bus 221: Unterhaching (S) => Ottobrunn, Siemensstraße => Waldheimplatz', mit route='bus', ref='221', from='Unterhaching (S)', via='Ottobrunn, Siemensstraße' und to='Waldheimplatz'.
D.h. wenn das via-Tag gesetzt ist und mehr als ein '=>' im name-Tag ist, dann müssen die Teile des via-Tag exakt im name-Tag vorhanden sein (in der richtigen Reihenfolge und natürlich auch das from-Tag und to-Tag).
Nach dem Motto: wennschon, dennschon!.
Beachte! Das Trennungszeichen für mehrere Werte im via-Tag ist das Semikolon ';' (ohne blanks drumherum), nicht das Komma ',', denn 'Ottobrunn, Siemensstraße' kann z.B. ein Haltestellennamen sein.
'network' is short form Anmerkung der Wert des network-Tags ist identisch zum Text in Kurzform (z.B. 'MVV' ist name="MVV").
'network' matches short form Anmerkung der Wert des network-Tags enthält den Text in Kurzform (z.B. 'MVV' in name="MVV;RVO").
'network' is long form Anmerkung der Wert des network-Tags ist identisch zum Text in Langform (z.B. 'Müchner Verkehrs- und Tarifverbund' ist name="Müchner Verkehrs- und Tarifverbund").
'network' matches long form Anmerkung der Wert des network-Tags enthält den Text in Langform (z.B. 'Müchner Verkehrs- und Tarifverbund' in name="Müchner Verkehrs- und Tarifverbund;Regionalverkehr Oberbayern").
'comment' = Anmerkung hier steht der Inhalt des comment-Tags, wenn vorhanden.
'fixme' = Anmerkung hier steht der Inhalt des fixme-Tags oder FIXME-Tags, wenn vorhanden.
'note' ~ Anmerkung hier steht der gefilterte Inhalt des note-Tags, wenn vorhanden (Filter: note =~ s/^https{0,1}://wiki.openstreetmap.org\S+//;).
'note:*' = Anmerkung hier steht der Inhalt des note-Tags, wenn ":de" oder ähnliches angehängt ist.
'check_date' = YYYY-MM-DD Anmerkung diese Linie (bzw. der Route-Master, die Route) wurde zuletzt am YYYY-MM-DD geprüft.
'network:guid' is set to 'xx-yy-zzz' Anmerkung z.B. 'DE-BY-MVV' für den Münchner Verkehrs- und Tarifverbund (ist eindeutiger als 'network'='MVV').
'network:area' = Anmerkung z.B. 'city', 'region' oder ...
'route:category' = Anmerkung z.B. 'call', 'express', 'night', normal', 'metro' oder ...

Geplante Prüfungen

Folgenden Texte sind noch vorgesehen:

Text Typ Erklärung
PTv2 route: 'public_transport' = 'stop_position' are not in correct order Fehler Die Haltestellen sind nicht in der richtigen Reihenfolge, wenn man dem Fahrweg folgt.
Schwierig zu implementieren, ich habe auch schon legale Gegenbeispiele.
PTv2 route: 'public_transport' = 'platform' are not in same order as 'stop_position' Fehler 'platform' "X" soll 'stop_position' "X" folgen, dann nächster Stop, ...
Schwierig zu implementieren, ich habe auch schon legale Gegenbeispiele.
PTv2 route: 'stop_position', 'platform' and 'way' are mixed Fehler Reihenfolge der Member stimmt nicht, soll sein: "Stop1", "Platform1", "Stop2", "Platform2", ..., "Weg1", "Weg2", ...
Tag '%s' includes non-UTF-8 character(s) '%s' Fehler Das Tag enthält Zeichen, die nicht UTF-8 kodiert sind, z.B. Windows 'ä', Windows zusammengefasstes '=>' als ein Zeichen.
Niedrige Priorität, da es nur wenige Meldungen sind, die ich auf andere Weise erkenne und in der Regel sofort korrigiere.
... ... ...

Weitere Anregungen sind willkommen!

Diskussion

Kreisverkehr-Handhabung

Toni, Du hast geschrieben " Kreisverkehre

   Hier ist das Tool puristisch und erwartet, dass der Fahrweg in der Relation (in der Regel: des Busses) nur die Teile eines Kreisverkehrs enthält, die auch tatsächlich durchfahren werden
       der Kreis muss u.U. mehrfach aufgeteilt, d.h. in mehrere Segmente geteilt werden (Kreisverkehr-Puristen mögen hier stöhnen)

"

Ich war froh, das es Josm mittlerweile egal ist, ob genau der Teilweg des Kreisverkehrs oder der gesamte in der Relation angegeben wird. Nach meiner Erfahrung sind gerade neue Kreisverkehre oder Änderungen an Bestehenden der Grund, warum die meisten Relationen mit der Zeit nicht mehr durchgängig verlaufen. Daher wäre eine ähnliche Toleranz bei der Prüfung analog zum Josm sehr wünschenswert --Okilimu (talk) 18:49, 22 June 2017 (UTC)

Hallo Dietmar

Die Toleranz ist gegeben :-)

  • Es wird derzeit lediglich der "Fehler" (nicht Hinweis) ausgegeben dass ein kompletter Kreisverkehr eingebunden ist, obwohl nur Teile davon befahren werden (Eintritt != Austritt)
  • Das gilt aber nur für echte Kreisverkehre, "closed ways", die nicht bereits aufgeteilt sind
  • Im (echten) Kreis selbst wird nach dem Austrittspunkt (gleich Eintrittspunkt des nächsten Weges) gesucht und von dort aus weiter analysiert.
  • Der Weg zerfällt dadurch nicht in mehrere Segmente
    • es sei denn, der nachfolgende Weg (dessen erster oder letzter Punkt) hat keinen gemeinsamen Punkt mit dem Kreis
    • es sei denn, es ist kein echter Kreis "closed way", d.h. der Kreisverkehr besteht schon aus Segmenten
  • Ich werde die Kategorie von "Fehler" auf "Anmerkung" ändern - von '__issues__' zu '__notes__' - kein Problem.

--ToniE (talk) 20:17, 22 June 2017 (UTC)