Das ist eine PHP-basierte Analyse von GTFS-Daten, wie sie von Verkehrsverbünden bereitgestellt werden.
Derzeit ist das (nur) der MVV (Münchner Verkehrs- und Tarifverbund), weitere werden folgen.
Schaut’s euch das mal an - Feedback und weitere GTFS-Quellen sind willkommen.
Gruß,
Toni
P.S.: einige Abfragen dauern derzeit noch recht lange (bis zu 50 Sekunden). Das sind die Abfragen nach den Details einer Linie. An einer Optimierung [1], durch Reduzierung der Datenmenge arbeite ich gerade.
für das gpx könnte ich dir auch eine Funktion in JavaSkript schreiben Wenn du vielleicht noch die Classen-Namen eindeutiger machst (results-name)… die Fehler im Html noch raus machst (
Ich werde die mal runterladen und integrieren.
Die Menge ist sehr überschaubar, keine Performanceprobleme zu erwarten - anders als beim VRR (mehr Daten als MVV).
Aber ich muss mich mal auf das Aggregieren konzentrieren, 50 Sekunden für die Abfrage der Varianten vom 210er ist zu viel.
Einen großen Teil der dabei immer wieder zu machenden Arbeit kann ich vorab einmalig machen.
Die Aggregierung kommt voran, die Anzahl der “trip_id” reduziert sich beim MVV von ~37.000 auf ~2.400 repräsentative ‘trip_id’ - das dauert auf meinem PC derzeit 20 Minuten.
Das dürfte die Web-Seite anschließend aber deutlich beschleunigen … ich arbeite noch an den Feinheiten.
Die Arbeiten an der Aggregierung, dem Reduzieren der Datenmenge sind fertig.
Einige (nicht alle) Abfragen laufen nun um den Faktor 500 schneller, im 0.0x Sekundenbereich :)
Z.B. Suche nach den Varianten des 210er: von ~ 30 Sekunden auf 0.03 - 0,06 Sekunden.
Hier die Details:
* Dauer der Aggregierung auf dem PC = 1276 Sekunden ~ 21 Minuten
* Größe der SQLite-DB vorher = 56659968 Bytes ~ 54 MBytes
* Größe der SQLite-DB nachher = 5660672 Bytes ~ 5,4 MBytes
* Anzahl der Linien vorher = 623
* Anzahl der Linien nacher = 278 (solche, die ab heute oder in der Zukunft gültig sind)
* Anzahl der Fahrten vorher = 37236
* Anzahl der Fahrten nachher = 2330 (die sich nur durch den Weg, nicht mehr durch die Abfahrtszeiten unterscheiden)
Und dabei kommt mir die Idee: Ich könnte noch untersuchen:
welche Variante Teilroute welcher anderen Variante(n) ist.
welche Variante ein merkwürdiges Ende “nimmt”
** Da gibt es beim 210er des MVV eine, wo der Bus an der Endhaltestelle wendet, dabei aber keine Passagiere mitnimmt (zumindest im online-PDF-Fahrplan nicht sichtbar). Das sieht eher aus wie ein Fahranweisung für den Busfahrer.
Das könnte ich versuchen zu erkennen und im Kommentar abzulegen.
GTFS-Aggregation für den VRR läuft und läuft und läuft … seit 2 Stunden. DB ist 6 mal größer als die vom MVV und die hat schon 20 Minuten benötigt.
KVV ist auch bei PTNA-Analyse noch nicht drin, das kann ich nachholen.
VBB ist zwar drin, aber die Liste der erwarteten Linien ist so gut wie leer, d.h. derzeit nur eine IST-Analyse.
GTFS ist nicht gleich GTFS ist nicht gleich GTFS … jeder interpretiert den Standard wohl ein wenig anders.
GTFS-Aggregation für den VRR (Sqlite-DB 330 MB!) erstmal nach 6 Stunden Laufzeit abgebrochen, ein paar printf() eingebaut um zu sehen, ob der überhaupt was sinnvolles tut, neu gestartet.
Miche hat mir ein JavaScript geschickt, mit dem man Routen in GPX ausgeben kann …
Die Liste der existierenden Linien kann man ja für PTNA aus GTFS generieren, das mach’ ich dann auch mal …