153YZOD Zpracování obrazových dat 2006 - 2. cvičení: Porovnání verzí

Z GeoWikiCZ
m (odstraneni <pre></pre>)
Řádek 32: Řádek 32:
nastavení regionu vypsat do&nbsp;konzole; viz&nbsp;parametr <tt>-p</tt>):
nastavení regionu vypsat do&nbsp;konzole; viz&nbsp;parametr <tt>-p</tt>):


<pre>
#nastavit aktivní region exaktně podle rastrové vrstvy a vypsat nastavení do konzole
#nastavit aktivní region exaktně podle rastrové vrstvy a vypsat nastavení do konzole
#
#
GRASS:~&nbsp;>&nbsp;g.region rast=tm1 -p
GRASS:~&nbsp;>&nbsp;g.region rast=tm1 -p
 
 
projection: 99 (krovak)
projection: 99 (krovak)
zone:      0
zone:      0
datum:      towgs84=570.8,85.7,462.8,4.998,1.587,5.261,3.56
datum:      towgs84=570.8,85.7,462.8,4.998,1.587,5.261,3.56
ellipsoid:  bessel
ellipsoid:  bessel
north:      -957500
north:      -957500
south:      -1007318
south:      -1007318
west:      -830529
west:      -830529
east:      -763855.0602047
east:      -763855.0602047
nsres:      29.99277544
nsres:      29.99277544
ewres:      29.99277544
ewres:      29.99277544
rows:      1661
rows:      1661
cols:      2223
cols:      2223
</pre>


Vše tedy nasvědčuje tomu, že pracujeme s&nbsp;georeferencovanými - souřadnicově připojenými daty.
Vše tedy nasvědčuje tomu, že pracujeme s&nbsp;georeferencovanými - souřadnicově připojenými daty.
Řádek 62: Řádek 60:
poskytuje modul <tt>r.info</tt>:
poskytuje modul <tt>r.info</tt>:


<pre>
GRASS:~&nbsp;>&nbsp;r.info tm1
GRASS:~&nbsp;>&nbsp;r.info tm1
 
 
+----------------------------------------------------------------------------+
+----------------------------------------------------------------------------+
| Layer:    tm1                            Date: Thu Oct 21 09:47:24 2004    |
| Layer:    tm1                            Date: Thu Oct 21 09:47:24 2004    |
| Mapset:  PERMANENT                      Login of Creator: martin          |
| Mapset:  PERMANENT                      Login of Creator: martin          |
| Location: sevcech                                                          |
| Location: sevcech                                                          |
| DataBase: /home/martin/grassdata                                          |
| DataBase: /home/martin/grassdata                                          |
| Title:    Landsat 5 TM - band 1 ( tm1 )                                    |
| Title:    Landsat 5 TM - band 1 ( tm1 )                                    |
|----------------------------------------------------------------------------|
|----------------------------------------------------------------------------|
|                                                                            |
|                                                                            |
|  Type of Map:  raster              Number of Categories: 255              |
|  Type of Map:  raster              Number of Categories: 255              |
|  Data Type:    CELL                                                      |
|  Data Type:    CELL                                                      |
|  Rows:        1661                                                      |
|  Rows:        1661                                                      |
|  Columns:      2223                                                      |
|  Columns:      2223                                                      |
|  Total Cells:  3692403                                                    |
|  Total Cells:  3692403                                                    |
|        Projection: krovak (zone 0)                                        |
|        Projection: krovak (zone 0)                                        |
|            N:    -957500    S:  -1007318  Res: 29.99277544              |
|            N:    -957500    S:  -1007318  Res: 29.99277544              |
|            E: -763855.0602047    W:    -830529  Res: 29.99277544          |
|            E: -763855.0602047    W:    -830529  Res: 29.99277544          |
|  Range of data:    min =  0 max = 255                                    |
|  Range of data:    min =  0 max = 255                                    |
|                                                                            |
|                                                                            |
|  Data Source:                                                            |
|  Data Source:                                                            |
|                                                                            |
|                                                                            |
|                                                                            |
|                                                                            |
|                                                                            |
|                                                                            |
|  Data Description:                                                        |
|  Data Description:                                                        |
|    generated by r.in.gdal                                                  |
|    generated by r.in.gdal                                                  |
|                                                                            |
|                                                                            |
|                                                                            |
|                                                                            |
+----------------------------------------------------------------------------+
+----------------------------------------------------------------------------+
</pre>


Jde především o&nbsp;typ dat (Data Type): CELL (celočíselná mapa, tj.&nbsp;hodnota rastrové
Jde především o&nbsp;typ dat (Data Type): CELL (celočíselná mapa, tj.&nbsp;hodnota rastrové
Řádek 109: Řádek 105:
(zoom in/out).
(zoom in/out).


<pre>
GRASS:~&nbsp;>&nbsp;d.mon x0
GRASS:~&nbsp;>&nbsp;d.mon x0
GRASS:~&nbsp;>&nbsp;d.rast tm1
GRASS:~&nbsp;>&nbsp;d.rast tm1
GRASS:~&nbsp;>&nbsp;d.zoom
GRASS:~&nbsp;>&nbsp;d.zoom
 
 
Buttons:
Buttons:
  Left:  1. corner
Left:  1. corner
  Middle: Unzoom
Middle: Unzoom
  Right:  Quit
Right:  Quit
</pre>


Levým tlačítkem myši vybereme první roh zvoleného detailu.
Levým tlačítkem myši vybereme první roh zvoleného detailu.


<pre>
Buttons:
Buttons:
  Left:  1. corner (reset)
Left:  1. corner (reset)
  Middle: 2. corner
Middle: 2. corner
  Right:  Quit
Right:  Quit
</pre>


A&nbsp;středním tlačítkem dokončíme označení výběru. Funkce tlačítek myši se změní.
A&nbsp;středním tlačítkem dokončíme označení výběru. Funkce tlačítek myši se změní.


<pre>
Buttons:
Buttons:
  Left:  1. corner
Left:  1. corner
  Middle: Unzoom
Middle: Unzoom
  Right:  Quit
Right:  Quit
</pre>


Zmenšení detailu tedy obstará prostřední tlačítko myši, pravé ukončí práci s&nbsp;modulem. Pokud  
Zmenšení detailu tedy obstará prostřední tlačítko myši, pravé ukončí práci s&nbsp;modulem. Pokud  
Řádek 146: Řádek 136:
modulu rozšířena o&nbsp;posun (centraci pohledu):
modulu rozšířena o&nbsp;posun (centraci pohledu):


<pre>
Buttons:
Buttons:
  Left:  Zoom menu
Left:  Zoom menu
  Middle: Pan
Middle: Pan
  Right:  Quit menu
Right:  Quit menu
</pre>


Podobně se chová i&nbsp;přepínač <tt>-p</tt>, který nabízí pouze funkci posunu.
Podobně se chová i&nbsp;přepínač <tt>-p</tt>, který nabízí pouze funkci posunu.
Řádek 177: Řádek 165:
(nastaveno pomocí přepínače).
(nastaveno pomocí přepínače).


<pre>
#celkový počet rastrových buněk
#celkový počet rastrových buněk
#
#
GRASS:~&nbsp;>&nbsp;r.stats tm1 -c
GRASS:~&nbsp;>&nbsp;r.stats tm1 -c
#
#
#procenta (přibližně)
#procenta (přibližně)
#
#
GRASS:~&nbsp;>&nbsp;r.stats tm1 -p
GRASS:~&nbsp;>&nbsp;r.stats tm1 -p
#
#
#celková plocha (v mapových jednotkách)
#celková plocha (v mapových jednotkách)
#
#
GRASS:~&nbsp;>&nbsp;r.stats tm1 -a
GRASS:~&nbsp;>&nbsp;r.stats tm1 -a
</pre>


Např.&nbsp;pro celkový počet buněk:
Např.&nbsp;pro celkový počet buněk:


<pre>
r.stats:  100%
r.stats:  100%
0 82866
0 82866
55 3
55 3
56 6
56 6
57 84
57 84
58 1582
58 1582
59 9348
59 9348
60 17795
60 17795
61 63258
61 63258
62 113037
62 113037
63 110564
63 110564
...
...
</pre>


''Poznámka: Pokud výpis přesahuje velikost okna, je dobré tento výstup přesměrovat do programu <tt>less</tt>, který umožňuje pohyb mezi jednotlivými stránkami. Tento program ukončíme klávesou <tt>q</tt> (quit). V&nbsp;tomto případě by příkaz vypadal takto <tt>r.stats tm1&nbsp;|&nbsp;less</tt>.''
''Poznámka: Pokud výpis přesahuje velikost okna, je dobré tento výstup přesměrovat do programu <tt>less</tt>, který umožňuje pohyb mezi jednotlivými stránkami. Tento program ukončíme klávesou <tt>q</tt> (quit). V&nbsp;tomto případě by příkaz vypadal takto <tt>r.stats tm1&nbsp;|&nbsp;less</tt>.''
Řádek 227: Řádek 211:
asi takto:
asi takto:


<pre>
GRASS:~&nbsp;>&nbsp;r.stats tm1 -c | awk '{print $2,$1}' | sort -n | awk '{print $2,$1}'
GRASS:~&nbsp;>&nbsp;r.stats tm1 -c | awk '{print $2,$1}' | sort -n | awk '{print $2,$1}'
</pre>


''Uživatel neznalý příkazové řádky, rour, démonů a podobných věcí se děsí, přestává číst a znechuceně odchází. Nic není tak složité jak vypadá!''
''Uživatel neznalý příkazové řádky, rour, démonů a podobných věcí se děsí, přestává číst a znechuceně odchází. Nic není tak složité jak vypadá!''
Řádek 235: Řádek 217:
Zde je modifikovaný výstup:
Zde je modifikovaný výstup:


<pre>
r.stats:  100%
r.stats:  100%
55 3
55 3
250 6
250 6
56 6
56 6
201 10
201 10
246 10
246 10
225 14
225 14
...
...
82 67454
82 67454
0 82866
0 82866
79 85112
79 85112
72 104687
72 104687
63 110564
63 110564
62 113037
62 113037
77 129905
77 129905
76 134776
76 134776
71 140830
71 140830
78 143541
78 143541
68 156477
68 156477
73 165429
73 165429
64 174129
64 174129
67 189458
67 189458
74 196145
74 196145
70 201288
70 201288
75 203466
75 203466
69 205577
69 205577
65 220524
65 220524
66 281680
66 281680
</pre>


Podobné charakteristiky mapy poskytuje i&nbsp;modul <tt>r.report</tt>, jeho výstup
Podobné charakteristiky mapy poskytuje i&nbsp;modul <tt>r.report</tt>, jeho výstup
má formu úhledně sestavené tabulky. Např.:
má formu úhledně sestavené tabulky. Např.:


<pre>
#tabulka (celkový počet buněk, procenta, výměra v hektarech)
#tabulka (celkový počet buněk, procenta, výměra v hektarech)
#
#
GRASS:~&nbsp;>&nbsp;r.report tm1 units=c,p,h
GRASS:~&nbsp;>&nbsp;r.report tm1 units=c,p,h
 
+-----------------------------------------------------------------------------+
+-----------------------------------------------------------------------------+
|                        RASTER MAP CATEGORY REPORT                          |
|                        RASTER MAP CATEGORY REPORT                          |
|LOCATION: sevcech                                    Sun Oct 16 17:17:05 2005|
|LOCATION: sevcech                                    Sun Oct 16 17:17:05 2005|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|          north:    -957500    east:    -763855                            |
|          north:    -957500    east:    -763855                            |
|REGION    south:    -1007318    west:    -830529                            |
|REGION    south:    -1007318    west:    -830529                            |
|          res:  29.99277544    res:  30.00630063                            |
|          res:  29.99277544    res:  30.00630063                            |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|  
|MASK:none                                                                    |
|MASK:none                                                                    |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|MAP: Landsat 5 TM - band 1 (tm1 in PERMANENT)                                |
|MAP: Landsat 5 TM - band 1 (tm1 in PERMANENT)                                |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|              Category Information                |  cell|  %  |          |
|              Category Information                |  cell|  %  |          |
|  #|description                                    |  count| cover|  hectares|
|  #|description                                    |  count| cover|  hectares|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|  0| . . . . . . . . . . . . . . . . . . . . . . . |  82866|  2.25|  7457.71|
|  0| . . . . . . . . . . . . . . . . . . . . . . . |  82866|  2.25|  7457.71|
| 55| . . . . . . . . . . . . . . . . . . . . . . . |      3|  0.00|      0.27|
| 55| . . . . . . . . . . . . . . . . . . . . . . . |      3|  0.00|      0.27|
| 56| . . . . . . . . . . . . . . . . . . . . . . . |      6|  0.00|      0.54|
| 56| . . . . . . . . . . . . . . . . . . . . . . . |      6|  0.00|      0.54|
| 57| . . . . . . . . . . . . . . . . . . . . . . . |    84|  0.00|      7.56|
| 57| . . . . . . . . . . . . . . . . . . . . . . . |    84|  0.00|      7.56|
| 58| . . . . . . . . . . . . . . . . . . . . . . . |  1582|  0.04|    142.38|
| 58| . . . . . . . . . . . . . . . . . . . . . . . |  1582|  0.04|    142.38|
| 59| . . . . . . . . . . . . . . . . . . . . . . . |  9348|  0.25|    841.29|
| 59| . . . . . . . . . . . . . . . . . . . . . . . |  9348|  0.25|    841.29|
| 60| . . . . . . . . . . . . . . . . . . . . . . . |  17795|  0.48|  1601.50|
| 60| . . . . . . . . . . . . . . . . . . . . . . . |  17795|  0.48|  1601.50|
| 61| . . . . . . . . . . . . . . . . . . . . . . . |  63258|  1.71|  5693.04|
| 61| . . . . . . . . . . . . . . . . . . . . . . . |  63258|  1.71|  5693.04|
| 62| . . . . . . . . . . . . . . . . . . . . . . . | 113037|  3.06| 10,173.02|
| 62| . . . . . . . . . . . . . . . . . . . . . . . | 113037|  3.06| 10,173.02|
...
...
|249| . . . . . . . . . . . . . . . . . . . . . . . |    23|  0.00|      2.07|
|249| . . . . . . . . . . . . . . . . . . . . . . . |    23|  0.00|      2.07|
|250| . . . . . . . . . . . . . . . . . . . . . . . |      6|  0.00|      0.54|
|250| . . . . . . . . . . . . . . . . . . . . . . . |      6|  0.00|      0.54|
|251| . . . . . . . . . . . . . . . . . . . . . . . |    18|  0.00|      1.62|
|251| . . . . . . . . . . . . . . . . . . . . . . . |    18|  0.00|      1.62|
|252| . . . . . . . . . . . . . . . . . . . . . . . |    22|  0.00|      1.98|
|252| . . . . . . . . . . . . . . . . . . . . . . . |    22|  0.00|      1.98|
|253| . . . . . . . . . . . . . . . . . . . . . . . |    25|  0.00|      2.25|
|253| . . . . . . . . . . . . . . . . . . . . . . . |    25|  0.00|      2.25|
|254| . . . . . . . . . . . . . . . . . . . . . . . |    14|  0.00|      1.26|
|254| . . . . . . . . . . . . . . . . . . . . . . . |    14|  0.00|      1.26|
|255| . . . . . . . . . . . . . . . . . . . . . . . |  2376|  0.06|    213.83|
|255| . . . . . . . . . . . . . . . . . . . . . . . |  2376|  0.06|    213.83|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|TOTAL                                              |3690742|100.00|332,156.53|
|TOTAL                                              |3690742|100.00|332,156.53|
+-----------------------------------------------------------------------------+
+-----------------------------------------------------------------------------+
</pre>


== vizualizace rastrových dat ==
== vizualizace rastrových dat ==
Řádek 318: Řádek 297:
<tt>d.rast</tt>.
<tt>d.rast</tt>.


<pre>
#zobrazit pouze rastrové buňky s hodnotou 70
#zobrazit pouze rastrové buňky s hodnotou 70
#
#
GRASS:~&nbsp;>&nbsp;d.rast map=tm1 catlist=70
GRASS:~&nbsp;>&nbsp;d.rast map=tm1 catlist=70
#
#
#zobrazit rastrové buňky s hodnotou 70 a <75;80>;
#zobrazit rastrové buňky s hodnotou 70 a <75;80>;
#
#
GRASS:~&nbsp;>&nbsp;d.rast map=tm1 catlist=70,75-80
GRASS:~&nbsp;>&nbsp;d.rast map=tm1 catlist=70,75-80
#
#
#zobrazit rastrové buňky mimo interval <75;80>; podkladová barva červená
#zobrazit rastrové buňky mimo interval <75;80>; podkladová barva červená
#
#
GRASS:~&nbsp;>&nbsp;d.rast -i map=tm1 catlist=75-80 bg=red
GRASS:~&nbsp;>&nbsp;d.rast -i map=tm1 catlist=75-80 bg=red
#
#
#zobrazit všechny rastrové buňky v intervalu &lt;60;80&gt; podkladová barva červená (viz obr. č.1)
#zobrazit všechny rastrové buňky v intervalu &lt;60;80&gt; podkladová barva červená (viz obr. č.1)
#
#
GRASS:~&nbsp;>&nbsp;d.rast map=tm1 catlist=60-80 bg=red
GRASS:~&nbsp;>&nbsp;d.rast map=tm1 catlist=60-80 bg=red
</pre>


[[Soubor:ZOD-cv2-d_rast-catlist.png|frame|center|Obr č.1: Zobrazení vybraného intervalu hodnot rastrových buněk (podkladová barva červená)]]
[[Soubor:ZOD-cv2-d_rast-catlist.png|frame|center|Obr č.1: Zobrazení vybraného intervalu hodnot rastrových buněk (podkladová barva červená)]]
Řádek 351: Řádek 328:
<tt>d.rast.num</tt>:
<tt>d.rast.num</tt>:


<pre>
#zobrazit číselné hodnoty buněk (text červeně)
#zobrazit číselné hodnoty buněk (text červeně)
#
#
GRASS:~&nbsp;>&nbsp;d.rast.num map=tm1 text=red
GRASS:~&nbsp;>&nbsp;d.rast.num map=tm1 text=red
</pre>


[[Soubor:ZOD-cv2-d_rast_num.png|frame|center|Obr č.2: Číselné hodnoty jednotlivých rastrových buněk]]
[[Soubor:ZOD-cv2-d_rast_num.png|frame|center|Obr č.2: Číselné hodnoty jednotlivých rastrových buněk]]
Řádek 363: Řádek 338:
nápověda k&nbsp;funkci tlačítek myši.
nápověda k&nbsp;funkci tlačítek myši.


<pre>
GRASS:~&nbsp;>&nbsp;d.what.rast
GRASS:~&nbsp;>&nbsp;d.what.rast
 
Buttons
Buttons
Left:  what's here
  Left:  what's here
Right: quit
  Right: quit
</pre>


Klikneme-li na&nbsp;požadovaný pixel rastrové mapy, vypíší se do konzole souřadnice zvoleného
Klikneme-li na&nbsp;požadovaný pixel rastrové mapy, vypíší se do konzole souřadnice zvoleného
bodu a&nbsp;korespondující hodnota buňky.
bodu a&nbsp;korespondující hodnota buňky.


<pre>
-806411.7640625(E) -972866.2734375(N)
-806411.7640625(E) -972866.2734375(N)
tm1 in PERMANENT  (70)
tm1 in PERMANENT  (70)
</pre>


Práci s&nbsp;modulem ukončíme stisknutím pravého tlačítka myši.
Práci s&nbsp;modulem ukončíme stisknutím pravého tlačítka myši.
Řádek 386: Řádek 358:
<tt>r.univar</tt>.
<tt>r.univar</tt>.


<pre>
GRASS:~&nbsp;>&nbsp;r.univar tm1
GRASS:~&nbsp;>&nbsp;r.univar tm1
 
 
total null and non-null cells: 1204
total null and non-null cells: 1204
total null cells: 0
total null cells: 0
 
Of the non-null cells:
Of the non-null cells:
----------------------
----------------------
n: 1204
n: 1204
minimum: 60
minimum: 60
maximum: 75
maximum: 75
range: 15
range: 15
mean: 66.1163
mean: 66.1163
standard deviation: 2.28888
standard deviation: 2.28888
variance: 5.23897
variance: 5.23897
variation coefficient: 3.4619 %
variation coefficient: 3.4619 %
sum: 79604
sum: 79604
</pre>


Zdůrazněme, že tento modul podobně jako většina modulů pro zpracovaní rastrových/obrazových
Zdůrazněme, že tento modul podobně jako většina modulů pro zpracovaní rastrových/obrazových
Řádek 411: Řádek 381:
statistiku celého snímku, musíme správně nastavit region.
statistiku celého snímku, musíme správně nastavit region.


<pre>
#vytvořit statistiku pro celý snímek
#vytvořit statistiku pro celý snímek
#
#
GRASS:~&nbsp;>&nbsp;g.region rast=tm1
GRASS:~&nbsp;>&nbsp;g.region rast=tm1
GRASS:~&nbsp;>&nbsp;r.univar tm1
GRASS:~&nbsp;>&nbsp;r.univar tm1
 
 
total null and non-null cells: 3692403
total null and non-null cells: 3692403
total null cells: 0
total null cells: 0
 
Of the non-null cells:
Of the non-null cells:
----------------------
----------------------
n: 3692403
n: 3692403
minimum: 0
minimum: 0
maximum: 255
maximum: 255
range: 255
range: 255
mean: 71.1857
mean: 71.1857
standard deviation: 15.094
standard deviation: 15.094
variance: 227.83
variance: 227.83
variation coefficient: 21.2037 %
variation coefficient: 21.2037 %
sum: 2.62846e+08
sum: 2.62846e+08
</pre>


''Poznámka: Na rozdíl např. od ARC/INFO rozlišuje GRASS hodnotu buňky "0" a "žádná data" (no-data, NULL).''
''Poznámka: Na rozdíl např. od ARC/INFO rozlišuje GRASS hodnotu buňky "0" a "žádná data" (no-data, NULL).''
Řádek 488: Řádek 456:
na aktivní region):
na aktivní region):


<pre>
#raději přenastavíme aktivní region
#raději přenastavíme aktivní region
#
#
GRASS:~&nbsp;>&nbsp;g.region rast=tm1
GRASS:~&nbsp;>&nbsp;g.region rast=tm1
#
#
#nastavení předdefinované tabulky barev (červená-žlutá-zelená)
#nastavení předdefinované tabulky barev (červená-žlutá-zelená)
#
#
GRASS:~&nbsp;>&nbsp;r.colors tm1 color=ryg
GRASS:~&nbsp;>&nbsp;r.colors tm1 color=ryg
#
#
#vymazat obsah okna
#vymazat obsah okna
#
#
GRASS:~&nbsp;>&nbsp;d.erase
GRASS:~&nbsp;>&nbsp;d.erase
#
#
#zobrazit družicový snímek
#zobrazit družicový snímek
#
#
GRASS:~&nbsp;>&nbsp;d.rast tm1
GRASS:~&nbsp;>&nbsp;d.rast tm1
#
#
#definice vlastní tabulky
#definice vlastní tabulky
#
#
GRASS:~&nbsp;>&nbsp;r.colors tm1 color=rules
GRASS:~&nbsp;>&nbsp;r.colors tm1 color=rules
</pre>


Pravidla se definují takto (v&nbsp;jednom řádku):
Pravidla se definují takto (v&nbsp;jednom řádku):


<pre>
[hodnota buňky] [barva]
[hodnota buňky] [barva]
</pre>


jak je vidno z&nbsp;níže uvedeného příkladu, barvu lze definovat pomocí
jak je vidno z&nbsp;níže uvedeného příkladu, barvu lze definovat pomocí
Řádek 520: Řádek 484:
ENTER, celou tabulku potom klíčovým slovem "end".
ENTER, celou tabulku potom klíčovým slovem "end".


<pre>
Enter rules, "end" when done, "help" if you need it.
Enter rules, "end" when done, "help" if you need it.
Data range is 0 to 255
Data range is 0 to 255
> 0 0 0 0
> 0 0 0 0
> 50 red
> 50 red
> 60 green
> 60 green
> 80 blue
> 80 blue
> 255 white
> 255 white
> end
> end
</pre>


<pre>
#překreslit obsah okna
#překreslit obsah okna
#
#
GRASS:~&nbsp;>&nbsp;d.redraw
GRASS:~&nbsp;>&nbsp;d.redraw
#
#
#odstíny šedi
#odstíny šedi
#
#
GRASS:~&nbsp;>&nbsp;r.colors tm1 color=grey
GRASS:~&nbsp;>&nbsp;r.colors tm1 color=grey
GRASS:~&nbsp;>&nbsp;d.redraw
GRASS:~&nbsp;>&nbsp;d.redraw
#
#
#převzít již existující tabulku barev
#převzít již existující tabulku barev
#
#
GRASS:~&nbsp;>&nbsp;r.colors tm1 rast=tm2
GRASS:~&nbsp;>&nbsp;r.colors tm1 rast=tm2
GRASS:~&nbsp;>&nbsp;d.redraw
GRASS:~&nbsp;>&nbsp;d.redraw
#
#
#vyrovnané odstíny šedi
#vyrovnané odstíny šedi
#
#
GRASS:~&nbsp;>&nbsp;r.colors tm1 color=grey.eq
GRASS:~&nbsp;>&nbsp;r.colors tm1 color=grey.eq
GRASS:~&nbsp;>&nbsp;d.redraw
GRASS:~&nbsp;>&nbsp;d.redraw
</pre>


[[Soubor:ZOD-cv2-r_colors.png|frame|center|Obr č.3: Demonstrace různých tabulek barev (ryg, vlastní, grey, grey.eq)]]
[[Soubor:ZOD-cv2-r_colors.png|frame|center|Obr č.3: Demonstrace různých tabulek barev (ryg, vlastní, grey, grey.eq)]]

Verze z 24. 11. 2005, 16:54

Základy práce s GRASSem, statistika rastrových dat, tabulka barev

osnova

Nejprve si představíme modul d.zoom, který umožňuje interaktivně měnit aktivní region - tzv. transfokaci, "zoomování". Poté si ukážeme, jak vytvářet základní (statistické) charakteristiky mapy, nakonec si objasníme pojem tabulka barev.

seznam použitých příkazů

region

Zvolíme opět location sevcech a mapset student.

Ukážeme si tedy způsob, jak lze interaktivně - pomocí myši měnit aktivní region, tj. přiblížit či oddálit zvolený detail (transfokace, zoom in/out). Pro jistotu nastavíme aktivní region exaktně podle vybraného družicového snímku (zároveň si necháme nastavení regionu vypsat do konzole; viz parametr -p):

#nastavit aktivní region exaktně podle rastrové vrstvy a vypsat nastavení do konzole
#
GRASS:~ > g.region rast=tm1 -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

Vše tedy nasvědčuje tomu, že pracujeme s georeferencovanými - souřadnicově připojenými daty. Kromě informace o souřadnicovém systému (v tomto případě jde o S-JTSK) a rozsahu území (severní, jižní, západní a východní souřadnice) si všimneme rozlišení ve směru sever-jih, resp. východ-západ. Jako poslední je uveden odpovídají počet řádků a sloupců. Geometrické rozlišení družicového snímku (LandSat TM5, kanál 1) je tedy 30 m (tj. jeden pixel odpovídá na zemském povrchu čtverci o rozměrech 30 x 30 m).

Základní informace o rastrových datech (metadata - "data o datech") poskytuje modul r.info:

GRASS:~ > 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                                                  |
|                                                                            |
|                                                                            |
+----------------------------------------------------------------------------+

Jde především o typ dat (Data Type): CELL (celočíselná mapa, tj. hodnota rastrové buňky je celé číslo), DCELL (mapa s hodnotami s plovoucí desetinnou čárkou); počet kategorií a rozsah dat (Number of Categories, Range of data). V tomto případě snímek obsahuje hodnoty v rozsahu [0; 255]. Další položky, předpokládám, není nutno blíže vysvětlovat.

Poznámka: Družicové snímky jsou tedy kódovány jako celočíselné rastrové soubory.

Nyní si konečně prakticky procvičíme zoomování v grafickém okně. Otevřeme tedy GRASS monitor a zobrazíme zvolený kanál družicové scény, následně spustíme modul d.zoom. Sledujeme nápovědu (funkce tlačítek myši) modulu v konzoli a zkoušíme měnit zobrazený detail (zoom in/out).

GRASS:~ > d.mon x0
GRASS:~ > d.rast tm1
GRASS:~ > d.zoom


Buttons:
 Left:   1. corner
 Middle: Unzoom
 Right:  Quit

Levým tlačítkem myši vybereme první roh zvoleného detailu.

Buttons:
 Left:   1. corner (reset)
 Middle: 2. corner
 Right:  Quit

A středním tlačítkem dokončíme označení výběru. Funkce tlačítek myši se změní.

Buttons:
 Left:   1. corner
 Middle: Unzoom
 Right:  Quit

Zmenšení detailu tedy obstará prostřední tlačítko myši, pravé ukončí práci s modulem. Pokud chcete pokračovat v další práci, je nutno tento modul standardně ukončit! V opačném případě zůstane grafické okno blokováno.

Velmi užitečné je spustit tento modul s přepínačem -f, tím je funkčnost modulu rozšířena o posun (centraci pohledu):

Buttons:
 Left:   Zoom menu
 Middle: Pan
 Right:  Quit menu

Podobně se chová i přepínač -p, který nabízí pouze funkci posunu. Ovládání modulu d.zoom je nutno nacvičit, není to ale nic složitého, stačí sledovat aktuální funkci jednotlivých tlačítek myši v konzoli.

V případě, že chceme zobrazit znovu celou družicovou scénu, použijeme opět modul g.region. Aktivní region v žádném případě nenastavujeme ručně pomocí d.zoom, nýbrž přesně na základně okrajových souřadnic mapové vrstvy (g.region rast=tm1). Způsob ovládání pohledů může začátečníkovi, navyklému na interaktivní práci v jiných produktech, připadat neohrabaný, zastaralý či pomalý. Je si však nutno uvědomit, že potenciál GRASSu neleží v možnostech vizualizace dat, nýbrž jejich zpracování a dalších analýzách!

základní statistika rastrových dat

Předtím než se vrátíme k zobrazení rastrových dat (obrazová data, tedy i družicové snímky, jsou uloženy jako běžné rastrové soubory) v GRASS monitoru si představíme modul r.stats, který poskytuje základní charakteristiky jednotlivých hodnot buněk rastrového souboru. 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
#
GRASS:~ > r.stats tm1 -c
#
#procenta (přibližně)
#
GRASS:~ > r.stats tm1 -p
#
#celková plocha (v mapových jednotkách)
#
GRASS:~ > 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: Pokud výpis přesahuje velikost okna, je dobré tento výstup přesměrovat do programu less, který umožňuje pohyb mezi jednotlivými stránkami. Tento program ukončíme klávesou q (quit). V tomto případě by příkaz vypadal takto r.stats tm1 | less.

Výpis je řazen podle hodnot rastrových buněk. Nyní si poprvé ukážeme způsob, jak kombinovat jednotlivé moduly GRASSu s dalšími (systémovými) nástroji OS GNU/Linux. Právě v tom spočívá obrovská síla této koncepce - podle momentální potřeby uživatele spojit do jednoho celku několik malých programů, které si předávají mezivýsledky tzv. rourou.

My tedy chceme seřadit výstup modulu r.stats podle celkového počtu buněk, nikoliv podle jejich hodnot. Jak tedy budeme postupovat? 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í. Pokud nás trápí pořadí sloupců, můžeme je na závěr opět prohodit. Poznamenejme, že awk ani sort nejsou součástí GRASSu, jde o standardní programy, které naleznete pravděpodobně v každé distribuci GNU/Linuxu. Celý příkaz vypadá asi takto:

GRASS:~ > r.stats tm1 -c | awk '{print $2,$1}' | sort -n | awk '{print $2,$1}'

Uživatel neznalý příkazové řádky, rour, démonů a podobných věcí se děsí, přestává číst a znechuceně odchází. Nic není tak složité jak vypadá!

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

Podobné charakteristiky mapy poskytuje i modul r.report, jeho výstup má formu úhledně sestavené tabulky. Např.:

#tabulka (celkový počet buněk, procenta, výměra v hektarech)
#
GRASS:~ > 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|
+-----------------------------------------------------------------------------+

vizualizace rastrových dat

Vidíme tedy, že nejvíce rastrových buněk obsahuje hodnotu v rozsahu [60; 80]. Nyní si ukážeme, jakým způsobem zobrazit v GRASS monitoru pouze vybrané kategorie (resp. hodnoty buněk) či jejich interval - k tomu slouží parametr catlist modulu d.rast.

#zobrazit pouze rastrové buňky s hodnotou 70
#
GRASS:~ > d.rast map=tm1 catlist=70
#
#zobrazit rastrové buňky s hodnotou 70 a <75;80>;
#
GRASS:~ > d.rast map=tm1 catlist=70,75-80
#
#zobrazit rastrové buňky mimo interval <75;80>; podkladová barva červená
#
GRASS:~ > 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)
#
GRASS:~ > d.rast map=tm1 catlist=60-80 bg=red
Obr č.1: Zobrazení vybraného intervalu hodnot rastrových buněk (podkladová barva červená)

Poznámka: V případě práce s mapou obsahující hodnoty s plovoucí desetinnou čárkou použijeme místo parametru vallist.

Hodnotám buněk je pro účel jejich vizualizace přiřazena daná 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 ji na základě nastavené tabulky barev při zobrazení přiřazena. Při změně tohoto pravidla přirozeně nedochází k žádné modifikaci dat, ta jsou jenom odlišně vizuálně interpretována.

Zobrazte např. první kanál družicové scény LandSat-TM5 tak, aby byly zřetelné jednotlivé rastrové buňky (d.zoom). Číselné hodnoty buněk zobrazíme pomocí modulu d.rast.num:

#zobrazit číselné hodnoty buněk (text červeně)
#
GRASS:~ > d.rast.num map=tm1 text=red
Obr č.2: Číselné hodnoty jednotlivých rastrových buněk

GRASS umožňuje interaktivní dotazování na hodnoty rastrových buněk, jde o modul d.what.rast. Po spuštění modulu se v konzoli objeví nápověda k funkci tlačítek myši.

GRASS:~ > d.what.rast


Buttons
 Left:  what's here
 Right: quit

Klikneme-li na požadovaný pixel rastrové mapy, vypíší se do konzole souřadnice zvoleného bodu a korespondující hodnota buňky.

-806411.7640625(E) -972866.2734375(N)
tm1 in PERMANENT  (70)

Práci s modulem ukončíme stisknutím pravého tlačítka myši.

univariatní statistika

Na tomto místě si uvedeme ještě jeden statisticky orientovaný modul a to r.univar.

GRASS:~ > 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

Zdůrazněme, že tento modul podobně jako většina modulů pro zpracovaní rastrových/obrazových dat respektuje aktivní region! Výše uvedená statistika se tedy týká pouze části dat zobrazených aktuálně v GRASS monitoru a nikoliv celého družicového snímku. Chceme-li tedy vytvořit statistiku celého snímku, musíme správně nastavit region.

#vytvořit statistiku pro celý snímek
#
GRASS:~ > g.region rast=tm1
GRASS:~ > 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).

Drobné vysvětlení jednotlivých položek:

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

tabulka barev

Jak již bylo zmíněno výše, tabulka barev představuje předpis, pravidlo na základě něhož je při zobrazení rastrových dat přiřazena rastrové buňce jedinečná barevná hodnota. V případě družicových snímků používáme tzv. odstíny šedi. Změnu tabulky barev provádí modul r.colors, kromě předdefinovaných pravidel (více nápověda modulu) můžeme vytvořit svoji vlastní tabulku. Zajímavou možností může být také zkopírování již existující tabulky barev přiřazené jiné rastrové vrstvě. Několik příkladů (za upozornění stojí, že modul sestaví (např. grey.eq) tabulku barev s ohledem na aktivní region):

#raději přenastavíme aktivní region
#
GRASS:~ > g.region rast=tm1
#
#nastavení předdefinované tabulky barev (červená-žlutá-zelená)
#
GRASS:~ > r.colors tm1 color=ryg
#
#vymazat obsah okna
#
GRASS:~ > d.erase
#
#zobrazit družicový snímek
#
GRASS:~ > d.rast tm1
#
#definice vlastní tabulky
#
GRASS:~ > r.colors tm1 color=rules

Pravidla se definují takto (v jednom řádku):

[hodnota buňky] [barva]

jak je vidno z níže uvedeného příkladu, barvu lze definovat pomocí RGB trojice ("0 0 0" - černá) nebo jménem barvy. Každý řádek ukončíme klávesou ENTER, celou tabulku potom klíčovým slovem "end".

Enter rules, "end" when done, "help" if you need it.
Data range is 0 to 255
> 0 0 0 0
> 50 red
> 60 green
> 80 blue
> 255 white
> end
#překreslit obsah okna
#
GRASS:~ > d.redraw
#
#odstíny šedi
#
GRASS:~ > r.colors tm1 color=grey
GRASS:~ > d.redraw
#
#převzít již existující tabulku barev
#
GRASS:~ > r.colors tm1 rast=tm2
GRASS:~ > d.redraw
#
#vyrovnané odstíny šedi
#
GRASS:~ > r.colors tm1 color=grey.eq
GRASS:~ > d.redraw
Obr č.3: Demonstrace různých tabulek barev (ryg, vlastní, grey, grey.eq)

Na okraj si uvedeme dva pozapomenuté, ale velmi důležité moduly - d.erase, který vyčistí obsah aktuálního grafického okna a d.redraw, který naopak jeho obsah překreslí.