Note per la creazione di un feed GTFS che mi servità per “alimentare” un’istanza di Open Trip Planner
Osservo la struttura dei file template da preparare; inizio dalle fermate (stops.txt):
- stop_id,stop_name,stop_desc,stop_lat,stop_lon,stop_url,location_type,parent_station
- S1,Mission St. & Silver Ave.,The stop is located at the southwest corner of the intersection.,37.728631,-122.431282,,,
- …
Creo una query overpass per estrarre i dati delle fermate della linea 4 nel formato standard come quello sopra (poi dovrò anche rinominare i nomi dei campi della prima riga).
Ottengo:
- ref,name,@lat,@lon header che modifico in…
- stop_id,stop_name,stop_lat,stop_lon
- 391,Roma / Torino,46.0487494,13.1928968
- 389,Roma / Novara,46.0474911,13.1972403
- 391,Roma / Torino,46.0485943,13.1937346
- 381,Via Lignano / Santa Caterina,46.0457494,13.1972616
- …
Purtroppo ad Udine il riferimento (in OSM tag “ref”) delle fermate ai due lati della strada è unico ed il GTFS non accetta duplicati come il qui sopra “391”.
Soluzione 1: ricorro ad excel “rimuovi duplicati” oppure a linux “sort | uniq” e rinuncio alle coordinate di una delle due fermate. |
Soluzione 2; ricorro ad un foglio elettronico, ordino per fermata, inserisco una nuova fermata dove applico la formula =SE(B1=B2;CONCATENA(B2;”a”);B2)
in questo modo ottengo, per esempio:
111,111,Via Cividale / Albona,46.0690524,13.2474479 111a,111,Via Cividale / Albona,46.0690138,13.2470564
Poi compilo i file “required”, secondo le direttive…
-
agency.txt una o più aziende erogatrici dei dati del servizio
-
stops.txt (vista sopra) fermate, ovvero singole posizioni dove i veicoli prendono e lasciano le persone
-
routes.txt percorsi di transito. un percorso è un gruppo di viaggi elencati ai passeggeri come singolo servizio
-
trips.txt viaggi per ogni percorso. un viaggio è una sequenza di due o più fermate (stops) che avvengono ad una data ora
-
stop_times.txt ora in cui un veicolo arriva e parte da una fermata per ogni viaggio; questa è la compilazione più onerosa, per la quale uso una mappa cliccabile a supporto
-
calendar.txt Date per gli ID del servizio, su orario settimanale. specifica quando un servizio inizia e finisce, come pure i giorni della settimana in cui è attivo
-
TODO come opzione si può creare un shapes.txt, utile a disegnare meglio i “trips”, altrimenti linee rette che collegano le fermate in sequenza; su produce un kml con umap e si elabora con kml2gfs . Non capisco perchè non possano essere disegnati come la parte pedonale, che usa i dati vettoriali OSM (forse son la versione non jar si può configurare)
Finito questo lavorone, si zippa tutto e si lancia nella stessa cartella…
java -Xmx512M -jar otp-0.14.0.jar –build C:\utils\otp –inMemory –securePort 8100
Io ho usato otp-0.14.0.jar, invece del “latest”, perchè quest’ultimo non era compatibile con in mio “vecchio” software Java (JVM)
讨论