FreeGeodataCZ ve formátu GRASS

Z GRASSwikiCZ
Přejít na: navigace, hledání

Data jsou uložena v nativním formátu GRASS 6. Na této stránce je uveden stručný návod pro začínající uživatele GRASSu od instalace tohoto GISu, založení databanky GRASSu, stažení datasetu FreeGeodataCZ až po jeho načtení. Návod je směřován na operační systémy UNIXového typu (GNU/Linux, Mac OS, atd.).

Instalace GRASSu

Problematika instalace systému ze zdrojových kódů přesahuje rámec tohoto textu, zaměříme se pouze na instalaci z předpřipravených binárních balíčků. Většina (alespoň ty nejrozšířenější) linuxových distribucí nabízí GRASS v rámci svého balíčkovacího systému. V případě operačního systému Debian GNU/Linux je instalace GRASSu otázka jedno příkazu:

$ apt-get install grass grass-doc

Založení databanky GRASSu

Po instalaci systému GRASS musíme vytvořit speciální adresář, tzv. databanku GRASSu. V tomto adresáři budou skladována veškerá data, která GRASS obhospodařuje (vyjímku tvoří data uložená v externích databázových systémech). Většinou je tento adresář vytvořen v domovském adresáři uživatele s názvem grassdata.

$ cd ~/
$ mkdir grassdata

Stažení datasetu

Nejprve se přepneme do adresáře databanky, poté stáhneme daný dataset (např. verzi 0.3.2 pro souřadnicový systém S-JTSK)

$ cd ~/grassdata
$ wget http://gama.fsv.cvut.cz/data/grasswikicz/freegeodatacz/0.3.2/cr-grass-jtsk-0.3.2.tar.gz

V aktuálním adresáři se vytvoří soubor datasetu, který dekomprimujeme a rozbalíme příkazem

$ tar xvzf cr-grass-jtsk-0.3.2.tar.gz

Vznikne adresář (v našem případě "cr-jtsk") reprezentující lokaci GRASSu (tvz. GRASS project location).

Spuštění GRASSu

GRASS spustíme z příkazové řádky (může se jemně lišit podle toho, jakou verzi GRASSu máte nainstalovánu).

$ grass

Aplikace může být spuštěna v textovém (přepínač -text) či grafickém (-gui) módu. V úvodní obrazovce zadáme databanku GRASS ("database") a poté vybereme lokaci ("cr-jtsk") a mapset ("PERMANENT").

Uvodní textová obrazovka GRASSu 6.1
Uvodní grafická obrazovka TCL/TK GUI GRASSu 6.1
Uvodní grafická obrazovka wxPython GUI GRASSu 6.3

Změna skladiště atributových dat

Atributová data vektorových mapových vrstev jsou implictně uložena ve formátu xbase (dbf), kodování IS0-8859-2. Soubory ve formátu dbf jsou uloženy v rámci mapsetu v adresáři dbf. Zdroj atributových dat dané vektorové mapové vrstvy si lze ověřit příkazem

GRASS> v.db.connect map=cr -g

1 cr cat /home/martin/grassdata/cr-jtsk/PERMANENT/dbf/ dbf

Databázový systém PostgreSQL

Předpokládejme, že máme databázový systém PostgreSQL již nainstalován a nakonfigurován.

V prvním kroku založíme databázi s výchozím kódováním UTF-8, např. "grass_cr"

$ createdb grass_cr -E UTF8

Přepneme se do adresáře obsahující atributové tabulky ve formátu pro PostgreSQL. Hromadně dekomprimuje vstupní SQL dávkové soubory a následně je přesměrujeme do PostgreSQL.

$ cd ~/grassdata/cr-jtsk/pg

$ for sql in *.sql.gz ; do gzip -d $sql; done
$ for sql in *.sql ; do psql grass_cr < $sql; done

Kontrola obsahu databáze po importu

$ psql -d grass_cr -c "\d"

             List of relations
 Schema |      Name       | Type  | Owner  
--------+-----------------+-------+--------
 public | casti_obce      | table | martin
 public | cesty           | table | martin
 public | cfm             | table | martin
 public | cr              | table | martin
 public | czfree_nodes    | table | martin
 public | dsnimky         | table | martin
 public | klad_zm10       | table | martin
 public | kraje_pseudo    | table | martin
 public | mes_casti       | table | martin
 public | mesta_b         | table | martin
 public | mesta_p         | table | martin
 public | obce            | table | martin
 public | okresy_pseudo   | table | martin
 public | reky            | table | martin
 public | silnice         | table | martin
 public | silnice_pasport | table | martin
 public | silnice_useky   | table | martin
 public | silnice_uzly    | table | martin
 public | voda            | table | martin
 public | zeleznice       | table | martin
(20 rows)

Další příkazy již musí být volány z běžící GRASS seance (mapset PERMANENT). Dávkově nastavíme zdroj atributových tabulek

GRASS> for vect in $(g.mlist vect) ; do
v.db.connect -o map=$vect database=grass_cr driver=pg table=$vect
done

Pro kontrolu

GRASS> v.db.connect map=cr -g
1 cr cat grass_cr pg

GRASS> v.db.select cr
cat|nazev|nazev_a
1|Česká republika|Ceska republika

V případě potřeby návratu k původním atributovým tabulkám ve formátu dbf použije jemně modifikované příkazy

GRASS> for vect in $(g.mlist vect) ; do
v.db.connect -o map=$vect database='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/' driver=dbf table=$vect
done

Přidání dalšího mapsetu

Některá data jsou šířena v tématických mapsetech, jako příklad můžeme uvést mapset "KlimadataCR". Začlenění dalšího mapsetu do stavající lokace je vcelku jednoduché. Přepneme se do adresáře lokace, stáhneme daný mapset, dekomprimujeme a rozbalíme jej. Toť vše.

$ cd ~/grassdata/cr-jtsk
$ wget http://gama.fsv.cvut.cz/data/grasswikicz/freegeodatacz/mapsety/klimadataCR_0.1.tar.gz
$ tar xvzf klimadataCR_0.1.tar.gz

V rámci lokace "cr-jtsk" tak vznikne další mapset "klimadata". Do mapsetu se přepneme příkazem

GRASS> g.mapset mapset=klimadata

Pro testovací účely je vhodné vytvořit pracovní mapset. Z běžící seance GRASSu vytvoříme nový mapset příkazem (dojde zároveň k nastavení aktuálního mapsetu na nově vytvořený)

GRASS> g.mapset -c mapset=martin