Croatia/Kratki vodici/GDAL OSM driver - kako do dnevno svjezih osm podataka

From OSGeo
< Croatia
Revision as of 09:41, 30 March 2013 by Wiki-Darko (talk | contribs)
Jump to navigation Jump to search


GDAL OSM driver - kako do dnevno svježih OSM podataka

Za GDAL bilioteku u verziji 1.10 je najavljen driver za OSM što će omogućiti brzu i jednostavnu konverziju OSM podataka u bilo koji drugi GIS format podržan od OGR-a (ogr2ogr). Za testiranje drivera napravljen je primjer preuzimanja dnevnog exporta OSM podataka i konverzija u prostornu SQLite bazu spremnu za korištenje s desktop GIS aplikacijama (npr. QGIS) ili eventualno za web aplikacije koje koriste ove podatke a važna im je ažurnost na dnevnoj bazi.

Lokalna OSM zajednica je omogućila dnevni OSM export podataka za područje RH (hvala Hrvoju B.). Korištenjem i drugih alata moguće u svojoj bazi imati dnevno ažurne OSM podatke, ali kako GDAL koristim svakodnevno (meni je jedan od korisnijih GIS alata) zbog mogućnosti skriptanja i python bindinga zgodno je imati ovu mogućnost unutar GDAL-a. U principu load u PostgreSQL bi bio puno jednostavniji, ali kako u zadnje vrijeme dosta u svakodnevnom radu koristim prostorne podatke u .sqlite formatu ovaj test drivera je napravljen za ovaj format.

U sljedećem tekstu su upute kako pripremiti GDAL library te na koji način dohvaćati dnevno svježe openstreetmap podatke.

Proces instalacije:

  1. Preuzimnaje GDAL night snapshot-a
  2. Instalacija dependency-ja
  3. Kompajliranje GDAL library-ja
  4. Kreiranje SQLite baze
  5. Druge opcije


Preuzimnaje GDAL night snapshot-a

Preuzimnaje i raspakiravanje nightly snapshota GDAL library-ja

$curl http://www.gdal.org/daily/gdal-svn-trunk-2013.03.30.tar.gz | tar xvz

ili direktno iz svn trunk-a (driver za osm je trenutno u trunk-u)

$svn checkout https://svn.osgeo.org/gdal/trunk/gdal gdal


Instalacija dependency-ja

U primjeru OSM export konvertiramo u SQLite (tj. Spatialite) pa je prvo potrebno instalirati library-je koji su potrebni GDAL-u za konverziju:

$sudo apt-get install spatialite-bin expat curl expat sqlite3
  1. spatialite je prostorna extenuija za SQLite bazu
  2. curl nam omogućava čitanje podataka preko mreže da ih nebi morali svaki put preuzimati na svoje računalo
  3. expat je c biblioteka za parsanje xml datoteka, a potrebna je za parsanje .osm datoteke (u ovom primjeru se ne koristi)

Na Ubuntu je zbog kompajliranja GDAL-a iz izvornog koda potrebno instalirati i headere (-dev)

$sudo apt-get install libcurl4-gnutls-dev libexpat1-dev libspatialite-dev libsqlite3-dev


Kompajliranje GDAL library-ja

Kod kompajliranja GDAL-a treba explicitno reći da uključi podršku za curl i spatialite (--with-xxx), a instalacija je napravljena lokalno u $HOME/bin/gdal_1.10 direktorij (--prefix).

$./configure --prefix=$HOME/bin/gdal_1.10 --with-spatialite=yes --with-curl=yes
$make
$make install


Kreiranje SQLite baze

$cd ~/bin/gdal_1.10
$./ogr2ogr -f SQLite -dsco spatialite=yes /tmp/osm_daily_stream.sqlite /vsicurl_streaming/http://data.osm-hr.org/croatia.osm.pbf -progress --config OSM_CONFIG_FILE $HOME/bin/gdal_1.10/share/gdal/osmconf.ini
  1. -f SQLite - output format će biti SQLite baza
  2. -dsco spatialite=yes - datoteka će imati podršku za prostorne podatke. Bez ove opcije geometriju neće moći čitati GIS alati.
  3. /vsicurl_streaming/ - pbf datoteka se dohvaća preko mreže pomoću curl-a
  4. OSM_CONFIG_FILE - GDAL nakon kompajliranja nij znao pronaći osmconf.ini datoteku te je na ovaj način direktno postavljen path do datoteke

ogr2ogr je kreirao osm_daily_stream.sqlite u kojem su svi podaci po tipovima geometrije (slično kako to napravi osm2pgsql) koji je spreman za korištenje.

Prikaz OSM podataka iz SQLite baze dobivene pomoću ogr2ogr alata

Druge opcije

Isto tako ovaj driver nam omogućuje da npr. OSM podake loadamo direktno u PostgreSQL, MySQL, MSSQL ili bilo koji OGR format, a također je jako korisno mogućnost preuzimanja samo dnevnih promijena, te uz pomoć --append --update opcije u bazu loadati samo preuzete promjene. Korisno je da možete koristiti i ogr2ogr sql_statement (-sql) pa exportati samo dio podataka koji vam trebaju, ili exportati samo OSM POI-e i sl.. Puno je mogućnosti a one koje interesira više obavezno nek pogleda što sve nudi ogr2ogr alat.

Za automatizaciju ovog procesa dohvaćanja i loada podataka dovoljno je gornju ogr2ogr naredbu staviti u cron.