05. Úvod do GRASS GIS¶
Přednáška¶
Cvičení¶
Při prvním spuštění GRASS automaticky nastaví vše potřebné a spustí grafické uživatelské rozhraní.
Poznámka
Toto chování platí pro verzi GRASS 8. Ve starších verzí se zobrazovala uvítací obrazovka.
Data, se kterými GRASS pracuje, jsou organizována v hierarchické struktuře. Ta má tři úrovně:
- Database (báze dat) - běžný adresář na disku, např.
/opt/grassdata
- Location (lokace, projekt) - podadresář báze dat
- Data, která souvisejí s daným projektem, zájmovým územím
- Definována referenčním souřadnicovým systémem (referenční elipsoid, kartografické zobrazení, mapové jednotky)
- Mapset - podadresář lokace
- Soubor datových vrstev, které tvoří logický, tématický celek v rámci lokace
- Může odpovídat jednotlivým uživatelům (pokud na projektu pracuje více lidí) nebo uceleným analýzám (studium vegetace, záplavová území, terénní analýza, ...)
- Každá lokace musí obsahovat alespoň jeden mapset s unikátním názvem PERMANENT (základní datové vrstvy)
Podobu datové struktury zobrazuje panel Data
:
Při prvním spuštění je vytvořena ukázková lokace World LatLong WGS84. Rovněž se zobrazí vektorová mapa světa.
Poznámka
GRASS se liší od běžně používané terminologie GIS. Běžně používaný termín "vrstva" (layer) je v GRASS označován jako mapa (map).
Grafické uživatelské rozhraní GRASS je navrženo jako jednoduché a lehké. V podstatě se jedná o front-end, které volá příkazy systému GRASS na pozadí.
Tip
Pokud GUI spadne, lze jej znovu spustit pomocí g.gui
z podkladového terminálu (příkazového řádku).
GRASS GUI vede uživatele pomocí tooltipů, jak je znázorněno na obrázku výše. Výchozí lokace není určena pro skutečnou práci. Dalším krokem je obvykle vytvoření nového "projektu" (v GRASS terminologii lokace) s uživatelem definovaným souřadnicovým referenčním systémem.
Poznámka
Zvažte změnu jazykového nastavení na angličtinu v Nastavení >
Vlastnosti > Vzhled
. Nastavte jazyk na en
a
restartujte GRASS.
Vstupní data¶
Tip
Pro stažení dat RÚIAN můžeme použít "RÚIAN plugin" pro QGIS.
Poznámka
Předstažená data najdete na GIS.labu v adresáři Repository/155FGIS/05
.
Vytvoření lokace (projektu)¶
Kliknutím na tlačítko Create new Location
v nápovědě (nebo
kliknutím na tlačítko v panelu
Data
) se zobrazí průvodce vytvořením nové lokace. Novou GRASS
lokaci lze snadno vytvořit pomocí kódů
EPSG
nebo uživatelem definovaných geodat.
Na první stránce průvodce definujme název lokace (projektu). Volitelně můžeme přidat také krátký popis:
Na další stránce zvolme souřadnicový referenční systém (CRS), který bude pevně svázán s nově vytvořenou lokací. CRS se obvykle definuje pomocí
- kódu EPSG (
Select CRS from a list by EPSG or description
) nebo - uživatelem definovanými geodaty (
Read CRS from a georeferenced data file
).
Pro vytvoření nové lokace zvolme možnost Read CRS from a
georeferenced data file
:
V našem případě pro definici CRS zvolme jeden ze vstupních datových
souborů, a to městské části MAP_MESTSKECASTI_P.shp
:
Prostorový referenční systém je v našem případě nastaven na základě vstupního souboru na EPSG:5514.
Novou GRASS lokaci vytvořme kliknutím na tlačítko Finish
.
Po vytvoření nové lokace importujme data použitá pro definici CRS (v
našem případě MAP_MESTSKECASTI_P.shp
):
Ve výchozím nastavení GRASS vytvoří v nové lokaci také mapset PERMANENT. Zde jsou uložena všechna nastavení lokace. Tento mapset se typicky používá pro import vstupních geodat použitých v rámci projektu (lokace).
Importovanou vrstvu městských částí zobrazme dvojklikem na vrstvu v
panelu Data
:
Import rastrových dat¶
Importujme digitální model terénu (rastrová data) ve formátu
GeoTIFF. Rastrová data lze importovat z panelu Data
případně z menu
File > Import
raster data > Simplified raster import with reprojection
.
Dialogové okno umožňuje importovat jeden rastrový soubor (Soubor
)
nebo více souborů z adresáře (Directory
). V našem případě zvolme
jeden soubor a vyberme DMT.tif
.
Důležité
Pokud je souřadnicový referenční systém (CRS) vstupních dat
liší od CRS aktuální GRASS lokace (Project match: No
), dojde
při importu dat k jejich transformaci do cílového CRS GRASS lokace.
GRASS nepodporuje "on-the-fly" transformaci hned z několika důvodů.
V našem případě je ale informace o CRS ve vstupním souboru nepřesně zapsána.
Transformace dat není v tomto případě žádoucí. Z tohoto důvodu zaškrtneme
volbu Override projection check
. Vstupní
data jsou ve stejném souřadnicovém systému jako GRASS lokace.
Importovaná rastrová data se automaticky zobrazí v mapovém
okně. Průběh importu se zobrazuje na kartě Console
.
Ve vlastnostech (pravé tlačítko myši nad vrstvou v panelu Layers
a
Properties
) vrstvy městských částí nastavme transparetní výplň a
barvu hranic plošných prvků:
Základní metadata rastrové vrstvy vypišme z kontextového menu v panelu
Layers
(Metadata
):
Rastrové mapy jsou reprezentovány pravidelnou mřížkou. Jsou podporovány tři datové typy:
- CELL (celé číslo)
- FCELL (float)
- DCELL (double)
Úkol
Zjistěte prostorové rozlišení rastru.
Import vektorových dat¶
Importujme vrstvu vodních ploch z datasetu Data50 ve formátu Esri
Shapefile. Vektorová data lze importovat z panelu Data
případně z menu
File >
Import vector data > Simplified vector import with reprojection
.
Poznámka
Na rozdíl od rastrových dat je v tomto případě souřadnicový systém
detekován korektně (viz položka Projection match
).
Podobně importujme vodní toky z datasetu Data50 a nastavme vlastnosti zobrazení v mapovém okně. Výsledek může vypadat následovně:
Základní metadata vektorové vrstvy vypišme opět z kontextového menu v
panelu Layers
(Metadata
):
Podívejme se blíže na vektorová metadata vrstvy městské části. Místo "polygonů" vidíme "plochy" a další druhy geometrických prvků. GRASS nepřistupuje k vektorovým datům jako k jednoduchým prvkům (simple features), ale topologicky. Ve výpisu vidíme základní topologická primitiva jako body, linie, hranice, centroidy, plochy ostrovy.
Tip
Více k tématu topologická vektorová data najdete ve školení GISMentors.
Nastavení tabulky barev¶
Výchozí tabulka barev není zcela vhodná. Zvolme vhodnější tabulku
barev elevation
. V kontextovém menu (pravé tlačítko myši nad vrstvou
v panelu Layers
a Set color table
) rastrové vrstvy nastavme v
záložce předefinovanou tabulku barev elevation
.
Atributové dotazování¶
Vyberme městskou část "Praha 7" jako naše zájmové území. Atributový dotaz proveďme pomocí správce atributových dat:
Tip
Stejnou operaci lze provést pomocí nástroje v.extract
(viz následující sekce), což se hodí ve skriptech:
Výpočetní nástroje¶
GRASS GIS je modulární systém, který se skládá z několika stovek
nástrojů ("modulů" v GRASS terminologii). Nástroje jsou přístupné z
menu, záložkyTools
, nebo z příkazového řádku (Console
).
Najděme nástroj, který ořeže vodní plochy podle zájmového území Prahy 7.
Vyhledejme nástroj podle klíčového slova 'clip'. Nástroj, který
hledáme, se jmenuje v.clip
. Modul lze otevřít pomocí tlačítka Run
.
Tip
Nástroje (moduly) lze spouštět z dialogových oken grafického
uživatelského rozhraní v kartě Console
, nebo pomocí rozhraní API
jazyka Python (to se naučíme v následující lekci).
Spuštění nástroje v.clip
z Console
:
Obrázek níže ukazuje dialog nástroje v.clip
.
Tip
Syntaxe příkazu se zobrazuje ve stavovém řádku dialogu.
Příkaz lze zkopírovat do schránky pomocí tlačítka
Copy
pro pozdější použití.
Odpovídající příkaz pro příkazovou řádku by vypadal následovně:
Oříznuté vodní plochy zájmovou oblastí (na pozadí WMS ZABAGED):
Každý nástroj v GRASS GIS začíná předponou. Tento prefix seskupuje nástroje do několik sekcí, viz tabulka níže.
prefix | sekce | popis |
---|---|---|
db. |
database |
Správa atributový dat |
d. |
display |
Zobrazení mapových vrstev, dekorací, a pod. |
g. |
general |
Správa, kopírování mapových vrstev a pod. |
i. |
imagery |
Zpracování obrazových dat |
ps. |
postscript |
Příprava mapových výstupů |
r. |
raster |
Zpracování rastrových dat |
r3. |
raster3D |
Zpracování 3D rastrových dat |
t. |
temporal |
Zpracování časoprostorových dat |
v. |
vector |
Zpracování vektorových dat |
Tip
Nástroje systému GRASS lze v terminálu efektivně kombinovat se standardními
příkazy UNIXu. Základní informace o syntaxi nástroje poskytuje přepínač --help
.
Příklad:
Výpočetní region¶
Výpočetní region je klíčovým nastavením ve zpracování rastrových dat v GRASS GIS. Na rozdíl od jiných GIS softwarů, jako je Esri ArcGIS, který nastavuje výpočetní oblast na základě vstupních dat, GRASS tuto operaci nechává na uživateli.
Důležité
Uživatel tedy musí definovat výpočetní oblast před jakýmkoli zpracováním rastrových dat!!!
Výpočetní region je definován pomocí rozsahu (sever, jih, východ, západ) a prostorového rozlišení v obou směrech (východ-západ, sever-jih). Všimněme si, že GRASS podporuje pouze pravidelné mřížky.
Poznámka
Pro 3D rastrová data (známá jako "volumes") je k dispozici rozšíření 3D výpočetní mřížky.
Tip
Aktuální rozsah výpočetní oblasti je ve výchozím nastavení vizualizován v mapovém okně jako červený obdélník.
Velká většina nástrojů pro zpracování rastrových dat (r.*
) respektuje
nastavení výpočetního regionu. Existuje několik výjimek, jako jsou
importní nástroje (např. r.import
). Na druhou stranu většina
nástrojů pro zpracování vektorových dat (v.*
) výpočetní region
zcela ignoruje, protože pro ně není definován žádná výpočetní mřížka.
Výpočetní region můžeme snadno nastavit podle rastrových nebo
vektorových vrstev v panelu Layers
:
Všimněme si, že při nastavování výpočetní oblasti na základě vektorové
vrstvy se pouze nastavuje pouze prostorový rozsah. Výpočetní mřížku je
vhodné zarovnat na základě rastrové vrstvy použité pro výpočet (Align
computational region to selected map
). Jinak by mohlo dojít k
nechtěnému převzorkování dat.
Tip
Výpočetní region lze velmi efektivně spravovat pomocí nástroje g.region
. Příklad níže:
Topografické analýzy povrchu¶
Základní topografické analýzy povrchu poskytuje modul r.slope.aspect
(Raster > Terrain analysis > Slope and aspect
).
V dialogu nejprve zvolme vstupní rastrovou mapu s digitálním modelem
terénu a poté v záložce Output
požadovaný výstup:
Úkol
Výpočet opakujte s různým nastavením výpočetního regionu.
Vypočítejte také orientaci svahu pro zájmové území Prahy 7:
Nastavení masky¶
Masku můžeme nastavit pomocí nástroje r.mask
na základě vstupních
rastrových či vektorových dat. Maska se vytvoří v aktuálně nastaveném
výpočetním regionu.
V našem případě nastavme masku na základě zájmového území dané Prahou 7.
Mapa sklonu svahu pro území Prahy 7 v barevné tabulce sepia
:
Důležité
Maska je aplikována globálně pro všechny následné rastrové operace v daném mapsetu.
Masku můžeme odstranit pomocí příkazu r.mask -r
.
Simulace povodně¶
Nejprve nastavme výpočetní region:
Pomocí nástroje
Query raster/vector
maps(s)
v mapové okně odečteme souřadnici zvoleného bodu (seed) a
jeho nadmořskou výšku. Např.
Simulaci povodně proveďme pomocí nástroje r.lake
:
Ukázka simulace (na pozadí ČÚZK WMS Ortofoto):
Nyní spočťeme pro parcely počet zaplavených buněk, minimální, maximální a průměrnou výšku povodně:
Poznámka
Vzhledem k tomu, že pracujeme s prostorovým rozlišením 1 m, tak "počet zaplavených buněk" udává výměru zaplaveného území v m2.
Vypišme pro zaplavené parcely jejich číslo, výměru, výměru zaplaveného území, minimální, maximální a průměrnou výšku povodně. Ve výpisu budeme ignorovat parcely s druhem pozemku 11 (vodní plocha).
v.db.select map=parcely columns=KmenoveCislo,PododdeleniCisla,VymeraParcely,zaplava_number,zaplava_minimum,zaplava_maximum,zaplava_average where="DruhPozemkuKod != 11 and zaplava_number > 0"
Příklad výpisu:
KmenoveCislo|PododdeleniCisla|VymeraParcely|zaplava_number|zaplava_minimum|zaplava_maximum|zaplava_average
1929|1|35885|344|0.0024871826171875|1.45750427246094|0.892444211383199
1904|7|282|281|0.190658569335938|0.277130126953125|0.218380150845891
1903|13|585|586|0.07611083984375|0.533905029296875|0.259752032699845
...
Přidejme do atributové tabulky nový atribut zaplava_perc
:
A dopočítejme procento zaplaveného území pro každou parcelu:
Tip
Tyto operace můžeme provést také ve správci atributových dat.
Vypišme parcely, které nepatří do vodních ploch a mají zaplavenu alespoň čtvrtinu své výměry:
v.db.select map=parcely columns=KmenoveCislo,PododdeleniCisla,zaplava_maximum,zaplava_average where="DruhPozemkuKod != 11 and zaplava_perc > 25"
Příklad výpisu:
KmenoveCislo|PododdeleniCisla|zaplava_maximum|zaplava_average
1904|7|0.277130126953125|0.218380150845891
1903|13|0.533905029296875|0.259752032699845
1903|12|0.2393798828125|0.140911561656373
...
A vizualizace: