153ZODH / 1. cvičení

Z GeoWikiCZ

< Stránky předmětuDalší cvičení

Úvod do GRASS GIS

Osnova

Cvičení je zaměřeno na seznámení se systémem GRASS GIS. Více informací v rámci předmětu Free software GIS.

Vysvětleny jsou základní pojmy jako je databanka, location (lokace), mapset. Spuštění GRASSu, vizualizace jednotlivých mapových vrstev, demonstrace základních příkazů GRASSu s důrazem na modulární strukturu systému. Studenti se seznámí s rozhraním příkazové řádky (CLI) a grafickým uživatelským rozhraním (GUI) GRASSu.

Seznam použitých příkazů

Spuštění GRASSu, základní pojmy

Poznámka: V dalším textu budeme předpokládat verzi GRASS 6.5. Pokud používáte jinou verzi, očekávejte drobné rozdíly...

GRASS spustíme příkazem

grass65

GRASS nastartuje v grafickém či textovém módu (podle nastavení v souboru ~/.grassrc6, toto chování lze ovlivnit parametry -gui a -text).

grass65 -text
Textová uvítací obrazovka GRASS 6.4
grass65 -gui
Grafická uvítací obrazovka GRASS 6.4 (wxGUI)

GRASS Database

DATABASE (databanka)
je adresář umístěný na disku, např. /opt/grassdata. V tomto adresáři jsou v podstatě uložena veškerá data, se kterými GRASS pracuje (tedy rastrové a vektorové mapové vrstvy, atributové tabulky, popisky a pod.). Jednu z mála výjimek představují atributová (popisná) data skladovaná v některém z externích databázových systémů (např. PostgreSQL, MySQL) a pod.
LOCATION (lokace)
je adresář umístěný v databance GRASSu. Obsahuje data, která souvisejí s daným projektem. Je definována souřadnicovým systémem (referenční elipsoid, kartografické zobrazení, mapové jednotky) a velikostí zájmového území.
MAPSET (mapset)
je souborem map, které tvoří jakýsi logický celek v rámci lokace (daného projektu). Může např. odpovídat jednotlivým uživatelům (to pokud na projektu pracuje více lidí) nebo uceleným analýzám (studium vegetace, záplavová území, ...). Každá lokace musí obsahovat alespoň jeden mapset s unikátním názvem PERMANENT. Ten většinou obsahuje základní datové vrstvy, ostatní mapsety jsou pracovní (zpracování vstupních dat, jejich analýza...).

Příklad GRASS databanky:

/opt
 |  
 +--- grassdata
 |    |  
 |    +--- zod
 |    |    |
 |    |    +--- PERMANENT
 |    |    |
 |    |    +--- landa
 |    |
 |    +--- nc_spm_08
 |    |    |
 |    |    +--- PERMANENT

Uživatelská rozhraní

Příkazová řádka

grass65 -text
GRASS příkazová řádka

Grafické uživatelské rozhraní lze spustit z příkazové řádky pomocí příkazu g.gui, např.

 g.gui gui=wxpython

GIS Manager (Tcl/Tk)

Tcl/Tk GUI je starší GUI GRASSu, které bylo v současnosti plně nahrazeno novým wxGUI (viz níže).

grass65 -tcltk
GRASS TCL/TK GUI

wxGUI (wxPython)

grass65 -wxpython

nebo (výchozím GUI pro GRASS je wxGUI)

grass65 -gui
GRASS wxGUI

Příkazy GRASSu

GRASS je modulární systém, disponuje poměrně rozsáhlou množinou malých, ale výkonných programů. To odpovídá koncepci UNIXu jako takového, daný program má za úkol vyřešit dílčí problém, měl by být co nejmenší a poměrně jednoduchý.

Jednotlivé příkazy (tzv. moduly) GRASSu mají až na výjimky podobnou syntax a jsou jako celek poměrně konzistentní. Jejich jména se skládají z předpony označující rodinu příkazů a krátkého názvu napovídající účel modulu. Tak například modul d.mon patří do skupiny "Display" a je určen pro manipulaci s tzv. GRASS monitorem (otevření, uzavření).

Skupiny modulů GRASSu
předpona třída krátký popis
db. database práce s externími databázovými systémy
d. display grafické výstupy a vizuální dotazy
g. general obecné příkazy pro manipulaci s daty
r3. grid 3D zpracování 3D rastrových dat ("volume")
i. imagery zpracování obrazových dat
ps. postscript příkazy pro tvorbu mapových výstupů ve formátu PostScript
r. raster zpracování rastrových dat
v. vector zpracování vektorových dat

Pokud tedy napíšete do konzole "g." a stisknete klávesu TAB (automatické doplnění příkazu), vypíší se všechny příkazy ze skupiny modulů "General".

První modul, se kterým se seznámíme, bude g.list. Na něm si ukážeme standardní chování modulů GRASSu -- pokud spustíme modul bez parametrů, objeví se GUI dialog modulu.

GUI modulu g.list

Velmi užitečným parametrem je help, který zobrazí krátký popis modulu, jeho syntaxi (názvy parametrů a přepínačů), tak např.:

 g.list --help
Description:
 Lists available GRASS data base files of the user-specified data type to standard output.

Keywords:
 general, map management

Usage:
 g.list [-f] type=datatype[,datatype,...] [mapset=string] [--verbose]
   [--quiet]

Flags:
  -f   Verbose listing (also list map titles)
 --v   Verbose module output
 --q   Quiet module output

Parameters:
    type   Data type
           options: rast,rast3d,vect,oldvect,asciivect,icon,labels,sites,
                    region,region3d,group,3dview
  mapset   Mapset to list (default: current search path)

Rozsáhlejší nápovědu nabízí g.manual s přepínačem -m zobrazí nápovědu ve formátu manuálové stránky.

Vraťme se k modulu g.list, který vypíše seznam dostupných datových vrstev lokace. Seznam rastových a vektorových vrstev vypíšeme příkazem:

 #seznam dostupných rastrových mapových vrstev
 #
 g.list rast
 
 ----------------------------------------------
 raster files available in mapset PERMANENT:
 rad1  rad2  spot1  spot2  spot3  tm1  tm2  tm3  tm4  tm5  tm6  tm7
 
 ----------------------------------------------

 #seznam dostupných vektorových mapových vrstev
 #
 g.list vect
 
 ----------------------------------------------
 vector files available in mapset PERMANENT:
 silnice  voda  zelez 
 
 ----------------------------------------------

V našem případě data obsahuje pouze mapset PERMANENT, pracovní mapset je zatím prázdný. Mapové vrstvy z mapsetu PERMANENT můžeme z pracovního mapsetu pouze číst, nelze je modifikovat. Mapset v tomto ohledu (do jisté míry) zohledňuje uživatelská přístupová práva (právo čtení, zápisu).

Vizualizace mapových vrstev

Příkazová řádka

Data lze vizualizovat v grafickém okně tzv. "GRASS monitoru", těchto grafických oken může být celkově spuštěno 6 (označují se x0 až x6). Pro manipulaci s GRASS monitory slouží modul d.mon, pro otevření okna slouží parametr start, pro výběr select a pro zavření monitoru stop. Poznámka: Tyto příkazy nefungují pod MS Windows.

 # otevřít první GRASS monitor
 #
 d.mon start=x0
 #
 # otevřít druhý GRASS monitor
 #
 d.mon start=x1
 #
 # vybrat první GRASS monitor
 #
 d.mon select=x0
 #
 # zavřít první GRASS monitor
 #
 d.mon stop=x1

Názvy parametrů či přepínačů lze libovolně zkracovat či dokonce vypouštět (to v případě, že se jedná o první parametr). Výše uvedený příklad lze tedy alternativně zapsat:

 d.mon x0
 d.mon x1
 d.mon se=x0
 d.mon sto=x1

Důležitým pojem je tzv. region. Region je část území (tvar pravidelného čtyřúhelníka), které je definováno hraničními souřadnicemi SEVER JIH ZÁPAD VÝCHOD. Kromě rozsahu území nese informace o prostorovém rozlišení (sever-jih, východ-západ) pro rastrová data. Výchozím regionem je region, který pokrývá (měl by) zájmové území lokace. Pro manipulaci s aktuálním regionem slouží modul g.region. Mezi podstatné volby modulu patří přepínač -d, který nastaví výchozí region a parametry rast a vect, které nastaví region podle dané mapové vrstvy.

Chceme-li tedy zobrazit družicový snímek tm1, je vhodné nejprve nastavit aktuální region podle této rastrové vrstvy (tedy území, které bude zobrazeno v GRASS monitoru) - rozsah a rozlišení.

 # nastavit aktivní region podle mapové vrstvy
 #
 g.region rast=tm1

Pro zobrazení rastrových dat se používá modul d.rast, pro vektorová data existuje podobně d.vect. Oba moduly disponují velkou množinou přepínačů a parametrů, které ovlivňují zobrazený výsledek na monitoru.

Demonstrační příklad:

 # zobrazit v GRASS monitoru vybranou rastrovou a vektorovou mapovou vrstvu
 #
 d.rast tm1
 d.vect zelez color=yellow
Vizualizace rastrových a vektorových dat v GRASS monitoru

wxGUI

GRASS wxGUI - přidání RGB vrstvy

< Stránky předmětuDalší cvičení