Difference between revisions of "Croatia/Kratki vodici/GDAL OSM driver - kako do dnevno svjezih osm podataka"

From OSGeo
Jump to navigation Jump to search
m
m
Line 80: Line 80:
 
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.
 
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.
  
[[File:osm2sqlite.png|400px|thumb|Prikaz OSM podataka iz SQLite baze dobivene pomoću ogr2ogr alata]]
+
[[File:osm2sqlite.png|390px|thumb|Prikaz OSM podataka iz SQLite baze dobivene pomoću ogr2ogr alata]]
 +
 
 +
ogrinfo ispravno očitava osm_daily_stream.sqlite datoteku:
 +
<pre>
 +
/tmp/:$ogrinfo osm_stream.sqlite
 +
INFO: Open of `osm_stream.sqlite'
 +
      using driver `SQLite' successful.
 +
1: points (3D Point)
 +
2: lines (3D Line String)
 +
3: multilinestrings (3D Multi Line String)
 +
4: multipolygons (3D Multi Polygon)
 +
5: other_relations (3D Geometry Collection)
 +
</pre>
  
 
== Druge opcije ==
 
== Druge opcije ==

Revision as of 10:39, 30 March 2013


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

Za GDAL bilioteku u verziji 1.10 je najavljen driver za OSM podatke (tj. podrška za .osm xml i .pbf datoteke) š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. Preuzimanje GDAL night snapshot-a
  2. Instalacija dependency-ja
  3. Kompajliranje GDAL library-ja
  4. Kreiranje SQLite baze
  5. Druge opcije


Preuzimanje GDAL night snapshot-a

Preuzimanje 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 sqlite3
  1. spatialite je prostorna extenzija 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 uključiti 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/bin
$./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 nije 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

ogrinfo ispravno očitava osm_daily_stream.sqlite datoteku:

/tmp/:$ogrinfo osm_stream.sqlite 
INFO: Open of `osm_stream.sqlite'
      using driver `SQLite' successful.
1: points (3D Point)
2: lines (3D Line String)
3: multilinestrings (3D Multi Line String)
4: multipolygons (3D Multi Polygon)
5: other_relations (3D Geometry Collection)

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.