PTNA: news for Public Transport Network Analysis

New code has been released now:

Time zones America/Managua, America/Winnipeg, US/Central were the first ones.

In nearly one hour, there will be US/Mountain, in 2 hours US/Pacific and in 3 hours US/Alaska.

Based on a PM by @donmac703, I just added a new feature to ptna for the analysis of public-transport data of osm

Empty role, but no expected values provided

This is related to an error message reporting a missing ‘role’ value for route relation members of type stop and platform.

It replaces the unhelpful error text

  • PTv2 route: empty ‘role’

by

  • PTv2 route: empty ‘role’. Consider setting ‘role’=‘platform’ or ‘role’=‘platform_entry_ony’ or ‘role’=‘platform_exit_only’

    • if the object (node, way, relation) has the tag 'public_transport'='platform'
    • a platform has been tagged with 'public_transport'='platform' but its 'role' in the route relation has not been set
  • PTv2 route: empty ‘role’. Consider setting ‘role’=‘stop’ or ‘role’=‘stop_entry_only’ or ‘role’=‘stop_exit_only’

    • if the object (node) has the tag 'public_transport'='stop'
    • a stop has been tagged with 'public_transport'='stop_position' but its 'role' in the route relation has been not set
  • PTv2 route: empty ‘role’. Unknown value for ‘public_transport’ on object (=‘%s’)

    • if the object (node, way, relation) has the tag 'public_transport' = any other value (=station, …)
    • bus stops are sometimes mapped as 'amenity'='bus_station' + 'public_transport'='station', which is, according to PTv2, wrong.
  • PTv2 route: empty ‘role’ and ‘public_transport’ is not set on object

    • if the object (node, way, relation) has no tag ‘public_transport’
    • I’ve seen some 'highway'='turning_circle' nodes as members of bus route relations, which is, according to PTv2, wrong
    • I’ve seen 'aerialway'='pylon' nodes as members of aerial way route relations, which is, according to PTv2, wrong
    • I’ve seen 'public_transport'='stop_area' relations as members of route relations, also wrong acc. to PTv2
  • PTv2 route: empty ‘role’ for a way object which has ‘public_transport’=‘stop_position’ set. For PTv2, ‘public_transport’=‘stop_position’ is allow on nodes only

    • if the object (way) has the tag 'public_transport'='stop'
  • PTv2 route: empty ‘role’ for a relation object which has ‘public_transport’=‘stop_position’ set. For PTv2, ‘public_transport’=‘stop_position’ is allow on nodes only

    • if the object (relation) has the tag 'public_transport'='stop'

Ich hätte da noch ein false positive:
Getaggt ist vehicle=no und school_bus=yes.
Meldung ist
Route: eingeschränkte Befahrbarkeit (‘vehicle’=‘no’) auf Wegen ohne Angabe von ‘psv’ = ‘yes’, ‘bus’ = ‘yes’, ‘bus’ = ‘designated’, oder …: Way 106148430, Way 106148432

Oops!

Tatsächlich habe ich 'school_bus'='yes' tief unten, versteckt als access tag gefunden und von dort aus bin ich auf Key:school_bus - OpenStreetMap Wiki gekommen.
PTNA sollte das also berücksichtigen (tut es derzeit überhaupt nicht), aber nur …

… wenn die Bus-Route-Relation das 'school'='yes' getagged hat, also als Schulbus erkennbar ist, oder?

ist sollte müsste könnte…
Von den 3 Linien in meinem Beispiel ist keine so markiert. Auch laut Fahrplan sind das ganz normale Linienbusse, bei denen jeder mitfahren darf.
Praktisch macht das außer Schülern keiner.

Ich wüsste auch nicht, wie man einen solchen Schülerverkehr von einem normalen Linienbus unterscheiden könnte. (In den Unterlagen, in denen der Landkreis die Linien beim Verkehrsverbund bestellt vielleicht?) Reine Schulbusse verkehren meist nur zu Privat- oder Sonderschulen und tauchen nicht in offiziellen Busfahrplänen auf.

In Deutschland ist es wohl wirklich einfacher das tagging der ways auf bus=yes bzw. psv=yes zu ändern.

Würde ich hier auf den beiden Straßen so machen.

Damals als ich Schüler war, stand das im Display des Busses oder hinten im Bus war ein entsprechendes Schild drin. Bzw. es stand auch im Fahrplan als Schulbus explizit drin. Mittlerweile gibt’s das in der Gegend nicht mehr. Keine Ahnung ob das Flächendeckend ist.

Würde ich ohne Ortskenntnis nicht machen. Es gibt Zusatzschilder die ausdrücklich Schulbus meinen…

Vielleicht drehen wir den Spieß einfach um: die OSM Bus-Relationen, die die beiden Straßen befahren (dürfen, laut Fahrplan: müssen) können somit mit 'school'='yes" getagged werden .
Ich habe PTNA diesbezüglich bereits angepasst.

Das wird jetzt sehr speziell. hatte ich befürchtet. ich sammle mal meine Gedanken.

Nach Erzählungen (Landkreis Limburg-Weilburg, 70er und 80er Jahre) gab es immer wieder Diskussionen, ob ein Schüler mit Schülermonatskarte, der nachmittags nach der Schule privat mit dem Bus in die Stadt fahren wollte nochmal einen Fahrschein kaufen muß oder ob die Monatskarte dafür gilt. Auch gab es des öfteren die Frage ob ein Erwachsener diese Busse nutzen darf, wenn er nun mal morgends etwas im Umfeld der Schule zu erledigen hat.

Spätestens seit der Gründung des RMV gilt hier: a) Die Monatskarte ist eine normale Monatskarte des RMV und gilt für alle Fahrten des RMV => kein extra Fahrschein.
und b) Die Busse fahren als ÖPNV und jeder mit einem gültigen RMV-Fahrschein darf einsteigen.

Exkurs begin
In Ffm (da kenne ich mich aus) gibt es Schulbusse in öffentlicher Trägerschaft (aber nicht im Rahmen des RMV - d.h. Fahrkarte hilft nicht!), wenn die nächste Grundschule mehr als 2 km entfernt ist oder wenn die zugewiesene weiterführende Schule am anderen Ende der Stadt liegt (oder wenn eine Sonderschule besucht wird). In solchen Fällen werden die Eltern gefragt, ob sie einen extra Schulbus (schnell, aber keine RMV-Karte) haben wollen oder ob sie die übliche RMV-Schüler-Monatskarte (Fahrt dauert länger, gilt aber auch für alle anderen Linien in der Stadt) akzeptieren.

Reine Schulbusse sind kein ÖPNV denn sie sind nicht öffentlich. Es ist (sicher weiß ich das für F, GG und HG) auch nicht sinnvoll solche Linien zu erfassen, da solche Busse ihren Weg ändern sobald ein mitfahrendes Kind nicht mitfährt (krank ist) oder der Stundenplan sich ändert.
Exkurs ende

Fazit: Es gibt spezielle Schulbusse aber Linien bei denen ein offizieller Fahrplan der RMV zu finden ist zählen da nicht dazu. Auch wenn dieser Bus Schulen andient, die evtl. AUCH von speziellen Schulbussen angesteuert werden.

Und was taggen wir jetzt?
Ich bin dagegen, normale ÖPNV-Linien als Schulbus zu taggen. Das sind sie nicht - es darf ja jeder mitfahren.
Und wenn die Schule von RMV-Linien angefahren wird, dann ist davon auszugehen, das die das auch dürfen. Dann kann der way nicht ausschließlich für Schulbusse zugelassen sein.
(Schülertransport ist Sache des Kreises - keine Ahnung wie das überall geregelt ist. aber beim RMV bin ich mir sicher.)

Genau: frei nach dem Motto: “warum einfach, wenn’s auch kompliziert geht!”

Machen wir’s noch ein wenig komplizierter? :wink: Nicht zu ernst zu nehmen.

Ich hatte 'school'='yes' gewählt für den Fall, dass der Bus auch Schüler:innen zu ihren Schule bringen (z.B. und nur außerhalb der Schulferien, nicht PH, … fährt).

Es gäbe da noch 'school'='designated', d.h. ausschließlich für den Schüler:innen-Transport.

Stimmt. Das müssen wir jetzt nicht weiter vertiefen.
Da wo ich unterwegs bin tritt das Problem nicht mehr auf. :innocent:
Sollte ich anderswo nochmal darüber stolpern dürfen sich dann lokale mapper mit meinen Hinweisen herumschlagen.

Based on a suggestion by @hybridOL, I introduced a new option: --roundtrip-distance= (default: 50)

If 'roundtrip'='yes' is set on a route relation, first and last platform stops are allowed to be xx metres appart.

This can be configured and will currently be applied on node and way platforms only. MP platform relations will be considered as well soon. In the real data I did not find any roundtrip route with MP platforms (relations).

@donmac703

Based on preparations made by @whammo, I added analysis support for public-transport data of osm to ptna

1 Like

Based on the discussion in What’s the best way to deal with and edit pre-PTv2 bus routes?, I just added analysis support of public-transport data of osm in ptna for

Based on a PM by @David_Crochet, I just added analysis support for public-transport data of osm to ptna for

Edit 2025-08-20 09:16:00 UTC
I just added gtfs feed data of FR-NOR-Hobus. This one lists an additional bus route ‘N’ compared to FR-NOR-Atoumod.

Based on a PM by @mga_geo, I just added analysis support for public-transport data of osm to ptna for

Based on a PM by @mcliquid, I just added analysis support for public-transport data of osm to ptna for

Edit: fixed link to TILP

1 Like

Based on request and code snip-let by @mga_geo, I added two new small features to ptna for gtfs

  • add GTFS ‘stop_id’ to pop-up for stop when displaying a GTFS trip
  • show direction of GTFS shape - if shape data is available
    • when displaying a GTFS trip
    • when displaying the comparison between GTFS trip and OSM route

New outputs

  • show GTFS trip

  • compare GTFS trip with OSM route

Old outputs

Thanks Marc !

5 Likes

Based on a PM by @mga_geo, I just added analysis support of public-transport data of osm to ptna for

Based on request by @mga_geo I just renamed all occurrences of FR-BRE-CORALIE to FR-BRE-Coralie