153ZODH / 1. cvičení: Porovnání verzí

Z GeoWikiCZ
m 155zddp
 
(Není zobrazeno 77 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
< [[153YZOD Zpracování obrazových dat|Stránky předmětu]] {{bullet}} [[153YZOD Zpracování obrazových dat - cvičení 2|Další cvičení]]
{{zastaralé|155ZDDP}}
 
{{Cvičení|153ZODH|1|Úvod do GRASS GIS}}
<div style="font-size: 13pt; font-weight: bold">Úvod do GRASS GIS</div>
 
__TOC__
== Osnova ==
== Osnova ==


Cvičení je zaměřeno na seznámení se systémem [[GRASS GIS]]. Výhodou je absolvování předmětu [[153YFSG|Free software GIS]], nikoliv však podmínkou.
Cvičení je zaměřeno na seznámení se systémem [[GRASS GIS]]. Více informací na portálu '''{{freegis|GRASS GIS|FreeGIS}}'''.


Vysvětleny jsou základní pojmy jako je ''databanka GRASSu'', ''location'', ''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.
Vysvětleny jsou základní pojmy jako je ''databanka'', ''location'' (lokace), ''mapset''. Spuštění systému GRASS, vizualizace jednotlivých mapových vrstev, demonstrace základních příkazů s důrazem na modulární strukturu systému. Studenti se seznámí s {{wikipedia|Command-line interface|lang=en|rozhraním příkazové řádky}} (CLI) a {{wikipedia|Graphical user interface|lang=en|grafickým uživatelským rozhraním}} (GUI) systému GRASS.


=== Seznam použitých příkazů ===
=== Seznam použitých příkazů ===
Řádek 20: Řádek 17:
* {{GrassPrikaz|g.gui}}
* {{GrassPrikaz|g.gui}}


== Spuštění GRASSu, základní pojmy ==
== Spuštění systému GRASS, základní pojmy ==


''Poznámka: V dalším textu budeme předpokládat GRASS 6.4. Pokud používáte starší či novější:-) verzi, očekávejte drobné rozdíly...''
''Poznámka: V dalším textu budeme předpokládat verzi [http://grass.osgeo.org/download/software/#g70x GRASS 7.0]. Pokud používáte jinou verzi, očekávejte drobné rozdíly...''


Během cvičení budeme pracovat vzdáleně na serveru [http://josef.fsv.cvut.cz josef.fsv.cvut.cz], GRASS spustíme příkazem
GRASS spustíme příkazem


  grass64
  grass70


GRASS nastartuje v ''grafickém'' či ''textovém'' módu (podle nastavení v souboru <tt>~/.grassrc6</tt>, toto chování lze ovlivnit parametry <code>-gui</code> a <code>-text</code>).
''Poznámka: V učebně B-870 příkazem <code>./grass70-geo102</code>.
<!--
GRASS nastartuje v ''grafickém'' či ''textovém'' módu (podle nastavení v souboru <tt>~/.grass7/rc</tt>, toto chování lze ovlivnit parametry <code>-gui</code> a <code>-text</code>).


[[Soubor:ZOD-cv1-text-64.png|frame|center|Textová uvítací obrazovka GRASS 6.4]]
grass70 -text


[[Soubor:ZOD-cv1-wxgui.png|thumb|center|400px|Grafická uvítací obrazovka GRASS 6.4 (wxGUI)]]
{{fig|ZOD-cv1-text-64|Textová uvítací obrazovka GRASS 6.4}}
 
grass70 -gui
-->
{{fig|ZOD-cv1-wxgui|Grafická uvítací obrazovka GRASS 7.0 (wxGUI)|size=400}}


=== GRASS Database ===
=== GRASS Database ===


;'''DATABASE''' (databanka GRASSu): je adresář ve stromové struktuře OS, např. <tt>/opt/grassdata</tt>. 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ř. [http://www.postgresql.org PostgreSQL], [http://www.mysql.org MySQL]).
;'''DATABASE''' (databanka): je adresář umístěný na disku, např. <code>$HOME/grassdata</code>. 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 apod.). 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ř. [http://www.postgresql.org PostgreSQL], [http://www.mysql.org MySQL]) apod.


;'''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í.
;'''LOCATION''' (lokace): je adresář umístěný v databance. 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...).
;'''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 na serveru josef:
Příklad GRASS databanky:


  /opt
  $HOME
   |   
   |   
   +--- grassdata
   +--- grassdata
Řádek 57: Řádek 60:
   |    |    |
   |    |    |
   |    |    +--- PERMANENT
   |    |    +--- PERMANENT
 
 
''Další informace na portálu {{freegis|GRASS GIS / Struktura dat|FreeGIS}}.''
<!--
=== Uživatelská rozhraní ===
=== Uživatelská rozhraní ===


==== Příkazová řádka ====
==== Příkazová řádka ====


  grass64 -text
  grass65 -text


[[Image:grass-cli.png|thumb|center|640px|GRASS příkazová řádka]]
{{fig|grass-cli|GRASS příkazová řádka|size=640}}


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


<source lang="bash">
  g.gui gui=wxpython
  g.gui gui=wxpython
</source>


==== GIS Manager (TCL/TK) ====
==== GIS Manager (Tcl/Tk) ====


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


nebo (GIS Manager je výchozím GUI pro GRASS, v budoucnu bude výchozím wxGUI)
grass65 -tcltk


grass64 -gui
{{fig|grass-tcltk|GRASS TCL/TK GUI|size=640}}


[[Image:grass-tcltk.png|thumb|640px|center|GRASS TCL/TK GUI]]
==== [http://grass.osgeo.org/wiki/WxGUI wxGUI] (wxPython) ====


==== [http://grass.osgeo.org/wiki/WxGUI wxGUI] (wxPython) ====
grass65 -wxpython
 
nebo (výchozím GUI pro GRASS je wxGUI)


  grass64 -wxpython
  grass65 -gui


[[Image:grass-wxgui.png|thumb|640px|center|GRASS wxGUI]]
{{fig|grass-wxgui|GRASS wxGUI|size=640}}
-->


== Příkazy GRASSu ==
== Příkazy systému GRASS ==


GRASS představuje ''modulární'' systém, tj. 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ý.
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é moduly GRASSu mají až na výjimky podobnou syntaxi 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ího účelu modulu. Tak například modul {{GrassPrikaz|d.mon}} patří do skupiny "Display" a je určen pro manipulaci s tzv. GRASS monitorem (otevření, uzavření).
''Další informace na portálu {{freegis|GRASS GIS / Tutoriál / První kroky#Příkazy systému GRASS|FreeGIS}}.''
<!--
Jednotlivé příkazy (tzv. moduly) systému GRASS 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í skupinu příkazů a krátkého názvu napovídající účel modulu. Tak například modul {{GrassPrikaz|d.mon}} patří do skupiny "Display" a je určen pro manipulaci s tzv. GRASS monitorem (otevření, uzavření).


<center>
<center>
{|class="border"
{|class="border"
|+Skupiny modulů GRASSu
|+Skupiny GRASS modulů
|-
|-
! předpona !! třída !! krátký popis
! prefix !! skupina !! krátký popis
|-
|-
|<tt>db.</tt>
|<tt>db.</tt>
Řádek 112: Řádek 124:
|<tt>r3.</tt>
|<tt>r3.</tt>
|grid 3D
|grid 3D
|zpracování 3D rastrových dat ("volume")
|zpracování 3D rastrových dat (voxels)
|-
|-
|<tt>i.</tt>
|<tt>i.</tt>
Řádek 120: Řádek 132:
|<tt>ps.</tt>
|<tt>ps.</tt>
|postscript
|postscript
|příkazy pro tvorbu map ve formátu PostScript
|příkazy pro tvorbu mapových výstupů ve formátu PostScript
|-
|-
|<tt>r.</tt>
|<tt>r.</tt>
Řádek 135: Řádek 147:
modulů "General".
modulů "General".


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


[[soubor:Grass-g_list-wxgui.png|thumb|400px|center|GUI modulu g.list]]
{{fig|Grass-g_list-wxgui|GUI modulu g.list|size=400}}


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


<source lang="bash">
  g.list --help
  g.list --help
</source>


<pre>
<pre>
Řádek 170: Řádek 184:
Vraťme se k modulu {{GrassPrikaz|g.list}}, který vypíše seznam dostupných datových vrstev lokace. Seznam rastových a vektorových vrstev vypíšeme příkazem:
Vraťme se k modulu {{GrassPrikaz|g.list}}, který vypíše seznam dostupných datových vrstev lokace. Seznam rastových a vektorových vrstev vypíšeme příkazem:


<source lang="bash">
  #seznam dostupných rastrových mapových vrstev
  #seznam dostupných rastrových mapových vrstev
  #
  #
Řádek 189: Řádek 204:
   
   
  ----------------------------------------------
  ----------------------------------------------
</source>


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).
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 ==
== Vizualizace mapových vrstev ==


''Viz informace na portálu {{freegis|GRASS GIS / Tutoriál / První kroky#Zobrazení dat v mapovém okně |FreeGIS}}.''
<!--
=== Příkazová řádka ===
=== 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).
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 {{GrassPrikaz|d.mon}}, pro otevření okna slouží parametr <tt>start</tt>, pro výběr <tt>select</tt> a pro zavření monitoru <tt>stop</tt>.
Pro manipulaci s GRASS monitory slouží modul {{GrassPrikaz|d.mon}}, pro otevření okna slouží parametr <tt>start</tt>, pro výběr <tt>select</tt> a pro zavření monitoru <tt>stop</tt>. ''Poznámka:'' Tyto příkazy nefungují pod MS Windows.


<source lang="bash">
  # otevřít první GRASS monitor
  # otevřít první GRASS monitor
  #
  #
Řádek 214: Řádek 234:
  #
  #
  d.mon stop=x1
  d.mon stop=x1
</source>


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


<source lang="bash">
  d.mon x0
  d.mon x0
  d.mon x1
  d.mon x1
  d.mon se=x0
  d.mon se=x0
  d.mon sto=x1
  d.mon sto=x1
</source>


Důležitým pojem je tzv. '''region'''. Region je část území (tvar č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 {{GrassPrikaz|g.region}}. Mezi podstatné volby modulu patří přepínač <tt>-d</tt>, který nastaví výchozí region a parametry <tt>rast</tt> a <tt>vect</tt>, které nastaví region podle dané mapové vrstvy.
Důležitým pojem je tzv. '''region'''. Region je část zájmového ú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í (ve směru 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 {{GrassPrikaz|g.region}}. Mezi podstatné volby modulu patří přepínač <tt>-d</tt>, který nastaví výchozí region a parametry <tt>rast</tt> a <tt>vect</tt>, 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é
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í.
bude zobrazeno v GRASS monitoru) - rozsah a rozlišení.


<source lang="bash">
  # nastavit aktivní region podle mapové vrstvy
  # nastavit aktivní region podle mapové vrstvy
  #
  #
  g.region rast=tm1
  g.region rast=tm1
</source>


Pro zobrazení rastrových dat se používá modul {{GrassPrikaz|d.rast}}, pro vektorová data existuje podobně {{GrassPrikaz|d.vect}}. Oba moduly  disponují velkou množinou přepínačů a parametrů, které ovlivňují zobrazený výsledek na monitoru.  
Pro zobrazení rastrových dat se používá modul {{GrassPrikaz|d.rast}}, pro vektorová data existuje podobně {{GrassPrikaz|d.vect}}. Oba moduly  disponují velkou množinou přepínačů a parametrů, které ovlivňují zobrazený výsledek na monitoru.  
Řádek 235: Řádek 260:
Demonstrační příklad:
Demonstrační příklad:


<source lang="bash">
  # zobrazit v GRASS monitoru vybranou rastrovou a vektorovou mapovou vrstvu
  # zobrazit v GRASS monitoru vybranou rastrovou a vektorovou mapovou vrstvu
  #
  #
  d.rast tm1
  d.rast tm1
  d.vect zelez color=yellow
  d.vect zelez color=yellow
</source>


[[Soubor:ZOD-cv1-d.rast_vect.png|frame|center|Vizualizace rastrových a vektorových dat v GRASS monitoru]]
{{fig|ZOD-cv1-d.rast_vect|Vizualizace rastrových a vektorových dat v GRASS monitoru}}


=== wxGUI ===
=== wxGUI ===


[[Soubor:grass-d_rgb-wxgui.png|thumb|center|640px|GRASS wxGUI - přidání RGB vrstvy]]
{{fig|grass-d_rgb-wxgui|GRASS wxGUI - přidání RGB vrstvy|size=640}}-->
 
{{fig|wxgui-tm453|GRASS wxGUI - přidání RGB vrstvy|size=640}}
 
----
< [[153YZOD Zpracování obrazových dat|Stránky předmětu]] {{bullet}} [[153YZOD Zpracování obrazových dat - cvičení 2|Další cvičení]]


{{ZOD}}
{{ZOD}}
{{GRASS}}

Aktuální verze z 3. 9. 2014, 09:16

Úvod do GRASS GIS

Osnova

Cvičení je zaměřeno na seznámení se systémem GRASS GIS. Více informací na portálu FreeGIS.

Vysvětleny jsou základní pojmy jako je databanka, location (lokace), mapset. Spuštění systému GRASS, vizualizace jednotlivých mapových vrstev, demonstrace základních příkazů 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) systému GRASS.

Seznam použitých příkazů

Spuštění systému GRASS, základní pojmy

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

GRASS spustíme příkazem

grass70

Poznámka: V učebně B-870 příkazem ./grass70-geo102.

Grafická uvítací obrazovka GRASS 7.0 (wxGUI)

GRASS Database

DATABASE (databanka)
je adresář umístěný na disku, např. $HOME/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 apod.). 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) apod.
LOCATION (lokace)
je adresář umístěný v databance. 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:

$HOME
 |  
 +--- grassdata
 |    |  
 |    +--- zod
 |    |    |
 |    |    +--- PERMANENT
 |    |    |
 |    |    +--- landa
 |    |
 |    +--- nc_spm_08
 |    |    |
 |    |    +--- PERMANENT

Další informace na portálu FreeGIS.

Příkazy systému GRASS

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ý.

Další informace na portálu FreeGIS.

Vizualizace mapových vrstev

Viz informace na portálu FreeGIS.

GRASS wxGUI - přidání RGB vrstvy