FreeGeodataCZ ve formátu GRASS
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.).
Obsah |
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").
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


