Külső adatok (GTFS, UIC, boltok) félautomatikus importálása az OpenStreetMap-be

Hasonló dokumentumok
Intelligens közlekedési rendszerek (ITS)

Téradatokkal kapcsolatos elemzések és fejlesztések a FÖMI Térinformatikai Igazgatóságán

QGIS. Tematikus szemi-webinárium Térinformatika. Móricz Norbert. Nemzeti Agrárkutatási és Innovációs Központ Erdészeti Tudományos Intézet (NAIK ERTI)

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Irányító és kommunikációs rendszerek III. Előadás 13

Adatbázis rendszerek 7. előadás State of the art

MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM KÖZLEKEDÉSMÉRNÖKI ÉS JÁRMŰMÉRNÖKI KAR

Szabványos adatstruktúra a közösségi közlekedés számára

Nyílt forráskódú tapasztalatok a FÖMI Térinformatikai Igazgatóságán

Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió

Tartalomjegyzék. 1. Rövid áttekintés Az alkalmazás bemutatása Vonalak Részletes lista... 5

Zimbra levelező rendszer

Térinformatikai programozás Pythonban

Gyakorlatok. VITMMA09 Okos város MSc mellékspecializáció

HecPoll a vezérlő rendszer

Az utvonalterv.hu magyarországi útvonaltervező weboldal megújítása (új technikák, funkciók)

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

ELŐTERJESZTÉS. Szeged Megyei Jogú Város Közgyűlésének. Nyílt adatbázisok létrehozása. Művelődési Osztály

GeoServer, OpenLayers és WFS. Dolleschall János

Az utazási idő modellezése térinformatikai módszerek felhasználásával

CabMap hálózat-dokumentáló rendszer

A FORGALMI MODELLEZÉS GYAKORLATI ALKALMAZÁSA A TERVEZŐ FÁJDALMAI. Közlekedéstudományi Egyesület Közös dolgaink január 29.

Multimédiás adatbázisok

XML / CSV specifikáció

CITY OF SZEGED Smart city activities Sándor NAGY Vice Mayor

Jó megoldások az akadálymentes közösségi közlekedési szolgáltatások tájékoztatására

AdoDB a gyakorlatban

Diósd, Álmos fejedelem u. 27. laborexpert.hu Tel: Fax:

Pentaho 4: Mindennapi BI egyszerűen. Fekszi Csaba Ügyvezető október 6.

Kiskunmajsa és környéke turisztikai térinformatikai alkalmazás

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése

Személyvonatok Menetrendszerűségének Információs és Kiértékelő Rendszere

Földmérési és Távérzékelési Intézet

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

GIS adatgyűjtés zseb PC-vel

KnowledgeTree dokumentumkezelő rendszer

Kulcsár Attila. A második szint GeoCalc GIS 2. GISopen 2012 konfrencia.

Internet technológiák

DIPLOMAMUNKA. Szélerőművek vizsgálata térinformatikai módszerekkel UNDER CONSTRUCTION. Konzulensek: Dr. Juhász Attila Dr.

MELLÉKLETEK. a következőhöz: A BIZOTTSÁG FELHATALMAZÁSON ALAPULÓ RENDELETE

Többfelhasználós és internetes térkép kezelés, megjelenítés

Kulcsár Attila. GisOpen Térbeli adatbázisok gyakorlati szemmel GeoCalc GIS. GisOpen 2009 Konferencia

JAVA webes alkalmazások

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Enterprise extended Output Management. exom - Greendoc Systems Kft. 1

Mexikói út M / Újpalota Erdőkerülő utca

Nyílt forráskódú online térképi szolgáltatások fejlesztése a FÖMI-ben

Valós idejű információk megjelenítése web-alapú SCADA rendszerben Modbus TCP protokollon keresztül

Adatbázis-kezelés ODBC driverrel

Crowdsensing Participatory Sensing Szenzorhálózatok és alkalmazásaik

Cafeteria - KIRA interfész

Kedvenc Ingyenes editorok avagy milyen a programozó jobbkeze? PSPAD editor DEVPHP IDE

OpenOffice.org mint fejlesztési platform

Nyílt forráskódú fejlesztések a FÖMI-nél

Geocache API teszt verzió v1.0 by gusty

Web harvesztelés. Automatikus módszerekkel

PASS SCADA bemutatás PICK energiamonitoring és mérésadatgyűjtő rendszer

BIG DATA ÉS GÉPI TANULÁS KÖRNYEZET AZ MTA CLOUD-ON KACSUK PÉTER, NAGY ENIKŐ, PINTYE ISTVÁN, HAJNAL ÁKOS, LOVAS RÓBERT

BusEye online személyre szabott utastájékoztató mobil alkalmazás fejlesztése

Innovatív technológiák a fővárosi közlekedés megújításában. Vitézy Dávid vezérigazgató Budapesti Közlekedési Központ november 6.

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

Az információs portáloktól a tudásportálokig

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

Bemutatkozás. Heilig Szabolcs Hojtsy Gábor Illés Szabolcs Palócz István

Nyílt forrású, webes WGS84-EOV transzformáció

Trendek a nyílt forráskódú térinformatikai fejlesztésekben

Féléves feladat. Vezetéknév Keresztnév

Internetes térkép publikálási technikák, szabványok, trendek, nyílt forráskódú megoldások

LINUX LDAP címtár. Mi a címtár?

A QuantumGIS projekt és szoftver bemutatása. Juhász Levente SZTE TFGT

ALLOKÁLÁS TÁJÉKOZTATÓ KAPCSOLÓDÓ RENDSZERÜZEMELTETŐK ÉS A RENDSZERHASZNÁLÓK SZÁMÁRA

Interaktív webes térképezés GRASS GIS 7-tel. A Web Processing Service bemutatása

Hozzávalók keresése és csatolása

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Cikkarchívum fejlesztése

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

Erőforrás gazdálkodás a bevetésirányításban

OOP és UML Áttekintés

Webes megoldások egy múzeum belső hálózatában

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

Siki Zoltán DigiKom Kft. BME ÁFGT. KÖRINFO Konferencia május 28-án

italc felhasználói dokumentáció

GIS fejlesztés Web platformra nyílt forráskódú ingyenes eszközökkel

transit TÜKE BUSZ Zrt. menetrend app Felhasználói kézikönyv Verzió: transit t HC LINEAR MŰSZAKI FEJLESZTŐ KFT.

Remarketing 2.0 ÉLET AZ ADWORDS ÉS FACEBOOK-ON TÚL

Automatizált Marketing Webshopoknak

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

A webanalitika változó világa 4 felvonásban

Forrás és idéző közlemények felvitele importtal

Készítette: Enisz Krisztián, Lugossy Balázs, Speiser Ferenc, Ughy Gergely

Van-e ingyen-ebéd? Avagy mire elég a nyílt forráskodú Pentaho? Fekszi Csaba Ügyvezető október 4.

Alter Róbert Báró Csaba Sensor Technologies Kft

DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció

Hozzáférés és újrahasznosítás

Webes alkalmazások fejlesztése

Alkalmazásokban. Dezsényi Csaba Ovitas Magyarország kft.

Tudás Reflektor. Copyright 2011; Kodácsy Tamás;

ArcGIS Desktop QGIS GRASS AutoCAD Map ITR. Op. rendszer Win Linux, Win, OSX Unix, CygWin, (Win) Win korábban DOS, Win. GRASS specific GDAL/OGR

Átírás:

Külső adatok (GTFS, UIC, boltok) félautomatikus importálása az OpenStreetMap-be Szalai Kálmán (KAMI) kami911@gmail.com @kami911kami 6. Nyílt forráskódú térinformatikai munkaértekezlet 1

Problémák 2

Problémák I OpenStreetMap adatok változatossága Igény az egységes címkézésre Ajánlások Részben jól szerkesztett OSM adatok Hibakereső / Hibakeresés Adatok licence 3 Open Data Commons Open Database License (ODbL) Adatok forrása

Válasz A cégtől: Köszönjük a megkeresést. Amennyiben a jövőben részünkről igény merül fel az együttműködésre, jelentkezni fogunk. Válasz B cégtől: Melléklet: lista a fogyasztóvédelmi hatóságok elérhetőségeiről. (Később engedélyezték a honlapon lévő adatok használatát.) Válasz C cégtől: Tájékoztatjuk, hogy az illetékesektől kapott információ alapján nem tudjuk fájl formájában biztosítani az adatbázist, a honlapon elhelyezett információk a publikusak. 4

GTFS OSM import 5 Mi a GTFS? General Transit Feed Specifcation Google által készített egységes adatformátum menetrendi adatok tárolására (Google Maps) Típusai (Google Transit API) Statikus https://developers.google.com/transit/gtfs/ Dinamikus https://developers.google.com/transit/gtfs-realtime/

GTFS Statikus Formátum ZIP-fájl Letölthető 6 Szöveges fájlokat tartalmaz

GTFS Kötelező adatok Tárolt adatok (kötelező) Szolgáltató Megállók (stops.txt) OSM! Útvonalak (routes.txt) OSM(?) Utazási idők, valamint érkezési és indulási idők Naptár (calendar.txt) 7 ID, kód, név, leírás, jármű fajtája, url Utazás (trips.txt), valamint érkezés és indulás idők (stop_times.txt) OSM(?) ID, kód, név, leírás, koordináta, zóna, url, kerekesszék, stb. Melyik nap érvényes

GTFS További adatok További adatok (nem kötelező) Útvonal (shapes.txt) OSM! ID, kód,koordináta Viteldíjak (fare_attributes.txt és fare_rules.txt) Időközök (frequencies.txt) Átszállások (transfers.txt) További információk (feed_info.txt) 8

GTFS Mire használható? Lehetséges adatimportálás az OSM-be: Megállók felvitele és ellenőrzése GTFS: stops.txt OSM: ref:bkk Útvonalak felvitele és ellenőrzése Útvonal, mint téradat 9 GTFS: shapes.txt Indulási idők (OSM: service_times) OSM: stop_times.txt GTFS: service_times

GTFS Elérhető adatok I Budapesti Közlekedési Központ http://www.bkk.hu/gtfs/budapest_gtfs.zip Dokumentum: http://www.bkk.hu/magunkrol/fejlesztoknek/ Magyar Állam Vasutak 10 https://www.mavcsoport.hu/gtfs-igenybejelento Jelszóval védett hozzáférés, engedélyt kértem és kaptam az OSM felhasználáshoz

GTFS Elérhető adatok II VOLÁN Nem válaszoltak a megkeresésre, még próbálkozok Szeged (nem hivatalos, OSM téradatokkal) https://transitfeeds.com/p/dakk/625 http://members.upc.hu/cseh.attila/google_transit.zip 11 https://code.google.com/archive/p/googletransitdatafeed/wikis /PublicFeeds.wiki https://menetrend.appcorner.eu/data

BKK állomások JOSM 12

BKK útvonalak JOSM 13

BKK GTFS és OSM megfgyelések I Taginfo: gtfs csak source-ként van; gtfs_id = 0 ref:bkk = 118 ref:bkv = 5260 fref:bkv = 1 ref = 182 (rengeteg más is használja, nehéz kiválogatni) code = 876 Módosítások https://github.com/kami911/osm-importrequest/tree/master/ref_bkv_to_ref_bkk BKK: 6482 az OSM-ben, 7419 a GTFS-ben 14

BKK GTFS és OSM megfgyelések II Eltérések és hibák okai Nevek eltérése A név a fő egyeztetési szempont Aluljáró kijáratok neveiben szerepelnek a kijáratok betűjelei 15 A kisföldalatti állomásnevekben az irányok is benne vannak Oktogon (» Mexikói út) Oktogon (» Vörösmarty tér) Túl sok hasonló megálló van a közelben Örs vezér tere [A] A távolság a másik egyeztetési szempont Több objektumon van ref:bkk címke egy állomáson belül {n}, F{n} mellett, L*, LM*, CSLM*, CSF*, stb csomópontok és lejáratok

MÁV állomások JOSM 16

MÁV útvonalak JOSM 17

MÁV GTFS és OSM megfgyelések I Taginfo Módosítások ref:mav = 1295 https://github.com/kami911/osm-importrequest/blob/master/ref_mav/osm_same_name.osm MÁV: 1295 az OSM-ben, 1230 a GTFS-ben 18

MÁV GTFS és OSM megfgyelések II Eltérések és hibák okai Rosszul címkézett állomások railway=station-ból nem egy van public_transport=stop_position Névtelen állomások Nem MÁV állomások Metró- és egyéb állomások 19 Ezeket az importálás során kiszűrtem

A simple station és A simple halt railway = stop name = Newton public_transport = stop_position train = yes local_ref = 2 public_transport = platform railway = platform ref = 2 area = yes public_transport = platform railway = platform ref = 1 area = yes landuse = railway 20 building=train_station

Elvégzett feladatok 21

GO-Sync tapasztalatok Gtfs-osm-sync: http://wiki.openstreetmap.org/wiki/go-sync GO-Sync csak bus taget ismer más közlekedési járművet nem. (például: vasút, hajó, stb.). Java-s alkalmazás Grafkus felületen szerkesztés JOSM mellett nehézkes a használata Inkább egyszerűbb eszközöket használnék Python programok OSM kimenet Közösségi egyeztetés 22

Elvégzett feladatok Importálások hozzáadása a wiki oldalhoz https://wiki.openstreetmap.org/wiki/wikiproject_hungary/imp ort%c3%a1l%c3%a1s A ref, ref:bkk, ref:bkv, code egységesítése ref:bkk-ra 2011-es importálás frissítése és javítása Hibásan írt BKK megállónevek javítása MÁV GTFS adatokból a ref:mav felvitele Itt még nem voltak importált adatok GO-Sync használata és fejlesztése helyett apró Python programok készítése 23

Python percek 24

Python alapú munkafolyamat OSM over-pass lekérdezések Python külső modulok Külső adatok CSV és web OSM XML fájl JOSM progam OSM importálás Python progam OSM javítás CSV-fájl Ellenőrzés JOSM progam 25

Felhasznált eszközök Adatkezeléshez Numpy Pandas Lxml BeautifulSoup Nominatim és OverPass lekérdezések OSMPythonTools Térbeli keresés 26 Scipy

Fejlesztés alatt lévő eszközök https://github.com/kami911/gtfs2osm g2o-stops.py BKK és MÁV GTFS adatok összehasonlítása az OSM adatokkal g2o-shape.py GTFS adaton alapján OSM LineString CSV és OSM kimenet OSM kimenet hu_uic_parser.py http://www.vpe.hu/takt oldalról az adatok CSV-fájllá alakítása 27 CSV kimenet, később OSM kimenet is importáláshoz

További tervek I Új adatok gyűjtése (POI) Boltok, áruházláncok Bankok Éttermek, és étteremláncok UIC (International Union of Railways) Meglévő POI-k egységesítése Azonos írásmód Azonos kategória Wiki oldal közösen összeállítani Azonosítási mechanizmus, szabály 28 Elegendő-e az OSM ID, vagy valami ref:* szükséges

További tervek II Adatok adatbázisba töltése GTFS (Postgres, PostGIS, GTFSDB, ORM, python) https://github.com/opentransittools/gtfsdb OSM (Postgres, PostGIS), napi frissítéssel POI 29 Adatbázis építés a POI-kból (cím, koordináta, nyitvatartás, tag-ek) Nominatim alapján koordináták A saját POI adatbázis automatikus frissítése Webes szerkesztő Webes megjelenítő Ütemezett automatikus frissítések OSM irányban

Kérdések 30

Köszönöm a fgyelmet! Szalai Kálmán (KAMI) @kami911kami 31

OSM fájl készítés def generate_xml(pd): from lxml import etree import lxml osm_xml_data = etree.element('osm', version='0.6', generator='josm') for index, row in pd.iterrows(): data = etree.subelement(osm_xml_data, 'node', action='modify', id='{}'.format(row['osm_id']), lat='{}'.format(row['osm_lat']), lon='{}'.format(row['osm_lon']), user='{}'.format(row['osm_user']), timestamp='{}'.format(row['osm_timestamp']), uid='{}'.format(row['osm_uid']), changeset='{}'.format(row['osm_changeset']), version='{}'.format(row['osm_version'])) comment = etree.comment(' Stop name: {0}, ID: {1} '.format(row['stop_name'], row['osm_merged_refs'])) data.append(comment) if 'railway' in looking_for: row['osm_tags']['ref:mav'] = row['stop_id'] for k, v in row['osm_tags'].items(): tags = etree.subelement(data, 'tag', k='{}'.format(k), v='{}'.format(v)) osm_xml_data.append(data) return lxml.etree.tostring(osm_xml_data, pretty_print=true, xml_declaration=true, encoding="utf-8") 32

Overpass API lekérdezés def query_overpass(area_id, query_statement, element_type='node'): # Query Overpass based on area global overpass query = overpassquerybuilder(area=area_id, elementtype=element_type, selector=query_statement) return overpass.query(query) city = 'Budapest' local_area_id = get_area_id(city) overpass = overpass.overpass() p = '"highway"="bus_stop"' osm_stops_query = query_overpass(str(local_area_id), p, t) 33

BeautifulSoup adatgyűjtés table = soup.find('table', attrs={'style': 'text-align: left;'}) table_body = table.find('tbody') rows = table_body.find_all('tr') for row in rows: cols = row.find_all('td') link = cols[1].find('a').get('href') if cols[1].find('a')!= None else [] sub_soup = download_soup('{}/{}'.format(link_base, link)) if sub_soup!= None: table = sub_soup.find('table', attrs={'style': 'text-align: left;'}) table_body = table.find('tbody') sub_rows = table_body.find_all('tr') add_cols = [] for sub_row in sub_rows: sub_cols = sub_row.find_all('td') sub_cols = [element.text.strip() for element in sub_cols] add_cols.append(sub_cols[1]) cols = [element.text.strip() for element in cols] cols.append(link) if 'add_cols' in locals(): cols.append(add_cols) data.append(cols) df = pd.dataframe(data=data[1:], columns = data[0]) 34

További eszközök, információk I GTFS2OSM: https://github.com/kami911/gtfs2osm/ OSM import request-jeim: https://github.com/kami911/osm-import-request OSM engedélykérés adatok felhasználásához: https://github.com/kami911/e12n/tree/master/o sm Osm-python-tools: https://github.com/mocnik-science/osm-python-t ools 35

További eszközök, információk II GTFSDB: https://github.com/opentransittools/gtfsdb GTFS: https://developers.google.com/transit/ GTFS validator: https://github.com/google/transitfeed Állomások (1143): http://overpass-turbo.eu/s/lbc Állomások (2252): http://overpass-turbo.eu/s/lbd https://transit.land/feed-registry/?country=hung ary https://github.com/mapourtransit/gtfs-maker 36