You are not logged in.

#1 2019-08-02 11:46:33

Pedja
Member
From: Užice, Serbia
Registered: 2012-03-22
Posts: 458
Website

Otvoreni podaci: Autobuska stajališta i linije

Na sajtu Portal otvorenih podataka su se pojavili prvi skupovi podataka o autobuskim linijama.

Za sada su objavljeni podaci za Niš i Kraguejvac. Najavljeno je i za druge gradove.

https://data.gov.rs/sr/search/?q=GTFS

Podaci su u GTFS formatu: https://developers.google.com/transit/gtfs/


Ovde ima dokumentacije i alata za povezivanje GTFS podataka i OSM
https://wiki.openstreetmap.org/wiki/Gen … cification

Last edited by Pedja (2019-08-02 13:41:53)

Offline

#2 2019-08-02 13:15:40

Pedja
Member
From: Užice, Serbia
Registered: 2012-03-22
Posts: 458
Website

Offline

#3 2020-07-20 23:12:14

Branko Kokanovic
Member
Registered: 2017-10-02
Posts: 120

Re: Otvoreni podaci: Autobuska stajališta i linije

Prvi korak bi bio popuniti "gtfs_id":
https://wiki.openstreetmap.org/wiki/Key:gtfs_id

Pošto podatke već imamo u "ref" tagu, ima smisla da bulk prebacimo to u "gtfs_id". Ako se niko ne buni, uradio bih inicijalno ovu promenu u narednih par dana. Onda možemo da vidimo šta dalje.

Evo query sa kojim planiram da ovo izvedem:

Sophox query

Offline

#4 2020-10-17 19:53:29

Branko Kokanovic
Member
Registered: 2017-10-02
Posts: 120

Re: Otvoreni podaci: Autobuska stajališta i linije

@sloba markovic Podaci se nisu promenili već par meseci (od postavljanja u junu) - da li uopšte ima smisla oslanjati se na ovakve podatke na dalje? Pretpostavljam da je bilo nekih promena u ovom periodu i da samo nije osveženo iz APEX-a? Jel imate nekih informacija?

Offline

#5 Yesterday 22:27:35

Branko Kokanovic
Member
Registered: 2017-10-02
Posts: 120

Re: Otvoreni podaci: Autobuska stajališta i linije

Ovako, izukao sam sve stanice koje ne postoje u OSM-u. Ima ih preko 900. Neke od njih samo nemaju "ref", neke uopšte ne postoje. Možete naći CSV ovde i GeoJSON fajl ovde. GeoJSON je lako može videti tako što odete na geojson.io i učitate ga odatle. CSV može iz JOSM-a ili QGIS-a npr., cimajte ako treba pomoć.

Da li ima neko ko želi da pomogne da bar ovih 900 nedostajućih stajališta popravimo? Treba učitati GeoJSON i onda - ili napraviti stanicu ili joj dodati "ref". Dosta je pipav posao i treba znati teren dobro da bi se ovo radilo, jer možda ima grešaka u GTFS-u od Apexa, a možda je i bilo izmena od kada je ovo izašlo u junu? Ovo nam je preduslov, jer kad imamo sve stanice, možemo dalje da:
1. dodamo gtfs_id
2. da vidimo šta je od stanica loše uneto, šta postoji, a ne treba da postoji, šta je previše udaljeno...
3. popravimo/dodamo rute i master rutu


Za referencu i ako neko želi da nauči nešto, evo kako sam ovo uradio: uzeo sam program https://github.com/fitnr/gtfs-sql-importer/, uneo ovaj GTFS u bazu, uneo Srbiju u bazu (preko osm2pgsql) i sa ovim queryjem[1] izvukao sve stanice koje ne postoje u OSM-u.

[1]

WITH belgrade_osm_stops AS (
	-- filtira samo Beograd
	SELECT *
	FROM planet_osm_point
	WHERE (highway='bus_stop' or railway='tram_stop')
	  and st_transform(way, 4326) && ST_MakeEnvelope(20.1, 44.63, 20.77, 45.01, 4326)
),
joined as (
	-- spaja sa GTFS-om
	SELECT *, st_distance(ST_Transform(stops.the_geom::geometry, 3857), osm_stops.way) as distance
    FROM gtfs.stops stops
    LEFT JOIN belgrade_osm_stops osm_stops on stops.stop_id=osm_stops.ref
),
missing_stops AS (
	-- filtrira samo ove sto ne postoje
	SELECT stop_id, stop_name, the_geom AS gtfs_geo
	FROM joined
	WHERE distance IS null
),
stops_with_routes AS (
	-- spaja sa trip i routes da dohvatimo koje sve linije idu ovuda
	SELECT ms.stop_id, ms.stop_name, ms.gtfs_geo, string_agg(DISTINCT r.route_short_name, ',') AS routes
	FROM gtfs.trips t
	INNER JOIN gtfs.stop_times st ON st.trip_id = t.trip_id
	INNER JOIN missing_stops ms ON ms.stop_id = st.stop_id
	INNER JOIN gtfs.routes r ON t.route_id = r.route_id
	GROUP BY ms.stop_id, ms.stop_name, ms.gtfs_geo
)
SELECT stop_id, stop_name,  ST_X(gtfs_geo) AS long, ST_Y (gtfs_geo) AS lat, routes
FROM stops_with_routes

Offline

Board footer

Powered by FluxBB