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 18: Line 18:
 
# Druge opcije
 
# Druge opcije
  
 +
== Instalacija dependency-ja ==
  
== Preuzimanje GDAL night snapshot-a ==
+
U primjeru OSM export konvertiramo u SQLite (tj. Spatialite) pa je prvo potrebno instalirati biblioteke koje su potrebne GDAL-u za konverziju:  
 
 
Preuzimanje i raspakiravanje [http://www.gdal.org/daily/ nightly snapshota] GDAL biblioteke
 
  
 
<pre>
 
<pre>
$curl http://www.gdal.org/daily/gdal-svn-trunk-2013.03.30.tar.gz | tar xvz
+
$sudo apt-get install spatialite-bin expat curl sqlite3
 
</pre>
 
</pre>
  
ili direktno iz svn trunk-a (driver za osm je trenutno u trunk-u)
+
# [http://www.gaia-gis.it/gaia-sins/ spatialite] je prostorna extenzija za SQLite bazu
 +
# [http://curl.haxx.se/ curl] nam omogućava čitanje podataka preko mreže kako ih nebi morali svaki put preuzimati na svoje računalo
 +
# [http://expat.sourceforge.net/ 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 za ova tri paketa (*-dev)
  
 
<pre>
 
<pre>
$svn checkout https://svn.osgeo.org/gdal/trunk/gdal gdal
+
$sudo apt-get install libcurl4-gnutls-dev libexpat1-dev libspatialite-dev libsqlite3-dev
 
</pre>
 
</pre>
  
  
== Instalacija dependency-ja ==
+
== Preuzimanje GDAL night snapshot-a ==
  
U primjeru OSM export konvertiramo u SQLite (tj. Spatialite) pa je prvo potrebno instalirati biblioteke koje su potrebne GDAL-u za konverziju:
+
Preuzimanje i raspakiravanje [http://www.gdal.org/daily/ nightly snapshot-a] GDAL biblioteke
  
 
<pre>
 
<pre>
$sudo apt-get install spatialite-bin expat curl sqlite3
+
$curl http://www.gdal.org/daily/gdal-svn-trunk-2013.03.30.tar.gz | tar xvz
 
</pre>
 
</pre>
  
# [http://www.gaia-gis.it/gaia-sins/ spatialite] je prostorna extenzija za SQLite bazu
+
ili još bolje direktno iz svn trunk-a (driver za osm je trenutno u trunk-u)
# [http://curl.haxx.se/ curl] nam omogućava čitanje podataka preko mreže kako ih nebi morali svaki put preuzimati na svoje računalo
 
# [http://expat.sourceforge.net/ 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 za ova tri paketa (*-dev)
 
  
 
<pre>
 
<pre>
$sudo apt-get install libcurl4-gnutls-dev libexpat1-dev libspatialite-dev libsqlite3-dev
+
$svn checkout https://svn.osgeo.org/gdal/trunk/gdal gdal
 
</pre>
 
</pre>
  

Revision as of 03:42, 31 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 još od 2009 god. čuva arhivu dnevnih exporta OSM podataka za područje RH (hvala Hrvoju B.) te je i prije bilo moguće (korištenjem drugih alata) u svojoj bazi imati dnevno ažurne OSM podatke, no nama koji ovaj alat često koristimo, zbog mogućnosti skriptanja i python bindinga zgodno je imati i ovu mogućnost unutar GDAL-a. U principu load u PostgreSQL/PostGIS bi bio puno jednostavniji (u defaultnom buildu su svi driveri koji nam trebaju), ali kako se u zadnje vrijeme sve više koristi SQLite/Spatialite kao jako dobra zamjena za ESRI shapefile, test drivera je napravljen za ovaj format.

U sljedećem tekstu su upute kako pripremiti GDAL/OGR biblioteku za konverziju iz .osm ili .pbf formata u .sqlite, te na koji način dohvaćati dnevno svježe openstreetmap podatke.

Koraci:

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

Instalacija dependency-ja

U primjeru OSM export konvertiramo u SQLite (tj. Spatialite) pa je prvo potrebno instalirati biblioteke koje su potrebne 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 kako 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 za ova tri paketa (*-dev)

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


Preuzimanje GDAL night snapshot-a

Preuzimanje i raspakiravanje nightly snapshot-a GDAL biblioteke

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

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

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


Kompajliranje GDAL-a

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

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


Kreiranje SQLite baze

Pomoću ogr2ogr alata dohvaćaju se podaci i loadaju u SQLite bazu.

$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 \
           --config OSM_CONFIG_FILE $HOME/bin/gdal_1.10/share/gdal/osmconf.ini -progress 

gdje je:

  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 ali će se podaci loadati).
  3. /vsicurl_streaming/ - pbf datoteka se čita 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

Nakon toga ogr2ogr kreira osm_daily_stream.sqlite datoteku u kojem su podaci organizirani po tipu geometrije (slično kako to napravi osm2pgsql).

Prikaz OSM podataka is SQLite baze u QGIS-u

Provjerom 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 podatke loadamo direktno u PostgreSQL, MySQL, MSSQL, Oracle Spatial, ArcSDE ili bilo koji od OGR-a podržan format, a također je jako korisna mogućnost (iz osm.hr arhive) preuzimanja samo dnevnih promijena, te koristeći --append --update opcije u bazu loadati samo preuzete promjene. Možete koristiti i ogr2ogr sql_statement (-sql) pa exportati samo dio podataka koji vam trebaju, ili exportati samo OSM POI-e ili samo POI-e unutar nekog BBOX-a i sl. drugim riječima sav svemir manipulacije prostornim podacima koji nam otvara GDAL/OGR.

Za one koje interesira više obavezno pogledati što sve nudi ogr2ogr alat.

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