GIS GRASS na obrazovke tvorí príkazová konzola, grafický monitor a grafické Tcl/Tk rozhranie (Obr. 1). Okrem toho 3D vizualizačné prostredie nviz má vlastné GUI. Žiadne ďalšie vlastné okná, alebo kontrolné utility GRASS nemá, úplne však postačuje to, čo ponúka. Koncepcia práce je jednoduchá. V konzole zadáte príkaz a v grafickom okne vidíte výstup. Príkazy (niekdy označené ako moduly) sa v GRASSe spúšťajú tromi spôsobmi:
- príkazový riadok v prompte GRASS:~
- interaktívny dialóg v prompte GRASS:~. Spustíte príkaz bez volieb a modul si postupne pýta všetky vstupy a parametre.
- Tcl/Tk grafické rozhranie, ktoré obsahuje všetky príkazy
Príkazy GRASu sú na jednej úrovni s príkazmi UNIXu, to znamená, že sa môžu ľubovoľne kombinovať a zvyšovať tak produktivitu práce v systéme. Ak napríklad exportujete raster v ASCII kóde, môžte ho hneď presmerovať cez > do súboru a vzápätí importovat do štatistického prostredia R pre ďalšie analýzy. História zadávaných príkazov je samozrejmosťou.
Netvrdím, že ľudí, ktorý čitajú ROOTa odradí príkazový riadok v GRASSe, príkazový riadok tam nie je preto, aby GRASS za každú cenu vyzeral sparťansky, ale jednoducho preto, že pri zložitejších moduloch je to naozaj najefektívnejší spôsob, ako systému zadať parametre a vstupy. GRASS možno triviálne veci rieši trochu zložitejšie, ale v náročnejších analýzach (teda v takých, ktoré nie sú štandardne obsiahnuté v magickej ikonke proprietárneho GISu) je naozaj doma, preto ten príkazový riadok. Len pre príklad Arc/Info, proprietárny GIS od firmy ESRI, ktorý je považovaný za vysoko kvalitný nástroj (niekedy až za štandard) takisto používa prostredie príkazového riadku. Pre zložitejšie analýzy (veda a výskum, netriviálne riešenia problémov reálneho sveta) sa jednoducho ikonka nehodí.
GRASS dokáže pracovať s dátami v rastrovom, vektorovom a bodovom modeli. Najsilnejší je však v analýze rastrového modelu dát. Funkcie pre vektorový model dát (podpora 3D vektorov) sa však zjavne zlepšujú. Treba to chápať asi tak, že v rastrovej analýze je na úrovni tých najlepších proprietárnych riešení (v určitých analýzach ich dokonca predstihuje) a vo vektorových zasa nijako zvlášť nevyniká. Treba si počkať na verziu 5.1.
Príkazy v GRASSe sa delia podľa modelu dát, s ktorým pracujú a podľa funkcie, ktorú vykonávajú do niekoľkých skupín. Tieto skupiny príkazov sa odlišujú začiatočným písmenom.
predpona | trieda | druh operácie | |
d.* | display | grafický výstup | |
s.* | sites | operácie s bodovými dátami | |
r.* | raster | operácie s rastrami | |
i.* | imagery | operácie s družic. snímkami | |
v.* | vector | operácie s vektormi | |
g.* | general | všeobecne operácie so súbormi | |
m.* | misc | rôzne príkazy | |
p.* | paint | tvorba map v PPM formáte | |
ps.* | postscript | tvorba máp vo formáte Postscript |
Počet monitorov v GRASSe môže byť maximálne sedem (x0 – x6). Ako prvý sa otvára monitor x0. Nový monitor (x1) treba otvoriť príkazom, ten sa automaticky stáva aktívnym monitorom. Ak chcete zobraziť výstup na pôvodnom monitore (x0), treba sa naň prepnúť. Monitor zavriete, alebo príkazom, alebo myšou podobne, ako iné okná pod XWindows (Obr. 1).
GRASS:~ grass5 & GRASS:~ tcltkgrass & GRASS:~ d.rast aspect GRASS:~ d.mon start=x1 GRASS:~ d.rast geology GRASS:~ d.mon sel=x0 GRASS:~ d.mon stop=x1 |
Osobne Tcl/Tk rozhranie veľmi nepoužívam, vystačím si s oknom pre zobrazovanie rastra, vektora a bodov. K tomu ešte okno na zmazanie, (prekreslenie) obrazovky s farbou prekreslenia nastavenou na „white“. Príkazový riadok je rýchlejší a v kombinácii s históriou príkazov u mňa vyhráva. Často totiž používam ten istý príkaz, len s inými vstupmi, alebo parametrami. GUI však bol dobrý počin od tvorcov GRASSu, hlavne k ľuďom, ktorí s GRASSom začínajú.
Správa mapových vrstiev.
Jedna mapová vrstva v GRASSe (ďalej len ako mapa) je v skutočnosti tvorená viacerými súbormi, ktoré sú uložené v internej GRASSovskej adresárovej štruktúre. Môžete si ju prezrieť, ak si vylistujete obsah MAPSETu označenom ako PERMANENT. Platí však, že čokoľvek chcete robiť s mapou, mali by ste to robiť cez príkazy, nie editáciou, alebo mazaním súborov v tejto adresárovej štruktúre.
Kopírovanie máp sa prevádza príkazom g.copy, nasledovanom čiarkou a menom novej mapy. Skopírujme mapu „geology“ do „geology.new“, a mapu „soils“ z MAPSETu „PERMANENT“ do MAPSETu „user1“ pod menom „soils.new“. Tá istá syntax sa používa pre premenovanie a mazanie máp.
GRASS:~ g.copy rast=geology,geology.new GRASS:~ g.copy rast=soils,soils.new@user1 GRASS:~ g.rename rast=geology.new,geology.quarternary GRASS:~ g.remove rast=geology.quarternary,soils.new@user1 GRASS:~ g.mlist type=rast "soils.*" |
Zistili sme, že cez znak „@“ môžme pristupovať k viacerým MAPSETom v rámci jednej LOCATION a mapy medzi nimi zdieľať, mazať a premenovávať. Ak chcete vylistovať, alebo zmazať viacero máp naraz (za použitia regulárnych výrazov), treba použiť príkazy s predponou „m“, tak ako to bolo ukázané v poslednom riadku predchádzajúceho príkladu.
Čo ak chceme preniesť našu prácu z jedného počítača na iný, ktoré adresáre potrebujem preniesť? Jednoducho treba skomprimovať celú LOCATION, v tomto prípade „spearfish“ a na inom počítači ju po prenesení rozpakovať. Ti isté riešenie sa používa, keď si dáta chcete zálohovať – stačí vygenerovať jeden *.tar.gz súbor a ten napáliť, alebo uložiť na server. Ako je to s prenášaním MAPSETov? Ak na mieste, kde ich chcete dostať, je tá istá LOCATION, stačí preniesť len adresár napr. „user1“. Ak na mieste je to isté kartografické zobrazenie, len iné súradnice, mapy môžme vidieť napr. tak, že nastavíme región (cez g.region) na základe už existujúcej mapy.
GRASS:~ g.region rast=geology.new GRASS:~ d.erase # prekresli region do novych suradnic. |
Princíp GISov je aj v tom, že svoje dáta máte priestorovo lokalizované a môžete vidieť priestorové súvislosti medzi nimi. Napríklad vidieť, aké pôdy sú v blízkosti ciest, či na akých sklonoch reliéfu sa prejavuje erózia pôdy a na akých ešte nie. Vyskúšajte si vykresliť viacero vrstiev a skúste zistiť aké hodnoty obsahujú pomocou modulov: d.what.rast, d.what.vect a d.what.sites. Tiež vyskúšajte príkaz d.zoom (Obr .2).
GRASS:~ d.rast soils GRASS:~ d.vect map=roads col=black GRASS:~ d.sites sitefile=bugsites color=yellow size=3 |
Vytvorenie novej LOCATION.
Pred tým než vytvoríme novú LOCATION, potrebujeme vedieť súradnicový systém, súradnice pre záujmové územie a rozlíšenie, v ktorom chceme pracovať. Vytvorme teda novú LOCATION v geografickom súradnicovom systéme (latitude/longitude) pre územie Južnej Dakoty tak, aby pokrývala našu databázu Spearfish. Súradnice pokrývajúce územie Spearfish databázy sú nasledovné: SEVER 45° N, JUH 44° N, ZÁPAD 104° W, VÝCHOD 103° W. Novú LOCATION vytvoríme tak, že vo vstupnom dialogóvom okne vyberieme „Create New Location“. Systém sa v textovom menu spýta na názov novej location. Zadajte: „spearfishll“, pokračujte ďalej, až sa dostanete k menu, kde máme určiť súradnicový systém. Tu vyberte „B“ (Latitude-Longitude), pokračujte ďalej a zadajte jednoriadkovy popis novej LOCATION. Keď si systém vypýta meno elipsoidu zadajte „wgs84“. Nasleduje tabuľka, kde treba vyplniť súradnice špecifikujúce rozsah záujmového územia. Súradnice zadajte cez znak „:“, nezabudnite na znaky „N“ a „W“. Rozlíšenie nastavíte na 0:00:01 (stupne, minúty, sekundy), neskôr ho môžete ľubovoľne zmeniť (Obr. 1). Nakoniec zadajte ešte meno nového MAPSETu. Ak ste sa preklikali až k GRASSovskému promptu, gratulujte si, prvú LOCATION ste úspešne vytvorili.
Rozsah záujmového územia a rozlíšenie, v ktorom pracujeme sa dá nastaviť aj počas práce. Tieto parametre sa nastavujú príkazom g.region, ide o dôležitý príkaz a v každom GIS sedení ho určite použijete. Zoznam operácií, ktoré umožňuje získate po jeho výpise do promptu. Je dobré ovládať ho do detailov, bez neho sa ďaleko ísť nedá. Stane sa, že si naimportujete mapu do svojho MAPSETu, dáte si ju zobraziť a nič. Aj keď sa systém tváril, že niečo vykresľuje. GRASS ju vykreslil, ale mimo definovaného územia, ktoré vidieť na monitore, vtedy treba použiť kombináciu príkazov g.region a d.erase a mapu znovu vykresliť (viz. predchádzajúci príklad). Bude sa vám to na začiatku stávať často ;-)
Transformácia projekcií v GRASSe.Niekedy potrebujeme preniesť mapu (transformovať mapu) z jednej projekcie do druhej. Prečo sa to robí? Pri zložitejšom projekte máme často vstupné dáta z rôznych zdrojov, teda od rôznych dodávateľov a v rôznych kartografických zobrazeniach. Pred konečnou analýzou a odovzdaním výsledného produktu ich však potrebujeme priestorovo ujednotiť, tj. transformovať do jednotného kartografického zobrazenia. Dôležitosť tohto kroku si uvedomíme až vtedy, keď v už naplno rozbehnutom projekte zistíme, že nami zvolené zobrazenie nedáva najlepšie výsledky, alebo produkuje neakceptovateľné skreslenia. Je to ako keď pri návrhu databázy nevhodne navrhnete štruktúru a prepojenia tabuliek. Našou úlohou bude transformovať územie Spearfish z zobrazenia UTM (Universal Transverse Mercator) do LOCATION „spearfishll“ (Latitude/Longitude), ktorú sme si práve pripravili.
Koncepcia tejto operácia je nasledovná. Potrebujeme dve LOCATIONs – jednu zdrojovú (spearfish, UTM) a druhú cieľovú (spearfishll, Lat./Long.). Mapu zo zdrojovej LOCATION akoby vytiahneme do cieľovejLOCATION. Transformácia sa prevádza príkazom r.proj (platí pre raster, pre vektor a site dáta treba použiť v.proj resp. s.proj). Budeme transformovať mapu „elevation.dem“. Spusťme GRASS a v uvítacom dialógu vyberme LOCATION „spearfishll“ (cieľovú LOCATION). Ostatný postup je zrejmý z príkazov.
GRASS:~ r.proj in=elevation.dem out=elev.ll \ location=spearfish mapset=PERMANENT GRASS:~ g.region rast=elev.ll GRASS:~ d.erase GRASS:~ d.rast elev.ll GRASS:~ g.region |
Po transformácií rastra (rastrov, vektorov, site dát) môžme interaktívne myšou zisťovať polohu na území a takisto hodnotu rastra nadmorskej výšky cez príkaz d.what.rast. Mapové transformácie je potrebné zvládnuť aj preto, aby sme neboli limitovaní zobrazením, v ktorom sme dáta získali a aby sa dáta dali vzájomne zdieľať a vymienať. Nezabúdajte, že modulug.region sa pri práci s GRASSom nevyhnete. Ak ste zvládli transformáciu jednej vrstvy, skúste si transformovať aj niektoré vektorové, či bodové dáta. Nabudúce sa pozrieme na prácu s rastrom a naimportujeme do GRASSu prvé vlastné dáta.
Použité zdroje:1. M. Neteler a H. Mitášová. 2002. Open Source GIS: A GRASS GIS Approach. 1st edition. Kluver Academic Publishers.
2. http://grass.itc.it