153ZODH / 2. cvičení
< Stránky předmětu • Předchozí cvičení • Další cvičení
Osnova
Cvičení je zaměřeno na základy práce s GRASSem - vizualizaci a statistické charakteristiky rastrových vrstev. Jsou vysvětleny základní pojmy jako tabulka barev či výpočetní region.
Seznam použitých příkazů
- g.region
- r.info
- d.mon
- d.rast
- d.zoom
- r.stats
- r.report
- d.rast.num
- d.what.rast
- r.colors
- d.erase
- d.redraw
Vizualizace rastrových vrstev
GRASS dovoluje zobrazit pouze určité hodnoty či interval hodnot dané rastrové vrstvy, viz parametr catlist (celočíselné hodnoty), resp. vallist (hodnoty s plovoucí desetinnou čárkou) modulu d.rast.
# zobrazit pouze rastrové buňky s hodnotou 70 # d.rast map=tm1 catlist=70 # # zobrazit rastrové buňky s hodnotou 70 a <75;80> # d.rast map=tm1 catlist=70,75-80 # # zobrazit rastrové buňky mimo interval <75;80>; podkladová barva červená # d.rast -i map=tm1 catlist=75-80 bg=red # # zobrazit všechny rastrové buňky v intervalu <60;80>; podkladová barva červená (viz obr. č.1) # d.rast map=tm1 catlist=60-80 bg=red

Hodnotám buněk je pro účel jejich vizualizace přiřazena barevná hodnota. Toto pravidlo přiřazení se označuje jako tabulka barev. Směrodatná je přirozeně číselná hodnota buňky, nikoliv barevná hodnota, která je na základě nastavené tabulky barev rastrové buňce při zobrazení přiřazena. Při změně tohoto pravidla nedochází modifikaci dat, ta jsou pouze odlišně vizuálně interpretována.
Číselné hodnoty buněk lze zobrazit pomocí modulu d.rast.num.
# zobrazit číselné hodnoty buněk (text červeně) # d.rast.num map=tm1 text=red

GRASS umožňuje interaktivní dotazování hodnot rastrových buněk, jde o modul d.what.rast.
Tabulka barev
Tabulka barev definuje pravidlo na základě něhož je rastrové buňce přiřazena jedinečná barevná hodnota. Pro nastavení tabulky barev slouží modul r.colors. Kromě předdefinovaných pravidel podporuje modul tabulku barev definovanou uživatelem či dovoluje zkopírování již existující tabulky barev přiřazené jiné rastrové vrstvě. Několik příkladů (v případě dynamických tabulek barev jako je např. grey.eq hraje roli aktuální výpočetní region). Pro vizualizaci družicových snímků se používají tzv. odstíny šedi.
# aktivní region # g.region rast=tm1 # # nastavení předdefinované tabulky barev (červená-žlutá-zelená) # r.colors tm1 color=ryg # # zobrazit družicový snímek # d.rast tm1 # # definice vlastní tabulky # r.colors tm1 color=rules
Pravidla se definují jako (v jednom řádku):
[hodnota buňky] [barva]
Barevnou hodnotu lze definovat pomocí RGB trojice ("0:0:0" - černá) nebo jménem barvy. Příklad uživatelské tabulky barev:
0 0 0 0 50 red 60 green 80 blue 255 white
# # odstíny šedi # r.colors tm1 color=grey d.redraw # # převzít již existující tabulku barev # r.colors tm1 rast=tm2 d.redraw # # vyrovnané odstíny šedi # r.colors tm1 color=grey.eq d.redraw

Region
Moduly GRASSu pro zpracování rastrových dat (moduly s prefixem r.) pracují vždy s daty v tzv. aktuálním výpočetním regionu (rozsah, prostorové rozlišení). Tento region se může lišit od regionu nastaveného pro vizualizaci dat ve wxGUI mapovém okně. Pro manipulaci s výpočetním regionem slouží modul g.region.
# výpis aktuálního výpočetního regionu # g.region -p projection: 99 (krovak) zone: 0 datum: towgs84=570.8,85.7,462.8,4.998,1.587,5.261,3.56 ellipsoid: bessel north: -957500 south: -1007318 west: -830529 east: -763855.0602047 nsres: 29.99277544 ewres: 29.99277544 rows: 1661 cols: 2223
Kromě informace o souřadnicovém systému, rozsahu území (severní, jižní, západní a východní souřadnice) obsahuje výpis informace o prostorovém rozlišení (směr sever-jih, východ-západ) a počtu řádek a sloupců. Geometrické rozlišení družicového snímku (LandSat TM5, kanál 1) je tedy 30m (tj. jeden pixel odpovídá na zemském povrchu čtverci o rozměrech 30x30m).
Metadata rastrových vrstev
Základní informace o rastrových datech - metadata - poskytuje modul r.info.
r.info tm1 +----------------------------------------------------------------------------+ | Layer: tm1 Date: Thu Oct 21 09:47:24 2004 | | Mapset: PERMANENT Login of Creator: martin | | Location: sevcech | | DataBase: /home/martin/grassdata | | Title: Landsat 5 TM - band 1 ( tm1 ) | |----------------------------------------------------------------------------| | | | Type of Map: raster Number of Categories: 255 | | Data Type: CELL | | Rows: 1661 | | Columns: 2223 | | Total Cells: 3692403 | | Projection: krovak (zone 0) | | N: -957500 S: -1007318 Res: 29.99277544 | | E: -763855.0602047 W: -830529 Res: 29.99277544 | | Range of data: min = 0 max = 255 | | | | Data Source: | | | | | | | | Data Description: | | generated by r.in.gdal | | | | | +----------------------------------------------------------------------------+
Výpis poskytuje informace o typ dat (Data Type): CELL (celočíselná mapa, tj. hodnota rastrové buňky představuje celé číslo), DCELL (mapa s hodnotami s plovoucí desetinnou čárkou); počet kategorií a rozsah dat (Number of Categories, Range of data).
Základní statistika rastrových dat
Základní charakteristiky jednotlivých hodnot buněk rastrové vrstvy poskytuje modul r.stats. Modul na standardní výstup (parametr output umožňuje uložit vytvořenou statistiku do souboru) vytiskne na jeden řádek hodnotu buňky a hledanou veličinu (nastaveno pomocí přepínače).
# celkový počet rastrových buněk # r.stats tm1 -c # # procenta zastoupení (přibližně) # r.stats tm1 -p # # celková plocha (v mapových jednotkách) # r.stats tm1 -a
Např. pro celkový počet buněk:
r.stats: 100% 0 82866 55 3 56 6 57 84 58 1582 59 9348 60 17795 61 63258 62 113037 63 110564 ...
Poznámka: Síla GRASSu je v možnosti kombinace jednotlivých modulů GRASSu s dalšími (systémovými) nástroji OS GNU/Linux. Ukážeme si jak seřadit výstup modulu r.stats podle celkového počtu buněk, nikoliv podle jejich hodnot. Nejprve prohodíme sloupce (první bude obsahovat počty buněk) - program awk, tento polotovar zpracuje systémová aplikace sort, která provede požadované numerické setřídění. Poznamenejme, že awk ani sort nejsou součástí GRASSu, jde o standardní programy, které naleznete v distribuci GNU/Linuxu. Celý příkaz vypadá asi takto:
r.stats tm1 -c | awk '{print $2,$1}' | sort -n | awk '{print $2,$1}'
Zde je modifikovaný výstup:
r.stats: 100% 55 3 250 6 56 6 201 10 246 10 225 14 ... 82 67454 0 82866 79 85112 72 104687 63 110564 62 113037 77 129905 76 134776 71 140830 78 143541 68 156477 73 165429 64 174129 67 189458 74 196145 70 201288 75 203466 69 205577 65 220524 66 281680
Podobnou charakteristiku rastrové vrstvy poskytuje modul r.report, jeho výstup má formu úhledně sestavené tabulky.
# tabulka (celkový počet buněk, procenta, výměra v hektarech) # r.report tm1 units=c,p,h +-----------------------------------------------------------------------------+ | RASTER MAP CATEGORY REPORT | |LOCATION: sevcech Sun Oct 16 17:17:05 2005| |-----------------------------------------------------------------------------| | north: -957500 east: -763855 | |REGION south: -1007318 west: -830529 | | res: 29.99277544 res: 30.00630063 | |-----------------------------------------------------------------------------| |MASK:none | |-----------------------------------------------------------------------------| |MAP: Landsat 5 TM - band 1 (tm1 in PERMANENT) | |-----------------------------------------------------------------------------| | Category Information | cell| % | | | #|description | count| cover| hectares| |-----------------------------------------------------------------------------| | 0| . . . . . . . . . . . . . . . . . . . . . . . | 82866| 2.25| 7457.71| | 55| . . . . . . . . . . . . . . . . . . . . . . . | 3| 0.00| 0.27| | 56| . . . . . . . . . . . . . . . . . . . . . . . | 6| 0.00| 0.54| | 57| . . . . . . . . . . . . . . . . . . . . . . . | 84| 0.00| 7.56| | 58| . . . . . . . . . . . . . . . . . . . . . . . | 1582| 0.04| 142.38| | 59| . . . . . . . . . . . . . . . . . . . . . . . | 9348| 0.25| 841.29| | 60| . . . . . . . . . . . . . . . . . . . . . . . | 17795| 0.48| 1601.50| | 61| . . . . . . . . . . . . . . . . . . . . . . . | 63258| 1.71| 5693.04| | 62| . . . . . . . . . . . . . . . . . . . . . . . | 113037| 3.06| 10,173.02| ... |249| . . . . . . . . . . . . . . . . . . . . . . . | 23| 0.00| 2.07| |250| . . . . . . . . . . . . . . . . . . . . . . . | 6| 0.00| 0.54| |251| . . . . . . . . . . . . . . . . . . . . . . . | 18| 0.00| 1.62| |252| . . . . . . . . . . . . . . . . . . . . . . . | 22| 0.00| 1.98| |253| . . . . . . . . . . . . . . . . . . . . . . . | 25| 0.00| 2.25| |254| . . . . . . . . . . . . . . . . . . . . . . . | 14| 0.00| 1.26| |255| . . . . . . . . . . . . . . . . . . . . . . . | 2376| 0.06| 213.83| |-----------------------------------------------------------------------------| |TOTAL |3690742|100.00|332,156.53| +-----------------------------------------------------------------------------+
Univariatní statistika
Základní statistiku rastrových dat poskytuje modul r.univar.
r.univar tm1 total null and non-null cells: 1204 total null cells: 0 Of the non-null cells: ---------------------- n: 1204 minimum: 60 maximum: 75 range: 15 mean: 66.1163 standard deviation: 2.28888 variance: 5.23897 variation coefficient: 3.4619 % sum: 79604
Modul podobně jako většina modulů pro zpracovaní rastrových/obrazových dat respektuje aktivní výpočetní region! Před vytvořením statistiky celého snímku, musíme nejprve nastavit výpočetní region podle regionu dané rastrové vrstvy.
# vytvořit statistiku pro celý snímek # g.region rast=tm1 r.univar tm1 total null and non-null cells: 3692403 total null cells: 0 Of the non-null cells: ---------------------- n: 3692403 minimum: 0 maximum: 255 range: 255 mean: 71.1857 standard deviation: 15.094 variance: 227.83 variation coefficient: 21.2037 % sum: 2.62846e+08
Poznámka: Na rozdíl např. od ARC/INFO rozlišuje GRASS hodnotu buňky "0" a "žádná data" (no-data, NULL).
Legenda:
n | počet buněk |
minimum | minimální hodnota buňky |
maximum | maximální hodnota buňky |
range | rozsah |
mean | střední hodnota |
standard deviation | směrodatná odchylka |
variance | variance |
variation coefficient | koeficient variace |
sum | suma hodnot |