Hungary/Importálás/GYSEV pályatengely
2014 áprilisában kaptunk hozzájárulást a GYSEV Zrt.-től a pályatengely adataik felhasználására vonatkozóan.
Technikai részletek
2014 április 14-én a GYSEV Zrt. képviseletében Pócza Gábor térinformatikus kb. 6.5MB, DXF formátumban lévő adatot adott át, melyet a közösség részéről Nagy Tamás vett át. A társaság feltétele, hogy az eredeti, több réteget tartalmazó DXF fájl nem adható tovább harmadik fél részére. A DXF fájl 28 különböző réteget tartalmaz, melyek egyenként kerülnek feldolgozásra (egyelőre kérdeses, hogy a 28 közül számunkra mennyi az érdekes). Az eredményt OSM formátumban fogjuk közzétenni.
Réteglista
A DXF fájlban található rétegek betűrendben:
- 0
- 15 vonal
- ALÉPÍTMÉNYEK_UTAK
- ALÉPÍTMÉNY_ÁRKOK
- BIZTOSÍTÓBERENDEZÉSEK
- Defpoints
- FELÉPÍTMÉNY_IPARVÁGÁNY
- FELÉPÍTMÉNY_KITÉRŐK
- FELÉPÍTMÉNY_MELLÉKVÁGÁNY
- FELÉPÍTMÉNY_VONATFOGADÓVÁGÁNY
- FELÉPÍTMÉNY_ÁTMENŐFŐVÁGÁNY
- FELÉPÍTMÉY_KESKENYNYOMTÁVÚ
- HIDAK_ALULJÁRÓK
- KÖZMŰVEK_KÁBELCSATORNA
- MAV_GIS_T_OBJ_VAGANYTENGELY
- MAV_GIS_T_OBJ_VAGANYTENGELY_SZELV
- MÉRTPONT
- PONTOK
- PT-GV-megvalszivarg
- PT-GV-v_T_szelvény
- PT-IP-SZELVÉNYEZÉS_PONTOK
- PT-IP-VG_SZELV
- PT-IP-szelvenyszám
- PT-IP-szelvényezés pontok
- PT-IP_szelényezés pontok
- felveteli epulet
- felveteli epulet kor
- mért_síntengely
A fenti lista megkapható például az alábbi Python szkripptel:
#!/usr/bin/python
import dxfgrabber
dxf = dxfgrabber.readfile("gysev.dxf")
layer_names = []
for layer in dxf.layers:
layer_names.append(layer.name)
layer_names.sort()
for layer_name in layer_names:
print layer_name
Elméletileg GDAL is használható lenne, de valamiért az alábbi parancs csak 19 réteget listáz:
ogrinfo -sql "select distinct layer from entities" gysev.dxf
Rétegleírás: 0
Hamarosan!
Rétegleírás: 15 vonal
Hamarosan!
Rétegleírás: ALÉPÍTMÉNYEK_UTAK
Hamarosan!
Rétegleírás: ALÉPÍTMÉNY_ÁRKOK
Hamarosan!
Rétegleírás: BIZTOSÍTÓBERENDEZÉSEK
Hamarosan!
Rétegleírás: Defpoints
Hamarosan!
Rétegleírás: FELÉPÍTMÉNY_IPARVÁGÁNY
Hamarosan!
Rétegleírás: FELÉPÍTMÉNY_KITÉRŐK
Hamarosan!
Rétegleírás: FELÉPÍTMÉNY_MELLÉKVÁGÁNY
Hamarosan!
Rétegleírás: FELÉPÍTMÉNY_VONATFOGADÓVÁGÁNY
Hamarosan!
Rétegleírás: FELÉPÍTMÉNY_ÁTMENŐFŐVÁGÁNY
Hamarosan!
Rétegleírás: FELÉPÍTMÉY_KESKENYNYOMTÁVÚ
Hamarosan!
Rétegleírás: HIDAK_ALULJÁRÓK
Hamarosan!
Rétegleírás: KÖZMŰVEK_KÁBELCSATORNA
Hamarosan!
Rétegleírás: MAV_GIS_T_OBJ_VAGANYTENGELY
Hamarosan!
Rétegleírás: MAV_GIS_T_OBJ_VAGANYTENGELY_SZELV
Hamarosan!
Rétegleírás: MÉRTPONT
Hamarosan!
Rétegleírás: PONTOK
Hamarosan!
Rétegleírás: PT-GV-megvalszivarg
Hamarosan!
Rétegleírás: PT-GV-v_T_szelvény
Hamarosan!
Rétegleírás: PT-IP-SZELVÉNYEZÉS_PONTOK
Hamarosan!
Rétegleírás: PT-IP-VG_SZELV
Hamarosan!
Rétegleírás: PT-IP-szelvenyszám
Hamarosan!
Rétegleírás: PT-IP-szelvényezés pontok
Hamarosan!
Rétegleírás: PT-IP_szelényezés pontok
Hamarosan!
Rétegleírás: felveteli epulet
Hamarosan!
Rétegleírás: felveteli epulet kor
Hamarosan!
Rétegleírás: mért_síntengely
Hamarosan!
Régi tartalom, hamarosan frissítésre (törlésre?) kerül
Felvételi épületek
Felvételi épületek : Feldolgozás
Ez egy pontréteg, mely az állomásépületek koordinátáit és hivatalos neveit tartalmazza, összesen 91-ét. A feldolgozás lépései:
- A kérdéses réteget külön fájlba mentem (LibreCAD segítségével), ennek formátuma továbbra is DXF.
- A DXF fájlt-t SHP formátumra hozom. Ez a leírás is működik (kipróbáltam), de én a QGIS Dxf2shp konverterét használom, bejelölve az "Export text labels" opciót. Így, ha az Output file mezőben a felveteli_epulet.shp nevet adtam meg, akkor létre fog jönni 2 shp fájl, felveteli_epulet.shp és felveteli_epulet_texts.shp nevekkel. Számunkra csak ez utóbbi az érdekes, ezzel dolgozunk tovább. Ha jól emlékszem, közben megkérdezi, hogy milyen vetületet szeretnénk, itt EOV/HD72-t választunk, bár ha nem tévedek, ennek itt még nincs jelentősége, hisz ez nem befolyásolja a dBase adatbázis (dbf fájl) tartalmát. Erre a lépésre sajnos még nem tudok parancssoros megoldást, de a leírás egyszerűsítése szempontjából hasznos lenne. Ennek a lépésnek az eredménye: felveteli_epulet_texts.shp.tar.gz
- A shapefájl konverziója CSV-re, közben végrehajtva egy EOV->WGS84 koordináta-transzformációt:
ogr2ogr -f CSV felveteli_epulet.csv felveteli_epulet_texts.shp -s_srs EPSG:23700 -t_srs EPSG:4326 -lco GEOMETRY=AS_XY
Ha nem vagyunk biztosak benne, hogy a GDAL a legfrissebb proj4 sztringet használja az EPSG:23700 címszó alatt, akkor Báthory Péter egy korábbi levlistás hozzászólása alapján explicit módon megadhatjuk a saját definíciónkat is
ogr2ogr -f CSV felveteli_epulet.csv felveteli_epulet_texts.shp -s_srs '+proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67 +towgs84=52.17,-71.82,-14.9,0,0,0,0 +units=m +bounds=16.1200,45.7800,22.9100,48.6000' -t_srs EPSG:4326 -lco GEOMETRY=AS_XY
Hogy mit ért a gdal telepítésünk EPSG:23700 alatt, arról a
gdalsrsinfo EPSG:23700 -o proj4
kiadásával győződhetünk meg. Szükség lehet még a SHAPE_ENCODING környezeti változó beállítására is a futtatás előtt
export SHAPE_ENCODING=UTF-8
Ennek a lépésnek az eredménye: felveteli_epulet.csv
- A felveteli_epulet.csv fájl konvertálása OSM XML formátumra (TODO: valamiért itt visszaállt a lista számozása 1-re, ). Ez egy rövid szkripttel megoldható, például R-ben:
#!/usr/bin/Rscript
library(XML,quietly=TRUE)
dat <- read.csv("felveteli_epulet.csv")[-1,]
nr <- nrow(dat)
osm <- xmlNode("osm",attrs=c(version="0.6"))
for (i in 1:nr) {
osm$children[[i]] <- xmlNode("node",attrs=c(lon=dat$X[i],lat=dat$Y[i],id=-i))
osm$children[[i]]$children[[1]] <- xmlNode("tag",attrs=c(k="name",v=as.character(dat$text[i])))
}
sink("felveteli_epulet.osm")
print(osm)
sink()
Ennek a lépésnek az eredménye, s egyben a végeredmény: felveteli_epulet.osm. A szkript egyelőre nem ad hozzá semmilyen, az importra vonatkozó informatív cimkét, de mihelyst megegyezünk valamiben, ízlés szerint bővíthető.
Felvételi épületek : kulcsok - javaslat
- building=train_station
- public_transport=station [ https://taginfo.openstreetmap.org/tags/public_transport=station ]
- operator=GySEV
- internet_access=wlan ( ahol van , rá kell kérdezni )
- wheelchair=* ( rá kell kérdezni)
- uic_name=*
- uic_ref=*
- ele=* ( ha ismert az adatokból, de nem lényeges ... )
- image=* ( Ha van elérhető - szabad licenszes kép : pl. http://hu.wikipedia.org/wiki/GYSEV_p%C3%A1lyaudvar , Ha nincs minden állomásról , akkor itt a lehetőség, hogy ilyet is kérjünk a GySEV-től )
- start_date=* 1876 - opcionális - ( mikor lett megnyitva az állomás . )
- level=* ( hány szintes ; ha valamikor műholdas átrajzolás révén polygon lesz belőle; hasznos info )
- amenity=luggage_locker csomagmegőrző van/nincs ( Sopronban és Szombathelyen van ) ( proposed kulcs )
- jegykiadó automata van/nincs - habár ezt külön POI-ként kellene ..
- amenity=vending_machine
- vending=public_transport_tickets
- operator=GySEV
- payment:coins=yes
- payment:notes=yes
- currency:EUR=yes
- currency:HUF=yes
- Ha műemlékvédelem alatt álló az épület, akkor azt is jelezni lehetne ( historic=* ) ; Hátha van ilyen adata is a GySEV-nek
- esetleg link a vasutallomasok.hu -ra. pl. : website_historic_hu = http://www.vasutallomasok.hu/allomas.php?az=csrn
- cím, nyitvatartási idő; telefonszám ; ( elérhető a jelenlegi hivatalos weboldalon [ http://www2.gysev.hu/allomasok,_penztarak/150 ] , [ https://maps.google.com/maps/ms?msid=207003592246098222513.0004b7924ac24c1df33e9&msa=0 ] )