1. GRASS

V současné době je na stránce http://www.grass.itc.it/download/ několik verzí GRASS. Jedná se zejména o stabilní verzi GRASS 5.4, GRASS 6.0 a testovací verzi GRASS 6.1. Jelikož se GRASS vyvíjí den ode dne a téměř každý den je k dispozici nová instalace testovacích verzí, zaměřím se v následujícím tutoriálu na stabilní verzi GRASS 5.4, u které byl při začátku mé práce již vývoj dokončen. Zmíním se ale i o vylepšených vlastnostech (funkcích), které přinášejí nové verze GRASS.

V tutoriálu se budu zabývat analýzami nad rastrovými daty. Tomu je uzpůsobena i celá struktura tutoriálu. V úvodu jsou zmíněny jen ty základní funkce GRASS, které potřebujeme pro import dat a následnou práci s rastry. Manuály a další tutoriály pro práci s vektorovými, ale i rastrovými daty najdeme na stránce http://grass.itc.it/gdp/index.php, http://www.fle.czu.cz/~jachym/grass.html, nebo http://gama.fsv.cvut.cz/~grass/.

1.1. Co nabízí GIS GRASS?

Tato kapitola je převzatá z [8].

Geografický informační systém GRASS (Geographical Resources Analysis Support System) je kombinovaný rastrový a vektorový GIS. Obsahuje přes 400 programů a pomocných prostředků, sloužících k práci s rastrovými, vektorovými a bodovými daty, vytváření map v digitální a analogové formě, zpracování multispektrálních obrazových dat, vytváření a ukládání prostorových dat. Vedle graficky orientovaného uživatelského rozhraní disponuje GRASS i textovou příkazovou konzolí. GRASS lze připojit na tiskárnu, plotr a digitalizační prkno. Jeho prostřednictvím je možné přistupovat k datům z externích databází. Je proto ideální pro plánování krajiny a inženýrsko-technické použití. Stejně jako jiné GIS balíky, umožňuje i GRASS práci s vektorovými daty reprezentujícími silnice, vodní toky, hranice a jiné objekty. Prostřednictvím integrovaných digitalizačních funkcí lze aktualizovat vektorové mapy. Je velmi silný při zpracování prostorových rastrových dat. GRASS moduly umí provést konverzi mezi vektorovým a rastrovým formátem. GRASS dále obsahuje nástroje, které z něj vytváří plnohodnotný on-line GIS, přístupný přes World-Wide-Web (WWW). Příkladem může být instalace GRASS na serveru ITC v Trentu (Itálie). Odkaz najdete na oficiálních stránkách GRASS (http://grass.itc.it/start.html).

Síla GRASS spočívá ve více oblastech. Jednoduché uživatelské rozhraní ulehčuje začátečníkům počáteční kroky při práci v GIS. Velmi zajímavá je možnost doprogramování vlastních modulů. Pokročilejší uživatelé, kteří touží psát vlastní moduly, se je mohou na základě zdrojového kódu programů nebo s pomocí manuálu pro programátory naučit psát a využít k nim dokumentované a bohaté knihovny GRASS (API pro programovací jazyk C). Tyto knihovny umožňují přidávání nových a vysoce vyvinutých funkcí. Na úrovni skriptů si lze usnadnit práci a zautomatizovat často ručně prováděné a opakující se operace. GRASS má také velmi dobře propracované a algoritmizované prostorové analýzy nad spojitými (rastrovými) daty. Toto je ukázáno v kapitole 1 – „Hydrologické analýzy“. Horší je to již s prací s vektorovými daty. Při importu dat z formátu shape-file je možné spolu s vektorovou kresbou importovat pouze jeden atributový sloupec (Toto by již neměl být problém od GRASS verze 6.0, kdy se soubory typu shape-file, dgn, atd. již neimportují, ale externě vážou (linkují) pomocí knihovny OGR. Pak je přístupná celá atributová tabulka vektorového souboru. Došlo také k přidání podpory externích databází (DBMS)).

Díky schopnosti pracovat s rastrovými daty lze GRASS dobře využít jako povrchového modelovacího systému. GRASS obsahuje více než 100 multifunkčních modulů pro analýzu a zpřístupnění rastrových dat. Modely srážek a povrchových odtoků, počítání drah povrchových odtoků, šetření stability svahů a mnoho dalších - prostorové analýzy jsou jen jedním z příkladů použití.

Kromě standardní dvojrozměrné analýzy dovoluje GRASS zpracovávat data i ve třech dimenzích. Rastrová, vektorová a bodová data lze použít při vizualizaci. Příkladem tohoto použití může být návrh letiště, analýza krajiny a prostorových náchylností. Vizuální prostředky umožňují animaci prostorových dat. 3D pohledy tak mohou být prezentovány jako jednotlivé obrázky nebo jako MPEG film a uloženy pro další práci.

GRASS obsahuje rovněž soubor modelů z oblasti hydrologických modelů a analýz. Jedná se mimo jiné o vymezení povodí, analýzy povodňových vln a využití různých modulů pro kompletní simulaci povrchového odtoku z daného území. Další moduly mohou vytvářet diagramy a statistiky k modelovaným a kalibrovaným datům. Dále je možné v GRASS pracovat s krajinnými daty a odvodit některé parametry na základě numerických dat.

Moduly pro práci s obrazovými daty jsou srovnatelné se špičkovými produkty tohoto sektoru. Mnohdy jsou i bohatší než proprietární GIS. Obsahují množství nástrojů sloužících ke zpracování a vyhodnocování multispektrálních satelitních dat, stejně jako moduly pro produkci ortogonálních map z naskenovaných leteckých snímků. GRASS tak umožňuje využít takřka veškerých možných cest, vedoucích k importu dat do GIS.

Od roku 1998 je tradiční textová konzole doplněna novým grafickým uživatelským rozhraním, založeným na Tcl/Tk. Tím vzniklo jednoduché grafické rozhraní, které je nezávislé na platformě. Toto rozhraní umožňuje uživatelům rychle a jednoduše importovat, prohlížet a zpracovávat data. Všechny hlavní moduly, přítomné v GRASS, jsou přístupné z nového grafického rozhraní. Rozhraní se skládá z jednotlivých oken sloužících k zadávání vstupních údajů, čímž je uživatelům zpřístupněna plná funkcionalita GRASS i přes toto rozhraní.

Vývojářský tým GRASS, jehož programátoři jsou rozptýleni téměř po všech kontinentech, pracuje na tom, aby funkcionalita GRASS byla i nadále rozšiřována. Budoucí vývoj zahrnuje i moduly, které uživatelům umožní plnohodnotnou práci s trojdimenzionálními daty, což není schopnost zcela běžná u ostatních GIS. Uživatelé budou v budoucnu moci pracovat v opravdovém 3D-GRASS s rastrovými, vektorovými a bodovými daty. Dodnes provedené změny zahrnují, oproti verzím GRASS 4.x, práci s daty s plovoucí desetinnou čárkou v oblasti rastrové a podporu více atributových informací v oblasti bodové.

GRASS je distribuován po Internetu a na CD-ROM v binární podobě pro různé UNIXové platformy, stejně jako v podobě zdrojového kódu v jazyce C. Zajímavým aspektem je příslušnost GRASS pod GNU General Public License (GPL, www.gnu.org), která z GRASS činí software svobodně přístupný a prodejný pouze s tou podmínkou, že jsou s jeho distribucí šířeny i zdrojové kódy a novému majiteli není bráněno v další distribuci. Samozřejmě lze ke GRASS poskytovat komerční služby. Tím se GRASS řadí k filosofii Open Source a Free Software, která již pomohla k rozšíření operačního systému GNU/Linux.

Z koncepčního hlediska je GRASS modulárně vystavěný GIS. To znamená, že veškerou práci s daty obsluhuje zvláštní modul. Tím jsou jednotlivé části GIS přehledně rozděleny a umožňují transparentní práci.

1.2. Vytvoření nového projektu

V principu je GRASS normální aplikační program. Od verze 4.2.1 disponuje grafickým uživatelským rozhraním, které lze obsluhovat pomocí myši. Vedle toho zůstala z předchozích verzí zachována možnost zadávání příkazů do terminálového okna GRASS [8]. Zaměříme se spíše na příkazy formou příkazového řádku, protože grafická okna GRASS se od sebe verze od verze liší.

GRASS spustíme příkazem: $ grass54

Objeví se uvítací okno programu, kde nastavíme cestu ke GRASS GIS databázi (obvykle /home/jmeno_uzivatele), vybereme location a následně mapset.

1.3. Location a mapset

Území projektu je v GRASS označováno jako location. Location je definována okrajovými souřadnicemi a projekcí. V této location se nachází jednotlivé pracovní oblasti – tzv. mapsets. Často stačí pouze jeden mapset, který je velký jako location. Při definici location bychom měli myslet na to, že se tyto hodnoty již později nedají změnit (případně pouze s jistými pokročilými znalostmi přímo v databázi). Proto zvolíme území raději větší, abychom předešli případným problémům. [8]

Obrázek 1.1. Vytvoření nového projektu

Vytvoření nového projektu

Při zakládání nové location (volba Create New Location) potřebujeme nejprve vyplnit název location, mapset a cestu k fyzickému uložení databáze.

Po vyplnění všech políček zmáčkneme ESC a ENTER a poté potvrdíme vytvoření nové location.

Následně jsme dotázáni, jestli máme veškeré potřebné informace pro založení nové location (jedná se souřadnicový systém, parametry dané projekce, souřadnice dané oblasti a krátký popis nové location). Zmáčkneme Y a ENTER.

Volba souřadnicového systému: stiskneme D pro Other Projection. Jsme dotázáni na One line description for location – napíšeme krátký popis nové location (např. Šumavská jezera) a potvrdíme.

Následuje název kartografického zobrazení. Pro vypsání všech dostupných zobrazení můžeme napsat list. V České republice se používá zobrazení S-JTSK (nebo zkráceně Křovákovo zobrazení), tak provedeme volbu krovak.

Poté musíme vybrat správný elipsoid a případné konstanty. Oblast České republiky je nejlépe aproximována Besselovým elipsoidem, který je zde pod volbou hermannskogel. Dále potvrdíme, že jednotky jsou metry a následuje poslední krok: zadání souřadnic krajních bodů požadované oblasti. Pokud je přesně neznáme, budeme pokračovat volbou ESC + ENTER a nastavíme je po importu požadovaných dat pomocí g.region - viz. 1.5.1 – „Nastavení pracovní oblasti pomocí g.region“

Pro naše potřeby zvolíme pro oblast Šumavských jezer souřadnice oblasti podle následujího obrázku.

Obrázek 1.2. Nastavení regionu

Nastavení regionu

Rozlišení rastru (GRID RESOLUTION) se zadává dle potřeby. Pro naše analýzy zvolíme velikost rastrové buňky 15 (v tomto případě odpovídá délka hrany rastrové buňky (pixelu) patnácti metrům). Tato velikost je pro analýzy postačující a výpočetní doba algoritmů je uspokojivá. Pokud se pracuje pouze s vektory, rozlišení rastru nehraje žádnou roli. Jelikož se ale budeme věnovat rastrovým analýzám, bude pro nás rozlišení rastru důležité. Špatná volba velikosti rastrové buňky může vést ke zkresleným výsledkům, nebo naopak k dramatickému nárůstu doby výpočtu.

Pak už jen zmáčknout ESC a ENTER, potvrdit vytvoření nové location, a potom klávesami ESC a ENTER spustíme vlastní prostředí GRASS.

1.4. Import dat

1.4.1. Import dat do GRASS 5.4 – v.in.shape

Modul v.in.shape importuje ESRI – shapefile do vnitřního formátu GRASS 5.4. Modul můžeme spustit napsáním v.in.shape do příkazové řádky – poté budeme vyzváni krok za krokem k zadávání parametrů. Nebo můžeme napsat příkaz přímo s parametry:

v.in.shape[-loud] input=jmeno [output=jmeno] [verbose=debug level] [logfile=jmeno] [snapdist=snapovací vzdálenost] [scale=orig. meritko] [attribute=jmeno atribrutu] [label=jmeno cat]

Poznámka

Vlajka, nebo parametr uvedený v hranatých závorkách […] je považován ze nepovinný.

V dalším textu používám termín rastrová mapa a vektorová mapa. Tyto pojmy jsou ekvivalentní pojmu vrstva používaném v ESRI-terminologii.

  • rastrová mapa je 2D matice s uloženými hodnotami, která vyjadřuje určitý povrch,

  • vektorová mapa je skupina linií reprezentující druh rozložení geografického jevu (např. vodstvo).

Popis flags (přepínačů)

  • -l importuje polygony (oblasti) jako jejich hraniční linie,

  • -o umožní přepsání již existující mapy stejného jména,

  • -u vygeneruje unikátní hodnotu atributů pro části složených objektů,

  • -d vypíše do konzolového okna názvy sloupců DBF tabulky.

Popis parametrů

  • input - název vstupního souboru. Obvykle /home/jmeno_uzivatele/adresar/soubor.shp,

  • output - název výstupní vektorové mapy. Implicitně je použito jméno shapefile,

  • verbose - číslo mezi 0 a 3, kterým volíme úroveň chybových hlášení. Implicitně je 1,

  • logfile - název souboru logů (soubor, kde zaznamenává výpis možných chyb při importu dat). Obvykle /home/jmeno_uzivatele/adresar/log.txt,

  • snapdist - snapovací vzdálenost

  • scale - nastaví vztažné měřítko, které bude uloženo do hlavičky vytvořené vektorové mapy. Implicitní hodnota je 1:2400,

  • attribute - je jméno atributového sloupce, který importujeme spolu s daty,

  • label - je jméno pod kterým budou atributy naiportovány.

Pokud import proběhl v pořádku, na obrazovku se vypíše Map „Cerne_Certovo“ imported apparently without problems. Pokud při importu nastaly nějaké chyby, tak se podíváme do log.txt a celý import zopakujeme. Většinou se jedná o chyby v zadané cestě k importovanému shapefile, nebo k log.txt (soubor log.txt nalezneme podle cesty zadané u atributu logfile).

Postup práce

Do příkazového řádku napíšeme příkaz v.in.shape a parametry vyplníme podle následujících obrázků:

Obrázek 1.3. Postup v.in.shape

Postup v.in.shape

Obrázek 1.4. Postup v.in.shape

Postup v.in.shape

1.4.2. Vybudování topologie nad daty – v.support

Po úspěšném importu je potřeba vybudovat topologii nad daty příkazem v.support, který se nespouští automaticky po dokončení importu dat.

Postup práce

Po spuštění v.support zadáme jméno importované mapy Cerne_Certovo (nebo příkazem list zobrazíme všechny dostupné vektorové mapy). Zvolíme možnost 1 – Build topology information a potvrdíme.

Obrázek 1.5. Budování topologie nad vektorovými daty

Budování topologie nad vektorovými daty

1.5. Vizualizace dat

1.5.1. Nastavení pracovní oblasti pomocí g.region

Modul g.region umožňuje uživateli upravovat nastavení aktuálního geografického regionu – minimální a maximální hodnoty zobrazovaných souřadnic. Tyto hranice mohou být uživatelem nastaveny přímo, nebo nastaveny z definičního souboru. Uživatel může vytvářet, upravovat a ukládat libovolné množství geografických regionů pro daný mapset. Pro aktuální kartografické zobrazení dat může být vybrán pouze jeden geografický region.

Postup práce

Jelikož jsme si při vytváření nové location nastavili hraniční souřadnice pro celou oblast šumavských jezer, byla by data Černého a Čertova jezera zobrazena v levém horním rohu GRASS monitoru. Musíme tedy nastavit region jen na oblast obou jezer. Spustíme funkci g.region a vybereme možnost 5 – Set from a vector map. Zde pak zadáme Cerne_Certovo.

Obrázek 1.6. Menu modulu g.region

Menu modulu g.region

1.5.2. Otevření okna „monitoru“ - d.mon

Data se v GRASSu prohlížejí v oknech zvaných „GRASS-monitory“. Značí se x0 až x6 a můžeme mít najednou otevřeno všech 7 těchto monitorů. V těchto oknech jsou vykreslována geografická data a geografické souřadnice. Okna mají vnitřní souřadnicovou strukturu, proto by se neměla měnit jejich velikost pomocí kurzoru myši. Také by se neměla zavírat kliknutím na křížek v pravém horním rohu.

Nejjednodušší způsob jak spustit monitor je z příkazové řádky:

d.mon start=x0

Jednodušší forma zápisu:

d.mon x0

Vypnutí monitoru se provede příkazem:

d.mon stop=x0

Pokud bychom do příkazové řádky napsali pouze d.mon, tak můžeme obsluhovat tento modul přes menu (zapínat, vypínat monitory).

1.5.3. Zobrazení importovaných dat - d.vect

Pokud máme otevřený monitor a importovaná data, můžeme si je prohlédnout příkazem:

d.vect map=Cerne_Certovo (nebo jen d.vect Cerne_Certovo)

  • map je název mapy, kterou chceme zobrazit

    Obrázek 1.7. Importované vrstevnice oblasti Černého a Čertova jezera

    Importované vrstevnice oblasti Černého a Čertova jezera

1.5.4. Zobrazení detailu – d.zoom

K zobrazení detailu dat můžeme použít funkci d.zoom. Jedná se vlastně o interaktivní změnu regionu. Výběr oblasti se provádí pomocí kurzoru myši.

1.5.5. Vyčištění monitoru – d.erase

Někdy je nutné před další prací vyčistit okno monitoru. K tomu použijeme příkaz d.erase. Jako parametr můžeme použít barvu, na kterou chceme překreslit pozadí (implicitně je nastavena barva černá).

Proto pokud budeme chtít dosáhnout výsledku jako je na předchozím obrázku (bílé pozadí a černé vrstevnice), použijeme následující sekvenci příkazů:

d.erase color=white

d.vect map=Cerne_Certovo color=black

1.5.6. Zobrazení grafického měřítka – d.barscale

Modul d.barscale zobrazí grafické měřítko aktuálně otevřené mapy.

d.barscale [-m] [-f] [-l] [-t] [bcolor=name] [tcolor=name] [at=x,y]

Pro naše použití je důležitá jen přepínač –m, která znamená, že umístění grafického měřítka provedeme levým tlačítkem myši.

Z parametrů použijeme pouze bcolor, cože je barva pozadí pod grafickým měřítkem a tcolor, což je barva grafického měřítka a textu.

Abychom dosáhli stejného výsledku jako na obrázku 1.7 – „Importované vrstevnice oblasti Černého a Čertova jezera“ zadáme do příkazové řádky:

d.barscale –m bcolor=white tcolor=black a levým tlačítkem myši umístíme měřítko. Pravým tlačítkem pak potvrdíme umístění.

1.5.7. Zobrazení hodnoty buňky

Modul d.what.rast zobrazí hodnotu buňky, kterou vybereme levým tlačítkem myši. Hodnota, spolu s dalšími informacemi o buňce (souřadnice, …) se zobrazí v terminálovém okně GRASS.