PTNA - Public Transport Network Analysis

Statische Auswertungen für OpenStreetMap


Motivation

Erste Diskussionen fanden auf einem Münchner Stammtisch im Februar 2017 statt.

Ausgelöst wurde die ganze Diskussion durch unbeabsichtigtes Löschen von Bus-Relationen im Münchener Umfeld (es wurden aber neue Relationen erstellt). Dadurch waren viele Links auf der Seite München/Transportation nicht mehr aktuell. Allerdings muss man auch sagen, dass die Seite in der Vergangenheit eh nicht gut gepflegt war, z.T. gar nicht bekannt war. Die Qualität und Aktualität der Seite scheint also ein generelles Problem zu sein.

Problem: es hapert mit der Qualität der München/Transportation Seite:

  • Vollständigkeit:
    • wir wissen nicht, ob wir alle existierenden Buslinien des MVV auf der Seite aufgelistet haben
    • wir wissen nicht, ob wir Artefakte, d.h. Buslinien gemapped haben die bereits (wieder) eingestellt oder umnummeriert worden sind
    • S-Bahn, U-Bahn und Tram sind in ihrer Anzahl überschaubar, da besteht die Chance, dass wir vollständig sind
  • PTv2:
  • Korrektheit:
    • wir wissen nicht, ob die auf PTv2 umgestellten Linien durchgängig und sortiert sind
    • d.h. ob die Ways komplett, in der richtigen Reihenfolge, ohne Lücken, ohne Fortsätze und bei Kreisverkehren korrekt erfasst sind
    • ob die "stop" und "platform" Member komplett und in der richtigen Reihenfolge erfasst sind
  • Einheitlichkeit:
    • wir wissen nicht, ob alle Relationen mit ihren Tags komplett und korrekt sind
    • d.h. mit vorhanden, korrekten und gegebenenfalls einheitlichen "network", "operator", "public_transport:version", "name", "ref", "from", "to" (und "via"), ...
  • Übersichtlichkeit:
    • wir haben keine Seite, auf der uns all das, vor allem aber die Probleme damit, übersichtlich angezeigt wird
  • Automatisierbarkeit:
    • wir haben keine Möglichkeit eine solche Übersichtsseite automatisiert zu erstellen (wöchentlich, ...)

Ursachen gibt es viele:

  • Vollständigkeit:
    • woher sollen wir die Informationen bekommen? Wir erhalten u.U. vom MVV eine Liste (CSV, ...)
  • PTv2:
    • einige Linien haben weder "Version" 1 noch 2 als Tag: vergessen, Unkenntnis der Existenz ...
  • Korrektheit:
    • das ist eine mühsame Kleinarbeit, die immer wieder und wieder angestoßen werden muss, da Relationen schnell mal (unbeabsichtigt) mit Lücken "versehen werden", ...
  • Einheitlichkeit:
  • Übersichtlichkeit:
    • Teile der Seite sind schon übersichtlicher gestaltet, wie könnte eine übersichtlichere Seite aussehen (Layout?)
  • Automatisierbarkeit:
    • da gibt es nichts

Ein nicht repräsentativer Blick auf Berlin, Hamburg und Aachen zeigt, dass andere Städte u.U. das gleiche Problem haben.


Überblick

Lorem ipsum dolor sit amet, consectetur adipisici elit, …


Die Web-site

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Auswertungen

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

  • Name
  • City/Region
  • Verkehrsverbund
  • Auswertung
  • Letzte Änderung
  • Diskussion
  • Linien

Statistiken

Statistiken ... Lorem ipsum dolor sit amet, consectetur adipisici elit, …


Die zum Verkehrsverbund gehörigen Linien

Wichtig: Beachte das Copyright © des Verkehrsverbundes bzw. die Herkunft der Daten!

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Beachte: Die Liste wird unter der GPL 3 veröffentlicht.


Die Analyse

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Beschreibung der erwarteten Linien

Wichtig: Beachte das Copyright © des Verkehrsverbundes bzw. die Herkunft der Daten!

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Beachte: Die Liste wird unter der GPL 3 veröffentlicht.

Beispiel: Linien des Münchner Verkehrs- und Tarifverbund im OSM Wiki

Download der Daten aus OSM

Für den Download der Daten wird das Overpass-API verwendet. Die Abfrage erfolgt außerhalb des eigentlichen Analysetools durch einen wget-Aufruf unter Linux.

Die Abfrage selber gliedert sich in 3 große Teile:

Definition des Suchgebietes

Folgenden Möglichkeiten gibt es:
  • Namen der Kreise oder/und Landkreise
    Beispiel: boundary=administrative und admin_level=6 und name~'(Dachau|München|Ebersberg|Erding|Starnberg|Freising|Tölz|Wolfratshausen|Fürstenfeldbruck)'
  • Name des Regierungsbezirks
    Beispiel: boundary=administrative und admin_level=5 und name='Oberbayern'
  • Name des Verkehrsverbundes, sofern es dazu einen Relation gibt
    Beispiel: boundary=public_transport und name='Verkehrsverbund Rhein-Sieg'
  • Oder die Liste von Geokoordinaten eines umschließenden Polygons
    Beispiel, einfaches Rechteck: poly:'48.0770 11.6378 48.0436 11.6378 48.0436 11.7024 48.0770 11.7024'
Hinweis: Die Definition mittels poly:'...' ist der aufwändigste aber zugleich auch der sicherste Weg:
  • er ist eindeutig, denn z.b. einen Landkreis: admin_level=6 mit name="Coburg" mag es weltweit mehrfach geben.
  • eine Relation mit type=boundary kann Lücken enthalten, es werden dann keine Daten runter geladen.

Auswahl und Abspeichern aller relevanten Route und deren Route-Master Relationen

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Ausgabe der relevanten Informationen

Siehe: OSM Wiki

Beispiel: Overpass-API query für Münchner Verkehrs- und Tarifverbund

Definition von Auswertungsoptionen

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Beispiel: Optionen für Münchner Verkehrs- und Tarifverbund

Analyse der Daten

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Datum der Daten

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Beispiel: Münchner Verkehrs- und Tarifverbund

Überblick über die ÖPNV-Linien ...

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Beispiel: Münchner Verkehrs- und Tarifverbund

Nicht eindeutig zugeordnete Linien

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Beispiel: Verkehrsverbund Mittelsachsen

Andere ÖPNV-Linien

Übrig bleiben die Linien, die

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

Taucht in dieser Liste ("Andere ÖPNV-Linien") z.B. eine Linie 724 auf, und

  • das 'network' tag ist gesetzt und passt zum analysierten Verkehrsverbund?
    • Die Linie wurde u.U. eingestellt - denn sonst würde sie bei der Liste "Überblick über die ÖPNV-Linien ... " auftauchen.
    • Die Linie existiert tatsächlich und fehlt in der Liste (CSV-Datei) "Beschreibung der erwarteten Linien".
  • das 'network' tag ist nicht gesetzt und müsste eigentlich zum analysierten Verkehrsverbund passen?
    • Die Linie wurde u.U. eingestellt - denn sonst würde sie bei der Liste "Überblick über die ÖPNV-Linien ... " auftauchen.
    • Die Linie existiert tatsächlich und fehlt in der Liste (CSV-Datei) "Beschreibung der erwarteten Linien".
  • das 'network' tag ist nicht gesetzt und müsste eigentlich zu einem anderen Verkehrsverbund passen?
    • Das 'network' tag mit dem korrekten Wert des anderen Verkehrsverbundes zu belegen lässt die Linie aus der Auswertung verschwinden.

Beispiel: Regionalverkehr Oberbayern

ÖPNV-Linien ohne 'ref'

Hierzu zählen alle Linien, die

  • keinen ref-Tag haben
    • egal, ob sie den network-Tag Kriterien entsprechen oder nicht

Beispiel: Verkehrsverbund Ems-Jade

Weitere Relationen

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Dieser Abschnitt enthält weitere Relationen aus dem Umfeld der Linien:

  • 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.
    • solche Sammlungen sind streng genommen Fehler, da Relationen keinen Sammlungen darstellen sollen: Relationen sind keine Kategorien
  • Lorem ipsum dolor sit amet, consectetur adipisici elit, …

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

Beispiel: Verkehrsverbund Rhein-Sieg (VRS)

Details zu 'network'-Werten

Das 'network' Tag wird nach den folgenden Werten durchsucht:

  • "langer" Name des Verkehrsverbundes
  • "kurzer" Name des Verkehrsverbundes
  • 'network' ist nicht gesetzt
Berücksichtigte 'network' Werte

Dieser Abschnitt listet die 'network'-Werte auf, die berücksichtigt wurden, d.h. einen der oben genannten Werte enthält.

Beispiel: Verkehrsverbund Mittelsachsen (VMS)

Nicht berücksichtigte 'network' Werte

Dieser Abschnitt listet die 'network'-Werte auf, die nicht berücksichtigt wurden. Darunter können auch Tippfehler in ansonsten zu berücksichtigenden Werten sein.

Beispiel: Verkehrsverbund Mittelsachsen (VMS)

Prüfungen

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Verwendetes Schema

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Siehe: OSM Wiki

Abweichungen

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Siehe: OSM Wiki

Besonderheiten

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Siehe: OSM Wiki

Vorgehensweise

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Siehe: OSM Wiki

Auswertungsoptionen

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Option Standardwert Beschreibung Bild
allow-coach OFF Erlaube 'route_master' = 'coach' und 'route' = 'coach' (auch wenn diese eher inoffiziell sind).
check-access OFF Es werden Wege benutzt welche explizit oder implizit ('construction', 'access', ...) nicht genutzt werden können und wo 'bus' = 'yes', 'bus' = 'designated', 'bus' = 'official', 'psv' =' yes', ... nicht gesetzt ist. Das gilt auch für 'barrier'.
check-bus-stop OFF 'highway' = 'bus_stop' ist nur auf Nodes erlaubt, nicht auf Ways oder Areas.
check-gtfs OFF Prüfung, ob 'gtfs:*' Tags korrekt, ... sind.
check-name OFF Prüfung, ob 'name = '... ref: from => to' beziehungsweise 'name' = '...ref: from => via ... => to' entspricht.
check-name-relaxed OFF Mehr entspanntere Prüfung, ob 'name' = '...: A => B' entspricht, wo 'A' Teil von 'from' und 'B' Teil von 'to' sein müssen.
check-osm-separator OFF Prüfe die Werte von 'network', ... ob das Aufzählungstrennzeichen tatsächlich das Semikolon ';' (ohne Blanks) ist.
check-platform OFF Prüfe, ob zum Beispiel 'bus' = 'yes' bei einer PTv2 Bushaltestelle existiert, wo 'public_transport' = 'platform' gesetzt ist. PTv2 fordert dieses allerdings nicht.
check-roundabouts OFF Prüfung von Kreisverkehren, ob sie partiell (in Segmente aufgeteilt) oder komplett (aber nicht in Segmente aufgeteilt) in der Relation enthalten sind.
check-route-ref OFF Prüfung, ob das Tag 'route_ref' an Haltestellen den Wert der Tags 'ref' der Route enthält (vorausgesetzt 'route_ref' existiert).
Prüfung, ob das Tag 'ref' der Haltestelle zufällig den Wert des Tags 'ref' der Route enthält.
Prüfung, ob die Tags 'bus_lines', 'bus_routes', 'lines' oder 'routes' an Haltestellen gesetzt sind. Sie sollten durch das Tag 'route_ref' ersetzt werden.
check-sequence OFF Prüfung der Reihenfolge der befahrenen Wege, existieren Lücken?
check-stop-position OFF Prüfe, ob zum Beispiel 'bus' = 'yes' bei einer PTv2 Bushaltestelle existiert, wo 'public_transport' = 'stop_position' gesetzt ist.
check-version OFF Prüfung von 'public_transport:version' = '...' bei Route-Master und Route.
check-way-type OFF Prüfung, ob die befahrenen Wege passend zum Fahrzeugtyp sind ('train' nutzt 'railway' = 'rail', 'tram' nutzt 'railway' = 'tram', 'bus' nutzt 'highway' = '...', ...).
coloured-sketchline OFF SketchLine (Overpass-API Skript) berücksichtigt den Wert von 'colour' = '...' des Route-Master oder der Route.
expect-network-long OFF Der Wert von 'network' = '...' wird in der Langform erwartet (siehe: network-long-regex).
expect-network-long-as Der Wert von 'network' = '...' wird in der Langform erwartet, so wie hier angegeben.
expect-network-long-for Der Wert von 'network' = '...' wird in der Langform erwartet statt der hier angegebenen Kurzform.
expect-network-short OFF Der Wert von 'network' = '...' wird in der Kurzform erwartet (siehe: network-short-regex).
expect-network-short-as Der Wert von 'network' = '...' wird in der Kurzform erwartet, so wie hier angegeben.
expect-network-short-for Der Wert von 'network' = '...' wird in der Kurzform erwartet statt der hier angegebenen Langform.
gtfs-feed Verwende diesen Wert als GTFS-Feed für die Option 'link-gtfs' wenn die Relation keinen der Tags 'gtfs:feed', 'operator:guid' oder 'network:guid' enthält.
language en Legt die Ausgabesprache fest.
max-error Begrenzt die Anzahl der Ausgabe identischer Fehler und Anmerkungen für eine Relation.
multiple-ref-type-entries analyze allow|analyze|no
Definiert, wie das mehrfache Auftreten der Kombination von "ref;type" (z.B. "N8;bus") in den CSV-Daten behandelt werden soll. PTNA nimmt an, dass es sich um separate Linien mit identischen 'ref' und 'type' in unterschiedlichen Städten/Gemeinden handelt und dass diese sich durch 'operator', 'from' und 'to' unterscheiden.
allow: erlaube weitere Vorkommen dieses Eintrags, keine Überprüfung von 'operator', 'from' und 'to'
analyze: prüfe, ob 'operator', 'from' und 'to' in den CSV-Daten mit den Werte der Relation übereinstimmen
no: ignoriere weitere Vorkommen dieses Eintrags, keine Überprüfung von 'operator', 'from' und 'to'.
network-long-regex Der Wert von 'network' = '...' bei der Route-Master und Route Relation muss dem regulären Ausdruck als Langform entsprechen oder kann leer sein (nicht gesetzt).
network-short-regex Der Wert von 'network' = '...' bei der Route-Master und Route Relation muss dem regulären Ausdruck als Kurzform entsprechen oder kann leer sein (nicht gesetzt).
no-additional-navigation OFF
operator-regex Der Wert von 'operator' = '...' bei der Route-Master und Route Relation muss dem regulären Ausdruck entsprechen oder kann leer sein (nicht gesetzt).
or-separator |
positive-notes OFF Zeige auch 'network:short' = '...', 'network:guid' = '...' und andere Tags und Werte.
ptv1-compatibility no allow|no|show
'highway' = 'bus_stop' für einen Punkt neben der Straße wird wie 'public_transport' = 'platform' behandelt, wenn 'role' = 'platform'.
allow: die Kompatibilität mit alten bus-stops (aka: PTv1) wird stillschweigend angenommen
no: keine Kompatibilität mit alten bus-stops (aka: PTv1)
show: die Kompatibilität mit alten bus-stops (aka: PTv1) wird angenommen und angezeigt.
ref-separator /
relaxed-begin-end-for Entspannte Prüfung für den Anfang und das Ende der Fahrstrecke bezüglich Haltestellen (zB. für 'train', 'tram', 'light_rail').
separator ;
show-gtfs OFF Analog zur Option '--positive-notes': zeige die Namen und Werte von 'gtfs*' Tags in der Spalte 'Amerkungen'.
strict-network OFF Route-Master und Route Relationen mit leerem 'network' werden nicht berücksichtigt.
strict-operator OFF Route-Master und Route Relationen mit leerem 'operator' werden nicht berücksichtigt.

Meldungen

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Meldung Typ Option Beschreibung Wie man es repariert Bild
'%s' = '%s' der Route ist gesetzt aber '%s' des Route-Masters ist nicht gesetzt: %s Fehler
'%s' = '%s' der Route ist identisch zu '%s' anderer Route(n) Fehler
'%s' = '%s' der Route passt nicht zu '%s' = '%s' des Route-Masters: %s Fehler
'%s' = '%s' der Route passt teilweise zu '%s' = '%s' anderer Route(n) Fehler
'%s' = '%s' enthält das Trennzeichen ';' (Semikolon) mit umgebendem Leerzeichen Anmerkungen
'%s' = '%s': ',' (Komma) als Trennzeichen sollte durch ';' (Semikolon, ohne Leerzeichen) ersetzt werden Anmerkungen
'%s' der Route ist nicht gesetzt aber '%s' = '%s' des Route-Masters ist gesetzt: %s Fehler
'colour' der Route ist gesetzt aber 'colour' des Route-Masters ist nicht gesetzt: %s Fehler
'colour' der Route ist nicht gesetzt aber 'colour' des Route-Masters ist gesetzt: %s Fehler
'colour' hat einen unbekannten Wert '%s'. Füge '#' als erstes Zeichen hinzu. Fehler
'colour' hat einen unbekannten Wert '%s'. Wähle einen der 140 definierten HTML/CSS Farbnamen oder den HTML Hex Farben Code '#...' oder '#......'. Fehler
'gtfs:shape_id' = '%s' ist gesetzt aber weder 'gtfs:trip_id' noch 'gtfs:trip_id:sample' ist gesetzt: setzte einen von beiden, da diese weitere Informationen über Haltestellen liefern (Namen, Reihenfolge und Positionen). Anmerkungen check-gtfs GTFS-shape-Daten liefern (nur) Information über den Verlauf der Fahrt des Fahrzeugs. GTFS-trip-Daten liefern zusätzliche Informationen über Haltestellen: deren Namen, deren Reihenfolge und deren Positionen. Diese zusätzlichen Informationen können genutzt werden, um OSM-Daten mit GTFS-Daten zu vergleichen. Füge 'gtfs:trip_id' oder 'gtfs:trip_id:sample' Daten hinzu.
'name' ist nicht gesetzt Fehler
'network' = '%s' der Route ist Teil von 'network' = '%s' des Route-Masters: %s Anmerkungen
'network' = '%s' der Route passt nicht zu 'network' = '%s' des Route-Masters: %s Fehler
'network' = '%s' sollte in Kurzform angegeben werden Anmerkungen
'network' = '%s' sollte in Langform angegeben werden Anmerkungen
'network' ist nicht gesetzt Fehler
'network:long' ist Langform Anmerkungen
'network:long' passt zur Langform Anmerkungen
'operator' = '%s' der Route passt nicht zu 'operator' = '%s' des Route-Masters: %s Fehler
'public_transport:version' ist nicht '2' Fehler
'public_transport:version' ist nicht gesetzt Anmerkungen
'public_transport:version' ist weder '1' noch '2' Fehler
'ref' ist nicht gesetzt Fehler
'route' = '%s' der Route passt nicht zu 'route_master' = '%s' des Route-Masters: %s Fehler
'route' ist nicht gesetzt: %s Fehler
'type' = '%s' ist nicht 'route': %s Fehler
'type' ist nicht gesetzt: %s Fehler
Das Tag 'line' (='%s') ist reserviert für 'power' = 'line' spezifisches Tagging. Für Public Transport werden 'route_master' und 'route' genutzt. Anmerkungen
Die Route ist direktes Element von mehr als einem Route-Master: %s Fehler Die Route hat mehr als einen Route-Master als Elternteil (%s = Liste der Route-Master).
Diese Route ist nicht Element eines existierenden Route-Masters Fehler
Es existiert mehr als ein Route-Master Fehler Route-Master: Es gibt mehr als einen Route-Master für diese Linie = 'ref' (verschiedene 'network'-tags?).
Route: Es gibt mehr als einen Route-Master für diese Linie = 'ref' plus Eltern-Route-Master dieser Route.
Fahrzeugtyp ist nicht definiert. Zeile %s der Routen-Daten. Inhalt der Zeile: '%s' Fehler
Fahrzeugtyp wird nicht unterstützt: '%s'. Zeile %s der Routen-Daten. Inhalt der Zeile: '%s' Fehler
Fehlende Linie für 'ref' = '%s' und 'route' = '%s' Fehler Diese Route wird laut CSV-Daten als '%s' ('bus', 'tram', ...) erwartet, existiert aber nicht im gegebenen Datensatz (siehe Abschnitt: "Overpass-API Abfrage").
Fehler in den Inputdaten: nicht genügend Daten für 'nodes' Fehler Diese Routen-Relation wurde durch einen Seiteneffekt in die Input-Daten einbezogen, die zugehörigen Ways und Nodes sind nicht in den Input-Daten enthalten.
Fehler in den Inputdaten: nicht genügend Daten für 'ways' Fehler Diese Routen-Relation wurde durch einen Seiteneffekt in die Input-Daten einbezogen, die zugehörigen Ways und Nodes sind nicht in den Input-Daten enthalten.
Mehrere Routen aber 'public_transport:version' ist nicht auf '2' gesetzt Fehler
Mehrere Routen aber diese Route ist nicht Element eines existierenden Route-Masters Fehler
Mehrere Routen aber kein Route-Master Fehler
PTv2 Route: '%s' ist nicht Teil von 'name' (hergeleitet von '%s' = '%s') Anmerkungen check-name
PTv2 Route: 'from' ist nicht gesetzt Anmerkungen check-name
PTv2 Route: 'name' der Route ist identisch zu 'name' anderer Route(n). Setze gegebenenfalls einen passenden 'via' Wert und nehme ihn in 'name' auf. Anmerkungen check-name
PTv2 Route: 'name' enthält mehr als ein '=>', aber 'via' ist nicht gesetzt Anmerkungen check-name
PTv2 Route: 'name' enthält unübliches '<=>' Anmerkungen check-name
PTv2 Route: 'name' enthält unübliches '==>' Anmerkungen check-name
PTv2 Route: 'name' hat keine 'Über'-Anteile, aber 'via' ist gesetzt Anmerkungen
PTv2 Route: 'name' sollte (mindest) von der Form '... ref ...: from => to' sein Anmerkungen check-name
PTv2 Route: 'name' sollte annähernd die Form '... ref ...: from => to' haben Anmerkungen check-name-relaxed
PTv2 Route: 'public_transport' = 'platform' liegt auf dem Fahrweg Fehler
PTv2 Route: 'public_transport' = 'stop_position' liegt nicht auf dem Fahrweg Fehler
PTv2 Route: 'ref' ist nicht Teil von 'name' Anmerkungen check-name
PTv2 Route: 'role' = '%s' aber 'public_transport' ist nicht gesetzt Fehler
PTv2 Route: 'role' = '%s' und %s: 'public_transport' = 'platform' sollte gesetzt werden Fehler ptv1-compatibility=show
PTv2 Route: 'role' = '%s' und %s: 'public_transport' = 'stop_position' sollte gesetzt werden Fehler ptv1-compatibility=show
PTv2 Route: 'to' ist nicht gesetzt Anmerkungen check-name
PTv2 Route: 'via' ist gesetzt: der %d. 'Über'-Anteil ('%s') von 'name' ist nicht Teil von %d. via-Teil = '%s' Anmerkungen check-name-relaxed
PTv2 Route: 'via' ist gesetzt: der %d. 'Über'-Anteil ('%s') von 'name' ist nicht gleich dem %d. via-Teil = '%s' Anmerkungen check-name
PTv2 Route: Einbahnstraße wird in der falschen Richtung benutzt Fehler check-sequence
PTv2 Route: Einbahnstraße wird in der falschen Richtung benutztPTv2 Route: Einbahnstraße wird in der falschen Richtung benutzt
PTv2 Route: Konflikt zwischen 'role' = '%s' und 'public_transport' = '%s' Fehler
PTv2 Route: Kreisverkehr tritt doppelt auf, direkt nach sich selbst Fehler check-sequence
PTv2 Route: Kreisverkehr tritt doppelt auf, direkt nach sich selbstPTv2 Route: Kreisverkehr tritt doppelt auf, direkt nach sich selbst
PTv2 Route: befährt %d kompletten Kreisverkehr von dem aber nur Teile benutzt werden Anmerkungen check-sequence
check-roundabout
PTv2 Route: der 'Nach'-Anteil ('%s') von 'name' ist nicht Teil von 'to' = '%s' Anmerkungen check-name-relaxed
PTv2 Route: der 'Nach'-Anteil ('%s') von 'name' ist nicht identisch zu 'to' = '%s' Anmerkungen check-name
PTv2 Route: der 'Von'-Anteil ('%s') von 'name' ist nicht Teil von 'from' = '%s' Anmerkungen check-name-relaxed
PTv2 Route: der 'Von'-Anteil ('%s') von 'name' ist nicht identisch zu 'from' = '%s' Anmerkungen check-name
PTv2 Route: der erste Punkt des Fahrweges hat die 'role' = 'stop_exit_only'. Sind die Wege der Route falsch herum sortiert? Fehler check-sequence
PTv2 Route: der erste Punkt des Fahrweges ist nicht die erste 'stop_position' der Route: %s gegenüber %s Fehler check-sequence
PTv2 Route: der erste Punkt des Weges ist keine 'stop_position' dieser Route: %s Fehler check-sequence
PTv2 Route: der erste Punkt einer Einbahnstraße hat die 'role' = 'stop_exit_only' Fehler check-sequence
PTv2 Route: der erste Weg ist eine Einbahnstraße und endet in einer 'stop_position' und es geht nicht mehr weiter. Sind die Wege der Route falsch herum sortiert? Fehler check-sequence
PTv2 Route: der letzte Punkt des Fahrweges hat die 'role' = 'stop_entry_only'. Sind die Wege der Route falsch herum sortiert? Fehler check-sequence
PTv2 Route: der letzte Punkt des Fahrweges ist nicht die letzte 'stop_position' der Route: %s gegenüber %s Fehler check-sequence
PTv2 Route: der letzte Punkt des Weges ist keine 'stop_position' dieser Route: %s Fehler check-sequence
PTv2 Route: der letzte Punkt einer Einbahnstraße hat die 'role' = 'stop_entry_only' Fehler check-sequence
PTv2 Route: die erste 'stop_position' auf dem ersten Weg ist nicht die erste 'stop_position' der Route: %s gegenüber %s Fehler check-sequence
PTv2 Route: die letzte 'stop_position' auf dem letzten Weg ist nicht die letzte 'stop_position' der Route: %s gegenüber %s Fehler check-sequence
PTv2 Route: ein falscher Wegtyp wird benutzt (%s) Fehler
PTv2 Route: entferne gegebenenfalls den ersten Weg des Fahrweges aus der Relation, es ist ein Weg vor der ersten 'stop_position': %s Fehler check-sequence
PTv2 Route: entferne gegebenenfalls den letzten Weg des Fahrweges aus der Relation, es ist ein Weg nach der letzten 'stop_position': %s Fehler check-sequence
PTv2 Route: es gibt keine 'public_transport' = 'platform' Anmerkungen
PTv2 Route: es gibt keine 'public_transport' = 'stop_position' Anmerkungen
PTv2 Route: es gibt keine 'public_transport' = 'stop_position' und keine 'public_transport' = 'platform' Fehler
PTv2 Route: es gibt keine 'stop_position' auf dem ersten Weg der Route: %s Fehler check-sequence
PTv2 Route: es gibt keine 'stop_position' auf dem letzten Weg der Route: %s Fehler check-sequence
PTv2 Route: es gibt mehr 'Über'-Anteile in 'name (%d) als in 'via' (%d) Anmerkungen check-name
PTv2 Route: es gibt nur eine 'public_transport' = 'platform' Fehler
PTv2 Route: es gibt nur eine 'public_transport' = 'stop_position' Fehler
PTv2 Route: es gibt weniger 'Über'-Anteile in 'name (%d) als in 'via' (%d) Anmerkungen check-name
PTv2 Route: es wird eine 'motorway_link' Straße benutzt ohne vorher oder nachher eine 'motorway' Straße benutzt zu haben Fehler check-motorway-link Das Fahrzeug benutzt eine Autobahnauf- bzw. abfahrt ohne unmittelbar danach oder davor eine Autobahn/Trunk zu benutzen. Das kann auf falsches Tagging des highway=motorway_link hinweisen. Es kann aber auch auf eine falsche Route hinweisen, wenn diese z.B. automatisch durch eine Routing-Software erstellt wurde. Es scheint noch Routing-SW zu geben, die lieber auf ein kurzes Stück Autobahnauffahrt lenkt um nach 20 m zu wenden und wieder zurück auf die alte Strecke zu routen, statt den direkten Weg zu nehmen (weil eine Ampel das Ergebnis beeinflusst?).
Voraussetzung: die Route ist ohne Lücke(n).
PTv2 Route: falsche 'role' = '%s' Fehler
PTv2 Route: falsche Reihenfolge von 'stop_position', 'platform' und 'way': 'stop_position'/'platform' müssen vor allen 'way' kommen Fehler
PTv2 Route: falsche Reihenfolge von 'stop_position', 'platform' und 'way': 'stop_position'/'platform' müssen vor allen 'way' kommenPTv2 Route: falsche Reihenfolge von 'stop_position', 'platform' und 'way': 'stop_position'/'platform' müssen vor allen 'way' kommen
PTv2 Route: fehlende Angabe '%s' = 'yes' an 'public_transport' = '%s' Fehler
PTv2 Route: hat eine Lücke, besteht aus %d Segmenten. Die Lücke ist bei dem Weg Fehler check-sequence
PTv2 Route: hat eine Lücke, besteht aus %d Segmenten. Die Lücke ist bei dem WegPTv2 Route: hat eine Lücke, besteht aus %d Segmenten. Die Lücke ist bei dem Weg
PTv2 Route: leere 'role' Fehler
Route existiert im geladenen Datensatz, 'ref' ist aber nicht gesetzt: %s Fehler Die Route ist Member dieses Route-Masters, hat aber keinen 'ref' tag (%s = ID der Route). Siehe Abschnitt: "ÖPNV Linien ohne 'ref'-Wert" der Auswertung.
Route hat einen 'network' = '%s' Wert, der Teil ist von 'network' = '%s' des Route-Masters: %s Anmerkungen
Route hat einen 'network' = '%s' Wert, der als nicht relevant betrachtet wird: %s Anmerkungen
Route hat einen 'operator' = '%s' Wert, der als nicht relevant betrachtet wird: %s Fehler
Route hat einen 'route' = '%s' Wert, der als nicht relevant betrachtet wird: %s Fehler
Route hat einen anderen 'network' = '%s' Wert als der Route-Master 'network' = '%s': %s Fehler
Route hat einen anderen 'operator' = '%s' Wert als der Route-Master 'operator' = '%s': %s Fehler
Route hat einen anderen 'ref' = '%s' Wert als der Route-Master 'ref' = '%s' - das sollte vermieden werden: %s Anmerkungen Diese Prüfung ist momentan deaktiviert.
Route hat einen anderen 'route' = '%s' Wert als der Route-Master 'route' = '%s': %s Fehler
Route hat unpassenden 'ref' = '%s' Wert: %s Fehler
Route ist nicht Element des Route-Masters: %s Fehler
Route ist unter der 'ref' = '%s' möglicherweise in einem anderen Abschnitt oder im Abschnitt 'Nicht eindeutig zugeordnete Linien' gelistet: %s Fehler
Route mit Relation(en) Fehler
Route mit nur einem Node Fehler
Route mit nur einem Way Fehler
Route ohne Node(s) Fehler
Route ohne Way(s) Fehler
Route wurde im geladenen Datensatz nicht gefunden: %s Fehler
Route-Master existiert im geladenen Datensatz, 'ref' ist aber nicht gesetzt: %s Fehler
Route-Master hat mehr Routen als im Datensatz tatsächlich passend gefunden wurden (%d gegenüber %d) Fehler Dieser Route-Master hat mehr Route-Relationen als hier aufgelistet sind (Route ohne oder mit anderem 'ref'/'route'/'network' tag?).
Route-Master hat unpassenden 'ref' = '%s' Wert: %s Fehler
Route-Master hat weniger Routen als im Datensatz tatsächlich passend gefunden wurden (%d gegenüber %d) Fehler Dieser Route-Master hat weniger Route-Relationen als hier aufgelistet sind (Route(n) nicht im Route-Master eingetragen?)
Route-Master ist mit undefiniertem 'ref' Wert möglicherweise im Abschnitt 'ÖPNV-Linien ohne 'ref'-Wert' gelistet: %s Fehler
Route-Master ist unter der selben 'ref' = '%s' möglicherweise in einem anderen Abschnitt oder im Abschnitt 'Nicht eindeutig zugeordnete Linien' dieser Auswertung gelistet: %s Fehler
Route-Master mit Node(s) Fehler Die Route-Master Relation enthält Haltestellen oder Bahn-/Bussteige.
Route-Master mit Relation(en) ungleich 'route' Fehler Der Route-Master enthält Relation(en) ungleich Typ 'route'.
Route-Master mit Way(s) Fehler Die Route-Master Relation enthält Straßen/Schienen/Bahn-/Bussteige/...
Route-Master ohne Route(n) Fehler Die Route-Master Relation enthält keine Routen (sollte bei der verwendeten Overpass-API Abfrage nicht passieren, siehe: "Die Overpass-API-Abfrage liefert nicht").
Route: '%s' = '%s' der Haltestelle sollte durch 'route_ref' = '%s' ersetzt werden Anmerkungen check-route-ref
Route: '%s' = '%s' der Haltestelle sollte gelöscht werden, 'route_ref' = '%s' existiert Anmerkungen check-route-ref
Route: 'highway' = 'bus_stop' ist auf einem 'way' gesetzt. Dieses Tag ist nur auf Nodes erlaubt! Fehler check-bus-stop
Route: 'ref' = '%s' der Haltestelle sollte die Referenz der Haltestelle sein, enthält aber die 'ref' = '%s' dieser Route %s Anmerkungen check-route-ref
Route: 'route_ref' = '%s' der Haltestelle enthält das Trennzeichen ';' (Semikolon) mit umgebendem Leerzeichen Anmerkungen check-route-ref
Route: 'route_ref' = '%s' der Haltestelle enthält nicht den 'ref' = '%s' Wert dieser Route%s Fehler check-route-ref
Route: 'route_ref' = '%s' der Haltestelle: ',' (Komma) als Trennzeichen sollte durch ';' (Semikolon, ohne Leerzeichen) ersetzt werden Anmerkungen check-route-ref
Route: eingeschränkte Befahrbarkeit (%s) auf Weg ohne Angabe von 'psv' = 'yes', '%s' = 'yes', '%s' = 'designated', oder ... Fehler check-access
Route: eingeschränkte Befahrbarkeit an Barriere (%s) ohne Angabe von 'psv' = 'yes', '%s' = 'yes', '%s' = 'designated', oder ... Fehler check-access
Route: fehlerhafte Beschränkung (%s) auf Weg. Gegebenenfalls mappen als '%s'='no' und '%s'='yes' Fehler check-access Die Beschränkung stimmt nicht mit den Map Features überein. Bitte konsultiere das OSM Wiki: https://wiki.openstreetmap.org/wiki/DE:Map_Features#Beschränkungen
Route: unklare Befahrbarkeit (%s) auf Weg Anmerkungen check-access Für einen Weg ist eine bedingte Befahrbarkeit definiert. PTNA wird diese Bedingung nicht auswerten.
Beispiel: 'psv:conditional' = 'yes @ (Mo-Fr 05:00-22:00)'.
Den Wert der bedingten Befahrbarkeit bitte gegebenenfalls manuell auswerten und entscheiden ob eine Korrektur notwendig ist oder nicht.
Route: verdächtige %s zusammen mit 'highway' ungleich 'construction' auf Weg Anmerkungen check-access Der Schlüssel 'construction' ist gesetzt und der Schlüssel 'highway' hat nicht den Wert 'construction'. Baustellen an Straßen und Wegen werden üblicherweise durch die Kombination von 'highway' = 'construction' und 'construction = 'xxx' gekennzeichnet, wobei 'xxx' dem vorherigen Wert des Schlüssels 'highway' entspricht. Sind die Bauarbeiten beendet, erhält der Schlüssel 'highway' seinen ursprünglichen Wert zurück oder einen anderen Wert, dabei wird dann der Schlüssel 'construction' gelöscht. Manchmal wird vergessen, den Schlüssel 'construction' zu löschen, was als Fehler angesehen werden kann.
Beispiel: 'construction' = 'primary' und 'highway' = 'primary' anstatt 'highway' = 'construction'.
Überprüfe ob die Bauarbeiten beendet sind oder nicht. Wenn ja, lösche den Schlüssel 'construction'. Wenn nein, prüfe, welcher Wert für den Schlüssel 'highway' passend ist.
Weitere Analyse wird übersprungen ... Fehler Der Fehler bezieht sich auf: 'Fehler in den Inputdaten: nicht genügend Daten für 'nodes'' und 'Fehler in den Inputdaten: nicht genügend Daten für 'ways''. Ohne Daten für Ways und Nodes macht eine weitere Analyse dieser Routen-Relation keinen Sinn.

Der Code

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

ptna

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Siehe: ptna auf GitHub

ptna-networks

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Siehe: ptna-networks auf GitHub

ptna-www

Lorem ipsum dolor sit amet, consectetur adipisici elit, …

Siehe: ptna-www auf GitHub