Welche ÖPNV Routen(-Varianten) mappen? Best Practice?

Immer mal wieder schaue ich die Busrouten des Aachener Verkehrsverbundes durch, ob da etwas verbessert und aktualisiert werden muss. Dazu nutze ich meistens das Tool PTNA und die GTFS-Daten des Verkehrsverbundes. Immer öfter scheitere ich aber schon an der Frage, was eigentlich der gewünschte Zielzustand ist und eng damit zusammenhängend, was überhaupt falsch ist. Ich habe versucht, im Wiki eine Diskussion darüber anzuregen um eine Leitlinie zumindest für den AVV zu erstellen, aber auf der dortigen Diskussonsseite ist schon länger keine Aktivität mehr zu verzeichnen und daher gab es auch jetzt keine Reaktion. Ich will daher hier fragen, ob es etablierte best-Practice Richtlinien gibt, oder ob sich solche hier zumindest sinnvoll erarbeiten lassen. Ich werde dazu auch mehrere Ideen skizzieren

Zum Problem:

Buslinien haben in der Realität meist dutzende Varianten der Fahrwege. Selten scheint es sich etabliert zu haben, diese vollständig 1:1 zu mappen. Die Realität sieht also in der Regel so aus, dass ich zu einer Buslinie ca eine Hand voll OSM Routen finde und ein bis zwei Dutzend zugehörige Routen in den GTFS-Daten des Verbunds. Oft lassen sich die OSM Routen 1:1 auf eine GTFS-Route abbilden und damit dann kleinere Fehler korrigieren. Oft geht das aber nur teilweise, so dass OSM-Routen ohne Entsprechung übrig bleiben. Sind die dann falsch? Nach gängiger mapping-Praxis nicht unbedingt, wie ich später erläutern werde.

Welche legitimen Gründe gibt es Routen wegzulassen oder vielleicht sogar zu verändern, die man als allgemeine Regel aufstellen könnte? Ein Versuch:

  1. Routen sind Teilrouten von längeren Routen: Es erscheint zunächst legitim, Teilrouten einfach wegzulassen, sind sie doch z.B. in der Stadt Aachen meistens seltene Kurzfahrten der Hauptvarianten. Nicht mehr ganz so eindeutig wird es dann wenn man bedenkt, dass es oft auch den umgekehrten Fall gibt: Die langen Fahrten sind seltene Verlängerungen der “Normalfahrten”. Hier stellt sich zum ersten mal die Grundsatzfrage, die uns mehrmals begegnen wird: Was wollen wir erreichen: Wollen wir zumindest jeden (Teil-) Fahrweg irgendwie erfassen, so dass auf der ÖPNV-Karte dann auch überall wo ein Bus fährt eine rote Linie auf der Straße ist. Oder ist es vielleicht sogar kontraproduktiv bei Varianten, die weniger als 10% der Fahrten ausmachen?

  2. Gerade im ländlichen Raum ist es leider oft so, dass diverse Fahrtvarianten mehr oder weniger gleichberechtigt nebeneinander liegen. Das macht die Sache natürlich grundsätzlich schwieriger. Hierbei scheinen manchmal mehrere Varianten zusammengefasst worden zu sein um in Summe alle Varianten mit weniger Routen abzudecken. Die Idee dahinter ist sicherlich verständlich, führt aber dazu, dass solche Relationen praktisch nicht mehr wartbar sind. Kein Tool das ich kenne, kann beurteilen, ob in so einer Relation Sachen fehlen oder zu viel sind. Daher bin ich definitiv für die Regel: Jede Relation muss eine 1:1 Entsprechung in den GTFS-Daten haben. Wie will man sonst erkennen, was nicht stimmt?

  3. Wir haben ja über die GTFS-Daten auch die Anzahl der einzelnen Fahrten. Kann man da vielleicht eine allgemeine Regel herleiten der Art: Es müssen mindestens 80% der Fahrten enthalten sein? Dürfte aber auch nicht ganz einfach zu erfassen sein.

Wie seht ihr das? Habt ihr Regeln oder Vorschläge aus eurer Region die helfen könnten?

Ich rate davon ab, jede einzelne Teilroute in OSM zu erfassen, nur um am Ende Tools zufriedenzustellen oder eine Übereinstimmung mit GTFS-Daten herzustellen. Die Erfassung und das Aktualisieren von ÖPNV-Routen ist ein nicht zu unterschätzender Aufwand. Mindestens einmal im Jahr gibt es einen Fahrplanwechsel, dazu kommen langdauernde Baustellen, die eine Umlegung der Routen in OSM nötig machen. Letzteres führt dann dazu, dass du u.U. duzende Relationen allein bei einer Linie anfassen musst.

Meiner Meinung nach reicht es, wenn man in OSM erkennen kann, wo welche Linie in der Regel fährt. Dass Linie 123 montags und mittwochs an Schultagen zusätzlich Haltestelle XY bedient, sollte für OSM und den Ottonormal-User keine Rolle spielen. Für diese Spezialfälle gibt es immer noch den Linienfahrplan und die Auskunftsmedien der Verkehrunternehmen bzw. -verbünde. Die sind dann auch (hoffentlich) aktuell.

3 Likes

Natürlich nicht um das Tool zufriedenzustellen, aber wie willst du denn sonst die Sache aktuell halten, wenn man das Tool de-facto vielfach nicht nutzen kann? Offenbar läuft das ja in der Region momentan so, dass Fahrplanänderungen mehr oder weniger systematisch von einzelnen Personen da reingeflickt werden, aber offensichtlich entsprechen viele Relationen nicht mehr der Realität, ohne dass sich das genau beziffern ließe. Wie gesagt: Wenn man nach allgemeinen Regeln eine representative Teilmenge machen könnte wäre ich sofort dabei. Sehe ich nur leider momentan nicht.

@Trockennasenaffe Im Vergleich zu Deinem Anliegen und Vorhaben dürfte der Job von Sisyphos - der mit große Weisheit gesegnet war - ein Kinderspiel gewesen sein. Und der rollt mutmaßlich erfolglos heute! noch den Stein den Berg hinauf… :wink:

Du wirst nie zielorientiert bezüglich Deines Anliegens irgendwo ankommen. Und in Aachen schon mal garnicht …

1 Like

Mmh, was möchte ich mit ÖPNV-Mapping in OSM erreichen?

Fallbeispiel:

  • ich möchte auf einer Karte sehen, welcher Bus durch welche Straße fährt
    :ballot_box_with_check: das bekomme ich schon mit PTv1 mit nur einer Routen-Relation: hin Aachen, Innenstadt im Transport Map Layer
    :x: ich sehe nicht, welcher Bus an welcher Haltestelle hält oder einfach dran vorbei fährt

  • ich möchte wissen, welche Bus an welcher Haltestelle hält
    :ballot_box_with_check: das bekomme ich auch noch mit PTv1 hin, wenn ich mir die Daten anschaue
    :x: ich sehe nicht und kann mit PTv1 auch nicht ermitteln, welche Haltestelle als nächstes angefahren wird

    • normale Busse, die an jeder Haltestelle halten versus
    • Expressbusse, die die selbe Strecke fahren aber nur an jeder 3. Haltestelle halten
    • Regionalbusse, die von außerhalb in die Stadt kommen, nur bei wenigen städtischen Haltestellen halten, dort aber nur zum Aussteigen (gibt es in PTV1 ein “stop_exit_only”?)
  • ich möchte wissen, ob ich von z.B. Haltestelle Kehl am Rhein (mit der Tram D) zum Hauptbahnhof nach Straßburg kommen kann
    :ballot_box_with_check: das bekomme ich nur mit PTv2 hin, Trams sehe ich auf der Transport Map Karte eh nicht, ich muss also in die Daten schauen, PTv2 liefert mir einzelnen Fahrstrecken
    :x: ich kann nicht ermitteln, wann auf dieser Strecke die nächste Fahrt möglich ist

    • ich kann hierbei echte Teilstrecken weg lassen, sollte aber alle sonstigen Varianten erfassen
      • Varianten: Am Wochenende und spät abends nicht durchs Gewerbegebiet, Haltestelle auslassend, anderer Halt an der Kreuzung um die Ecke, teilweise abweichender Fahrweg (DE-BY-MVV Bus 221)
    • OsmAnd erlaubt mir zumindest die Strecke zu sehen: Klick auf die Haltestelle “Kehl”, “Tram D” auswählen, Liste der Stationen anschauen (selber genutzt als die Eisenbahner in Frankreich gestreikt hatten)
  • ich möchte wissen, wann ich von Kehl am Rhein als nächstes zum Hauptbahnhof nach Straßburg fahren kann
    :grey_question: wäre machbar mit ‘opening_hours’ (oder so: Siehe Busy-Hours) oder gtfs:route_id/gtfs:trip_id:* an den PTv2-Route-Relationen

    • aber ist das noch wartbar, bzgl. dem was du geschrieben hast (Anzahl Varianten, …)

Kurz und gut!? Bei DE-BY-MVV ist es nicht einheitlich:

  • einige Stadtbusse haben nur 2 von vielen Varianten als PTv2 gemapped
  • ein Regional-Expressbus hat alle 28 Varianten gemapped, ist schwer wartbar
  • in der Regel haben wir bei den Regionalbussen eine bessere Erfassung bzgl. Varianten

Ja, die Grenze zwischen Enthusiasmus und Masochismus ist fließend!

Mann sollte aber auch nicht jede GTFS-Änderung einer Linie in OSM nachziehen, zumal wenn es sich im kurzzeitige Baustellenumleitungen handelt. Aus diesem Grund übernimmt PTNA die GTFS-Daten auch nur ein Mal pro Monat. DE-BY-MVG macht fast täglich Updates von GTFS-Daten - was ja für Auskunftssysteme mit vollautomatisierter Datenübernahme wünschenswert und machbar ist, nicht aber für OSM.

Die allermeisten Fahrpländerungen der letzten Jahre habe ich basierend auf Veröffentlichungen der Verkehrsbetriebe und der Fahrpläne “reingeflickt”. Dazu habe ich versucht, die Linienverläufe anhand der Fahrpläne sinnvoll(!) in OSM zu erfassen. Gerade im Kreis Düren und Kreis Heinsberg waren die Daten völlig veraltet. Das hat ziemlich viel Zeit gekostet, PTNA und OpenData des AVV gab es noch gar nicht oder stand noch am Anfang. Ich versuche auch weiterhin die Daten aktuell zu halten. Ja, das ist vielleicht nicht alles richtig, aber die Aussage dass

entsprechen,

finde ich überheblich.

Letztendlich geht es mir unter anderem darum eine gleichbleibende Qualität des gemappten ÖPNVs sicherzustellen und um das zu erreichen am besten über eine automatisch erstellte Liste sehen zu können: Wo ist es schon gut und wo muss man noch anpacken? Das scheint aber schon kaum zu lösen zu sein.
Wenn ich jetzt weiter fragen würde: Wozu brauche ich die Relationen, würde mich das wahrscheinlich in eine tiefe sinnkriese stürzen :wink: Letztendlich geht es mir darum, in meinem Interessensgebiet etwas von allgemeinem Nutzen beizutragen. Ich merke allerdings immer mehr: Das wichtige ist die Infrastruktur. Hier gibt es viele Spannende neue Anwendungen, wie Indoor-Routing zu umsteige ggf auch barrierefrei, wo an auf eine hohe Qualität der Daten angewiesen ist. Beim Versuch, die IFOPS an die Haltestelle zu taggen habe ich dann aber direkt wieder ein Henne-Ei Problem da mir nur die Koordinaten oft nicht sagen, was die richtige ist, hier aber die Linenvarianten super hilfreich sind. Die Routen geben den Haltestellen eine Richtung die dann eine korrekte Zuordung ermöglichen, weil Busse ja immer am rechten Rand halten. So greift dann doch wieder alles ineinander und alles ist wichtig.

Hast du Langeweile, stehst du jeden Tag vor der Frage: “Was mache ich heute?”

“ÖPNV-Mapping in OSM!” Die Lösung Deiner Probleme! Beugt Demez vor, hält dir geistig fit!

5 Likes

Sorry, das letzte was ich damit aussagen wollte ist, deine Arbeit abwerten zu wollen. Sicherlich ist die Qualität alles in allem gar nicht so schlecht. Wenn du sagst, du willst das als örtlicher Experte mit deinem Wissen so weiter machen, ist da ja auch nichts gegen zu sagen, meines Erachtens ist es immer sinnvoll zu versuchen, das zu vereinfachen, oder zumindest irgendwie öffentlich festzuhalten. Man muss ja vielleicht auch mal an die Zukunft denken. Aber ich will auch definitiv nicht gegeneinander arbeiten, dann lasse ich es lieber sein.

Für den ÖPNV muss man auf viele Arten Masochistisch veranlagt sein, ich glaube das bringe ich so oder so mit.

:smiley: Ich weiß ja nicht, wie es bei anderen Verkehrsunternehmen so läuft, aber hier im AVV im Busverkehr ist kein Verkehrsunternehmen in der Lage, Umleitungen für wenige Tage oder Wochen in die Fahrplandaten einzupflegen. Das passiert nur bei Umleitungen die viele Monate, wenn nicht eine ganze Fahrplanperiode bestehen. Bei kürzeren Zeiträumen ist das höchste der Gefühle, dass der Fahrgast zu dem (ggf. falschen ) Ergebnis seiner Verbindungsauskunft noch eine Text dazu bekommt wo drin steht, welche Haltestellen gar nicht angefahren werden.

Da habe ich natürlich auch nichts gegen. :wink:

Bei einigen Linien des Münchner Stadtverkehrs existieren im GTFS z.T. mehrere Einträge für die selbe Liniennummer mit unterschiedlichen route_id und Gültigkeitszeiträumen (Beispiele route_short_name/ref=145):

  • route_id = mvv-145-1, start=2024-12-15, end=2025-12-12
    • Standardfahrplan für das gesamte Jahr (Ausnahmen: Ende Mai - Mitte Juni, August - Mitte September)
  • route_id = mvv-145-2, start=2025-05-30, end=2025-06-15
    • Baustellenfahrplan Ende Mai - Mitte Juni mit Umleitungen
  • route_id = mvv-145-3, start=2025-08-01, end=2025-09-13
    • ausgedünnter Fahrplan während der Sommer-Schulferien, Routen wie Standardfahrplan

Auf diese Weise können kurzzeitige Veränderungen kurzfristig (tägliche GTFS-Updates) gepflegt werden.

Ob das mit den 3 route_id für den selben route_short_name zu GTFS-Best-Practice passt?
Auskunftssystem sollen Auskünfte nicht nur für die nächsten Stunden liefern können, sondern auch länger im Voraus - das geht mit diesem Ansatz.

Aus OSM-Sicht würden wir nur die mvv-145-1 mappen, die ist langfristig.
Aber wie sollen wir das (automatisiert) erkennen?

PTv2 erlaubt dir ja erstmal, alle Varianten zu mappen. Ich habe mich auf sinnvolle Varianten beschränkt. Aber im Prinzip liegt es an dir, was du an Zeit investieren willst. Ich habe meist so Sondergurken wie die letzte Fahrt hört drei Haltestellen eher auf weg gelassen.

Ich mappe nur die Hauptrouten… ansonsten landet man wohl nur in der Klapse… :see_no_evil: :face_with_hand_over_mouth: :joy:

Da kann man mich wohl wirklich als einen Masochisten, da ich so viele Busrouten mit ihren Variationen im RNN-Gebiet eingetragen habe.

Wichtig für mich ist aber, dass man die Variationen unterscheiden kann d.h. es Unterschiede nicht nur zwischen den Verläufen sondern auch Betriebszeiten und Fahrtdauern gibt. Fahrten, die teilweise verkürzt sind, trage ich deswegen nur ein, wenn ich diese von der längeren Route unterscheiden kann (Micromapping halt) und unterschiedliche Haltemuster schon mal gar nicht.

Manchmal muss man aber eben da so viele Varianten eintragen, da sie alle selber Hauptrouten sind (die RNN 660 ist ein gutes Beispiel, denn dort gibt es unterschiedliche Verläufe an Wochentagen und -ende, zu den Tageszeiten und dann noch die ganzen alternativen Verläufe).
Die einzigen Buslinien, die man selber nicht unbedingt eintragen müsste (aber machen kann), sind irreguläre Fahrten (bzw. state=alternate) wie Schulbuslinien, und werden sonst nur eingetragen, falls man diese gezielt absucht (was natürlich aufwändig ist) oder man zufällig daran vorbeikommt (ist mir auch schon mal vorgekommen).

Das ist spannend aber ich selber kann da wenig zu sagen Im Busverkehr im AVV gibt es so etwas grundsätzlich nicht, da werden alle Routen mit eine Gültigkeit für die ganze Fahrplanperiode ausgeliefert. Einen speziellen Ferienfahrplan gibt es in dem Sinne auch nicht, aber es gibt Fahrpläne für Wochentage ohne Schule, die kein Feiertag sind. Das wird aber wohl alles irgendwie anders abgefrühstückt und hat keinen Einfluss auf die Routen, wenn ich das richtig sehe.

Wenn es Hauptrouten gibt, die sich einfach identifizieren, und von den anderen abgrenzen lassen, finde ich das gut. Trifft leider hier auf viele Routen nicht zu.

Ich seh auch keinen Weg an GTFS vorbei… Die heutige Praxis ist zu träge und fehlerhaft (bzw. überholte nicht aktuelle Daten)

Für die Nutzung von GTFS, was kann man da machen…

  • IFOPS an den Platformen eintragen.
  • Fehlende Platformen nachtragen…

Damit kann man die Platformen denen im GTFS zuordnen… und auch Lageungenauigkeiten im GTFS ausgleichen…

Wenn man die Fahrweg Routen möchte wäre das jetzt schon möglich… aber es kann noch zu Fehlern kommen. Diese können durch…

  • stop_positionen… korrigiert werden eventuell mit IFOPS… (wenn der Fehler an der Platform auftritt)
  • externe/zusätzliche “Via” infos wenn der Fahrtweg zwischen den Platformen nicht richtig ist. (was nicht so oft vorkommt)

Gruß Michael

Ich hatte vor 10 Jahren (oder mehr?) in Erding mal alle Buslinien mit ihren Varianten als routen mit route_master erfasst. Eine einzige Buslinie kam da locker auf 7-11 Varianten und es hat mich Wochen gekostet, das alles einzutragen. Als alles fertig war, war ich stolz wie Bolle, aber an den Hauptverkehrspunkten gingen nun teil 60-70 Routen entlang, so dass Umbauten wie Kreisverkehr statt Kreuzung eben auch jedes Mal das Editieren all dieser Routen nach sich zog. Weil ich im Prinzip damals der einzige Mapper dort war, ging das noch ganz gut, aber es hat mich massiv verlangsamt und gehemmt, weil ich jedes Mal dachte „60 Busrouten anfassen? Och nöö“.

Wenn man irgendeine Möglichkeit finden könnte, das ganze anders zu erfassen, so dass eine Buslinie pro Richtung nur eine Route benötigt, wäre das eine extreme Erleichterung – beim Erfassen und Warten. So, wie es momentan ist, fasse ich Busrouten eigentlich nicht mehr an und erfasse auch keine neuen, weil ich persönlich finde, dass man damit zu viele Mapper vergrault, die Routen aktuell zu halten viel zu viel Arbeit verursacht und der Nutzen im Vergleich zum Aufwand einfach in keinem Verhältnis steht.

Wenn möglich, würde ich vermutlich auch erstmal nur die Hauptroute erfassen und den „Morgens den Schlenker zu den Kindergärten und Schulen, Mittags den Schlenker zum Gymnasium, spätnachmittags den Schlenker zur Therme und Abends den Schlenker ins Industriegebiet“ weglassen, wenn das sinnvoll geht.

2 Likes