Hlavní navigace

Geografický informačný systém GRASS (9)

Rado Bonk

V dnešnej časti si vysvetlíme princípy použitia masky v GRASSe a preberieme úvod do rastrovej algebry. Obidva postupy sa často používajú v praxi. Zatiaľ čo maska sa tvorí v GRASSe jednoducho, rastrová algebra pomocou príkazu r.mapcalc je problematika značne rozsiahla.

Práca s maskou

Maska sa v GISoch používa keď chceme zablokovať určité územia regiónu, teda chceme, aby sa na nich neprevádzala žiadna operácia. Ako keby sme ich chceli pred GRASSom skryť. Napríklad:

  • Máme raster nadmorskej výšky územia, kde chceme určovať potenciál pre vznik lavín v nadmorských výškach nad 1200 metrov.
  • Chceme počítať digitálny model reliéfu územia, ale nechceme doň zahrnúť kameňolomy
  • Chceme vypočítať priemerné zrážky práve pre jedno povodie.
  • Za použitia geologickej mapy chceme určiť náchylnosť podzemných vôd na znečistenie (nespevnené horniny, hlavne piesky a štrky sú pre povrchovú vodu priepustné, ale íly nie).

Toto všetko sú úlohy, kde sa bez masky nezaobídeme. Technicky je maska raster, ktorý má dva hodnoty: 1, a NULL. Pixle s hodnotou 1 vstupujú do všetkých operácií. Na pixloch s hodnotou NULL sa žiadna operácia neprevádza. Tie sú pre GRASS skryté.

Aby sme vytvorili masku potrebujeme zdrojový raster. Zdrojovou mapou môže byť mapa geology (z location SPEARFISH). Maska sa vytvára príkazom r.mask. Hodnotu 1 priradíme len nespevneným horninám (shale, sandy shale, claysand, sand; kategórie 6–9 (Obr. 1)). Po zadaní príkazu r.mask, vyberieme ponuku „Identify a new mask“, zadáme zdrojovú mapu a zadáme hodnotu 1 pre nespevnené horniny. Takto môžme hodnotu 1 priradiť jednej, alebo viacerým kategóriam rastra. Ak teraz zobrazíme raster nadmorských výšok, objaví sa len na miestach nespevnených hornín (Obr 2.). Základné informácie o rozložení nadmorských výšok získame formou histogramu (Obr. 3)

Tabulka č. 375
GRASS: r.info map=geology
GRASS: r.mask
GRASS: d.rast map=geology
GRASS: d.rast map=elevation.dem
GRASS: d.hist map=elevation.dem

obr. 1

obr. 2

obr. 3

Čo sa pri vytvorení masky vlastne stalo? Všetkým pixlom, okrem tých, ktorým sme priradili hodnotu 1, sa priradila hodnota NULL. Tiež sa nám v danom MAPSETe vytvoril raster s menom „MASK“, čo je preddefinované meno pre masku. S rastrom MASK môžme pracovať ako s každým iným súborom, môžme ho napríklad premenovať, a tak si vytvoriť masku pre ďalšie použitie. Masku odstránime príkazom r.mask vybraním ponuky „Remove the current mask“.

Hodnoty rastrov „NULL“ a „0“

GRASS rozlišuje medzi hodnotami NULL a 0. Zatiaľčo 0 môže predstavovať reálne exitujúcu hodnotu (napr. teplota, počet chránených druhov…), hodnota NULL sa môže prekladať ako „nič“, teda pixel bez informácie.

V GRASSe je na prácu s NULL hodnotami príkaz r.null. Umožňuje dve operácie:

  • Priradiť hodnotu NULL, už existujúcej hodnote rastra.
  • Zmeniť exitujúcu hodnotu NULL, na nami definovanú hodnotu.
Tabulka č. 376
GRASS: r.null nejaka_mapa null=1999
GRASS: r.null nejaka_mapa setnull=1999

Môže nastať prípad, keď sa hodnoty NULL vyskytujú v rastri, čo spôsobuje, že sa niektoré operácie neprevádzajú korektne. Príkazom r.fillnulls sa vyplnia interpolovanými hodnotami z okolia.

Úvod do rastrovej algebry

Rastrová algebra má v GIS operáciach široké možnosti. Je založená na princípe pohybujúceho sa okna („moving window approach“). Ide o to, že okno definovanej veľkosti (3, 5, 7 …pixlov ) prechádza rastrom a pre centrálny pixel sa prevádzajú operácie s hodnotami susedných pixlov (Obr. 4). Výsledkom operácie v jednej polohe okna je nová hodnota pre jeho centrálny pixel. Okno sa pohybuje po všetkých riadkoch a stĺpcoch rastra, až sa vypočítajú nové hodnoty pre všetky pixle. Rastrová algebra je v GRASSe implementovaná príkazom r.mapcalc. Ide o rozsiahlu problematiku, preto na začiatok pomôžu dva manuály (na stránke treba hľadať výraz „mapcalc“). Oficiálny manuál k príkazu zasa obsahuje zoznam operandov a funkcií.

obr. 4

Všeobecná forma zápisu rastrovej algebry príkazom r.mapcalc je nasledovná:

Tabulka č. 377
nova_mapa = hodnota/mapa1 _rovnica_ [mapa2, mapa3...]

Príkaz r.mapcalc rozlišuje medzi integer a floating point hodnotami. Floating point hodnota sa vo výsledku objaví iba vtedy, ak aspoň jedna zo vstupných hodnôt bola floating point. Ak všetky hodnoty v rovnici boli typu integer, ale výsledok rovnice má byť floating point, musíme rovnicu prenásobiť hodnotou „1.0“ a to rovno so znakom „=“.

V nasledujúcich troch príkladoch budu mať výstupné rastre hodnoty: integer, floating point, floating point.

Tabulka č. 378
GRASS: r.mapcalc
mapcalc> mapa1 = integer_mapa + 123
mapcalc> mapa2 = integer_mapa + 123.
mapcalc> mapa3 = 1.0 * integer_mapa

V nasledujúcej časti seriálu spojíme príkazy r.reclass a r.mapcalc do praktických príkladov.

Použitá literatúra:

  1. Neteler, M. a Mitášová H. (2002). Open Source GIS: A GRASS GIS Approach. 1st edition. Kluver Academic Publishers
  2. http://grass.it­c.it
  3. Jones, Ch. (1997). Geographical Information Systems and Computer Cartography, Addison Wesley Longman
  4. ERDAS Inc. ERDAS Field Guide 4th ed., 1997. Atlanta, Georgia
Našli jste v článku chybu?

1. 8. 2003 11:11

JJ (neregistrovaný)

Pridavam novy odkaz, puvodni neexistuje.

http://www.volny.cz/jjtrade/grass/



24. 3. 2003 16:51

alexander (neregistrovaný)

Můžete mně poradit, jak mám udělat 3d model z vrstevnic, které mám do GRASSU naimportované ve vektorové podobě ze shapefilu.

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

Lupa.cz: Obchod budoucnosti je bez front, košíků i pokladen

Obchod budoucnosti je bez front, košíků i pokladen

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

Podnikatel.cz: E-Ježíšek si zařádí: nákupy od 2 do 5 tisíc

E-Ježíšek si zařádí: nákupy od 2 do 5 tisíc

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Vitalia.cz: Test na HIV je zdarma i za pět set

Test na HIV je zdarma i za pět set

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky