GDAL tukee maastotietokannan MTK-GML-tiedostomuotoa

A)

Yhdessä ohjeessa update ehdotettiin käyttämään lisättäessä UUSIA KARTTOJA ja install taas ekalla keralla,… sieltä ei varmaan puutu kun
tietue jos 0.6.0 tai 0.5.0,… KAHTA KARTTAA EÍ VOI NOMINATIMIIN lisätä install komennolla,… ja update pitäisi saada toimimaan ettei koko kantaa uusiksi
tehdä ihan joka kerta.

==== http://wiki.openstreetmap.org/wiki/OsmChange
API 0.6 tweaks

For the /api/0.6/changeset/id/upload API call to work correctly, you have to include the changeset ID and version number in every node, way and relation, like so:

====

Vaihtoehtosia teitä ois,… ( osan kokeilut mutta mulla softit valittanut, ei toiminut )
Entäs koko tietokannan ajo *.osm ja siitä tuo *.osc,… millä se tehdään ?
Tietysti millä yhdistellään useampi *.osm yhdeksi ? ( http://wiki.openstreetmap.org/wiki/Osmchange_%28program%29 )
Postgressql:stä *.osm ja *.osc muodostaminen suoraan millä ?

C) esim. menemälle tiilen päälle kartalla ja taelttamalla “kuva/tiesdosto” saa yksittäiset koordinaatit,… varmaan joku tai jossain
työkalussa koordinaatit muutuu tiilien numeroiksi X / Y / Z !!! Mutta mikä.

Voisitko hihkaista miten MTK:n saa kätevämmin ajettua sisään?

Ennenhän ne oli selkeiden linkkien ja hakemistojen sisällä,…

MTK aineistolle olisi id luomiseen varmaan toimiva ratkaisu aluksi
vaikka M =1 L=2 , karttanumero, 000000,… vai voiko 1miljoona objektia
karttalehdellä olla liian vähän kaupungissa???

Niin, talo numerointi musta riittää kaupungissa, sehän toimii. Maaseudululla nuo vaihtavat numerointi järjestelmiä sitä vauhtia että esim. mökimme numeroa ei enään kolmen muutoksen jälkeen muista! Kai taloihin voi numeron laittaa samoin kun kaupungissakin? Numero liittyy aina rakennukseen.

Kumpaa käytätte JOSM:ia vai Potlatchiä,… viimenen on hankala asentaa mutta onko siinä pointtia,
jos vaikka luovuttaisin?

Mikä piru tässä mättää? Teen ohjeen mukaan python ogr2osm.py tiet.xml -t mtk-gml.py , mutta herjaa: OGR failed to open tiet.xml, format may be unsupported
GDAL-versio on 1.10.1.

python ogr2osm.py …/…/MAP-MTK/L5244R.xml -t MTK-GML.py --id 34000000000

joo ja GDAL on suoraan uusimmasta koodista itse kaannetty,… ei ubuntu tai debian
ditribuutiosta,…

tolasella oon toiminut

Eipä pelitä, kokeilin sekä Windowsissa että Ubuntussa, ja sama juttu. Windowsissa ainakin pitäisi olla uusin versio GDAL:ista.
XML-tiedosto on ladattu suoraan tiedostopalvelusta (M52.xml), eikä sitä ole näpelöity, joten missähän vika voisi olla?

moi,

Ubuntu 12.4 joku muu paketti on voinut asentaan vanhemman version ja se käynnistyy.
Ubuntussa 12.4 mulla on vanha GDAL jotta voin asentaa nominatimin, MAPNIK,… tavarat
suoraan 12.4 distribuutiosta mutta kun käytän uutta GDAL suoritan sen “virtuaali kernelissä”:

Tossa muistiipanoja 2kk takaa kun sain sen toimii,… en ole kokeillut sen jälkeen:

sudo apt-get install python-virtualenv
virtualenv gdal
source gdal/bin/activate
pip install /home/joni/src/gdal_26324/lib/python2.7/site-packages
pip install /home/joni/src/gdal/swig/python/setup.py
pip install
export PYTHONPATH=/home/joni/src/gdal_26324/lib/python2.7/site-packages/:$PYTHONPATH
cd /src/gdal
export PYTHONPATH=/home/joni/src/gdal_26324/lib/python2.7/site-packages/:$PYTHONPATH
export LD_LIBRARY_PATH=“/home/joni/src/gdal_26324/lib”:$LD_LIBRARY_PATH
python ogr2osm.py …/…/MAP-MTK/M5131R.xml -t MTK-GML.py

deactivate

#virtualenv jpk
source jpk/bin/activate
pip install /home/joni/src/gdal_26324/lib/python2.7/site-packages
pip install /home/joni/src/gdal/swig/python/setup.py
export PYTHONPATH=/home/joni/src/gdal_26324/lib/python2.7/site-packages/:$PYTHONPATH
export LD_LIBRARY_PATH= /home/joni/src/gdal_26324/lib:$LD_LIBRARY_PATH
cd gdal
make install
cd …
cd ogr2*
python ogr2osm.py …/…/MAP-MTK/M5131R.xml -t MTK-GML.py
deactivate

cd ~/src
source jpk/bin/activate
python ogr2osm.py …/…/MAP-MTK/M5131R.xml -t MTK-GML.py
deactivate

python ogr2osm.py …/…/MAP-MTK/N62.xml -t MTK-GML.py --id 24000000000" >> aineisto

osm2pgsql --database gismtkosm --slim …/…/MAP*/finland-latest.osm.pbf >>

Ogrinfo-työkalukaan ei tunnista:
ogrinfo M52.xml

FAILURE:
Unable to open datasource `M52.xml’ with the following drivers.
→ ESRI Shapefile
→ MapInfo File
→ UK .NTF
→ SDTS
→ TIGER
→ S57
→ DGN
→ VRT
→ REC
→ Memory
→ BNA
→ CSV
→ NAS
→ GML
→ GPX
→ LIBKML
→ KML
→ GeoJSON
→ GMT
→ SQLite
→ ODBC
→ PGeo
→ MSSQLSpatial
→ PostgreSQL
→ MySQL
→ PCIDSK
→ XPlane
→ AVCBin
→ AVCE00
→ DXF
→ Geoconcept
→ GeoRSS
→ GPSTrackMaker
→ VFK
→ PGDump
→ OSM
→ GPSBabel
→ SUA
→ OpenAir
→ PDS
→ WFS
→ HTF
→ AeronavFAA
→ Geomedia
→ EDIGEO
→ GFT
→ SVG
→ CouchDB
→ Idrisi
→ ARCGEN
→ SEGUKOOA
→ SEGY
→ ODS
→ XLSX
→ ElasticSearch
→ PDF

No nyt toimii. Uusinkaan versio GDAL:ista ei riittänyt, vaan piti ladata svn:stä tuorein versio, vaikka uusin vakaa versio on ilmestynyt paljon myöhemmin MML-ajurin lisäyksen jälkeen.
Tämä siis Ubuntulla, Windowsiin ei edes ole vissiin saatavilla. Eipä ollut helppo homma Ubuntussakaan, kun vanhaa käännettyä GDAL:ia ei pystynyt poistamaan oikein mitenkään ja käsitöiksihän se meni.

Windowsilla on helpompaa, gisinternalsin development-paketit käännetään joka yö trunk-linjalta.
http://gisinternals.com/sdk/
Ominaisuus tulee mukaan vasta GDAL 1.11-versioon, 1.10-versioon sitä ei lisätä. Oheisesta linkistä selviää syyt ja päivämäärät. Evenin maininta GDAL 2.0:sta ei kuitenkaan pidä paikkaansa, seuraavaksi tulee 1.11, ja MTK-GML -tuki tulee siihen mukaan.

http://article.gmane.org/gmane.comp.gis.gdal.devel/35397

Onkos maastotietokannan importti edennyt mihinkään?

Digiroad aineistoakin taitaa jossain vaiheessa saada ladattua: http://www.digiroad.fi/ajankohtaista/2014/fi_FI/dr2014_3/

Tämmöstä virhettä tuuttaa:

…/ogr2osm/ogr2osm.py K2444L.xml -t mtk-gml.py
running with ElementTree on Python 2.5+
Preparing to convert file ‘K2444L.xml’ to ‘/Volumes/My Book/Karttahommat/Maastotietokanta/tmp/K2444L.osm’.
Will try to detect projection from source metadata, or fall back to EPSG:4326
Successfully loaded ‘mtk-gml’ translation method (‘/Volumes/My Book/Karttahommat/Maastotietokanta/ogr2osm/ogr2osm-translations/mtk-gml.py’).
Using user filterLayer
Using default filterFeature
Using default filterTags
Using user filterFeaturePost
Using default preOutputTransform
Parsing data
Processing layer ‘Jyrkanne’
Detected projection metadata:
PROJCS[“ETRS89 / TM35FIN(E,N)”,
GEOGCS[“ETRS89”,
DATUM[“European_Terrestrial_Reference_System_1989”,
SPHEROID[“GRS 1980”,6378137,298.257222101,
AUTHORITY[“EPSG”,“7019”]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY[“EPSG”,“6258”]],
PRIMEM[“Greenwich”,0,
AUTHORITY[“EPSG”,“8901”]],
UNIT[“degree”,0.0174532925199433,
AUTHORITY[“EPSG”,“9122”]],
AUTHORITY[“EPSG”,“4258”]],
PROJECTION[“Transverse_Mercator”],
PARAMETER[“latitude_of_origin”,0],
PARAMETER[“central_meridian”,27],
PARAMETER[“scale_factor”,0.9996],
PARAMETER[“false_easting”,500000],
PARAMETER[“false_northing”,0],
UNIT[“metre”,1,
AUTHORITY[“EPSG”,“9001”]],
AXIS[“Easting”,EAST],
AXIS[“Northing”,NORTH],
AUTHORITY[“EPSG”,“3067”]]
Traceback (most recent call last):
File “…/ogr2osm/ogr2osm.py”, line 612, in
parseData(data)
File “…/ogr2osm/ogr2osm.py”, line 295, in parseData
parseLayer(translations.filterLayer(layer))
File “…/ogr2osm/ogr2osm.py”, line 356, in parseLayer
parseFeature(translations.filterFeature(ogrfeature, fieldNames, reproject), fieldNames, reproject)
File “…/ogr2osm/ogr2osm.py”, line 377, in parseFeature
translations.filterFeaturePost(feature, ogrfeature, ogrgeometry)
File “…/ogr2osm/translations/mtk-gml.py”, line 73, in filterFeaturePost
feature.tags = mtk_features.get(ogrfeature[‘kohdeluokka’], mtk_default)(ogrfeature)
TypeError: ‘Feature’ object has no attribute ‘getitem

Edittiä:

Laitan tämän tänne siltä varalta, että joku tuskailee saman asian kanssa.

Oli tänään hieman aikaa taas ihmetellä tätä ongelmaa. Kuten virheilmoituskin sanoo niin Feature luokalla (ogr.py tiedostossa) ei tosiaan ole getitem funkkaria. Raavin hieman päätäni ja luin Pythonista ja kokeilin seuraavaa:

ogrfeature.items()

Tämä tulostaa key-value parit nätisti joten se kohdeluokka siellä on, mutta jostain syystä sitä ei saa sieltä ulos. Feature luokalla on kuitenkin getattr funktio jolla pitäisi saada value ulos joten kokeilin:

ogrfeature.getattr(‘kohdeluokka’)

Ja kas, tämä toimii!

Mutta… jos tämä muilla toimii ilman säätämistäkin niin vian täytyy olla jossain muualla, eikö? Defaulttina voi epäillä liian vanhaa softaversiota. Minulla oli pygdal:n versio 1.8.1. joten tutkailin uudempia versiota. Ja kuinka ollakaan, jo seuraavassa versiossa (1.9.2) Feature luokalle oli lisätty tuo getitem.

Asensin uudemman GDAL:n (ja pygdal:n) yms. ja nyt homma toimii ilman säätämistä.