OpenSource GIS GRASS
Na stránkách Lesnické práce se začínají objevovat články pojednávající o různém využití informačních technologií, zvláště geografických informačních systémů (GIS). Většina lidí si pod pojmem GIS představí pouze jeden konkrétní produkt. Rád bych upozornil, že na světě existuje takových programů více. Některé z nich spadají také do kategorie OpenSource, a dokonce jsou pod licencí GNU/GPL (GNU/General public licence). V tomto článku bych rád vyzdvihl jeden z nich.
GIS si v našem oboru vydobyly nezastupitelné místo. Jsou nástrojem pro ukládání lesnických dat, nástrojem pro tvorbu mapových děl a hlavně nástrojem pro analýzu lesnických a s lesnictvím souvisejících dat.
Spektrum programů z oboru GIS je široké a zabírá programy určené spíše na prohlížení geografických dat (Arc View, Topol), které lze v případně potřeby rozšířit přídavnými moduly, až po „high-end“ GIS (ERDAS, ArcInfo) umožňující hlubší analýzu jednotlivých typů geografických dat (rastrová data, vektorová data).
Většina obecně známých produktů je vyvíjena komerčními firmami, které si svůj produkt nechají řádně zaplatit a neváhají požadovat peníze i za případné rozšiřující moduly, které posunují daný produkt o úroveň výše. K dispozici je nám i jedno řešení, jehož cena je bezkonkurenční - je zcela zdarma.
Svět otevřeného softwaru
Richardu Stallmanovi vadila politika komerčních firem vyrábějících software - snaha ovládnout uživatele programů a zakázat jim sdílet programy s ostatními. Byl přesvědčen, že není možné nikomu bránit v užívání oblíbených programů. Aby nemusel opustit svoje ideály, rozhodl se v 70. letech založit GNU - projekt, jehož úkolem je vytvořit kvalitní volně šiřitelný software. Chtěl, aby programy nebyly pouze zadarmo, ale aby opravdu nikoho neomezovaly v jejich používání. Dokonce aby každý mohl program vylepšit, studovat, modifikovat, nebo použít nějakou jeho část ve svém vlastním programu. To by umožnilo, aby více lidí pracovalo na jednom projektu, což je nutné k vypracování rozsáhlejších děl. Také bylo nutné zajistit, aby nedošlo k pozdější komercializaci celého projektu nebo jeho částí. Proto vymyslel speciální licenci GNU/GPL, která se drží hesla, že co je zdarma, by mělo zdarma i zůstat. Všechno, co vytvoříte z programů pod GNU licencí (Copyleftem), tuto licenci automaticky přebírá.
Většina lidí se mylně domnívá, že free program automaticky znamená, že je zdarma. Není to pravda. Protože není protiprávní GNU programy prodávat, vzniklo i několik komerčních firem zabývajících se vývojem, distribucí a poskytováním záruky či technické podpory pro GNU programy. Tyto firmy mohou prosperovat přesto, že programy jsou dostupné zdarma na internetu (to vychází z práva na volné šíření), protože se stále najde dostatek lidí, kteří si raději koupí CD, tištěnou dokumentaci apod. (http://gnu.cz/gnu-1.html).
Cestou OpenSource vzniká velké množství programů i celých operačních systémů. Asi nejznámějším a nejrozšířenějším je operační systém GNU/Linux, jehož verze 1.0 byla uvolněna v roce 1991 a z tohoto roku máme již verzi jádra systému 2.6.
Ačkoliv byl tento systém vyvíjen původně pro serverové nasazení, na světě je už množství kancelářských aplikací, zabalených do příjemného grafických prostředí. Tato grafická prostředí disponují i různými vylepšeními pro uživatele s různými handicapy (např. oční vady). Samozřejmostí je kompletní lokalizace do národních jazyků (tedy i češtiny či slovenštiny). Na operačním systému Linux je vyvíjen i geografický informační systém GRASS.
GIS GRASS
GRASS (Geographical Resources Analysis Support System) je geografický informační systém, původně vyvíjený v U.S. Army Construction Engineering Research Laboratories (CERL) (1982-1995) jako systém pro správu oblastí pod vojenskou správou. Odhaduje se, že v této době bylo do jeho vývoje investováno několik miliónů dolarů. V roce 1995 byl jeho vývoj ukončen a zdrojové kódy byly uvolněny pod GNU/GPL. V Evropě a USA se nacházejí dvě hlavní vývojová centra. Evropské centrum se před pár lety přesunulo z německé univerzity v Hannoveru spolu s hlavním evropským koordinátorem Markem Netelerem do Itálie (Trento) (http://grass.itc.it). Pod jeho vedením vývoj utěšeně pokračuje (nemalou zásluhu na tom má i několik našich krajanů) a pravidelně jsou uvolňovány aktualizace a opravy. Existuje množství konferencí zaměřených na řešení specifických problémů (vývoj, dokumentace, 3D vizualizace a NVIZ, atd.). Současná stabilní verze GRASS nese označení 5.0.3.
Charakteristika
Snad nejsilnější stránka GRASS leží v oboru rastrových analýz. Správa vektorových dat sice není na takové úrovni jako u srovnatelných komerčních GIS (ArcInfo), ale pro běžnou práci je dostačující. GRASS nabízí možnost spojení s relační databází PostgreSQL (a dalšími). Tato možnost mu v oboru správy vektorových dat doslova dává křídla. PostgreSQL je ve svém oboru relačních databází na špičce mezi produkty uvolněnými pod GNU/GPL.
Ovládání GRASS se děje především pomocí textového terminálu. Tento způsob ovládání není nepodobný již zmiňovanému ArcInfo. GRASS ovšem využívá všechny výhody Linuxové textové konzole.
Ke standardní sadě příkazů operačního systému, přibudou příkazy GRASS. Z GRASSového příkazového řádku tedy můžete např. mazat a přesouvat soubory, stejně jako číst svou elektronickou poštu (což je v běžných GIS zcela nemyslitelné).
GRASS standardně disponuje také grafickým uživatelským rozhraním, jehož použitelnost se samozřejmě s textovou konzolí nedá srovnávat. Nedisponuje totiž např. historií použitých příkazů a automatickým doplňováním názvů příkazů a souborů po stisknutí klávesy TAB.
Samozřejmostí je možnost psaní jednoduchých skriptů díky příkazovému interpretu BASH, s jejichž pomocí lze lehce automatizovat některé často se opakující činnosti či prezentovat svá data.
K vizualizaci geografických dat slouží tzv. GRASS monitory. To jsou samostatná okna (může jich být až 6), ve kterých se zobrazují požadovaná rastrová i vektorová data. K jejich vlastnostem patří i schopnost zobrazovat 3D data.
Rastrové dovednosti
Síla GRASS spočívá právě v rastrových analýzách. Z bodových (výsledek geodetických měření) nebo liniových (vrstevnice) dat není problém interpolovat digitální model terénu (DEM), což je rastrová mapa, jejíž hodnota z každé buňky rastru obsahuje informaci o její výšce nad mořem.
Pokud máme takový digitální model terénu, je velice snadné provést další rastrové analýzy, jako jsou např. různé hydrologické propočty.
Hydrologické výpočty
Z digitálního modelu terénu lze velmi rychle generovat celou řadu zajímavých a užitečných map. V první řadě nás bude většinou zajímat mapa hustoty povrchového odtoku. Výsledná mapa může být ovlivněna množstvím vstupních parametrů, jako jsou např. mapy bariér (příkopy, náspy). Dalším modulem můžeme rychle získat mapu povodí a rozvodí, jejich velikost (úroveň) je nastavitelná parametrem při spuštění modulu. Samozřejmostí je zjištění povodí ke geograficky (souřadnicemi) určenému uzavíracímu profilu.
GRASS také obsahuje speciální modul pro komplexní hydrologické simulace. Modul r.water.fea umožňuje uživateli provést kompletní simulaci hydrologických poměrů na konkrétní přívalovou srážku. Při výpočtu je zohledněna výška infiltrace. Modul spočítá a vykreslí hydrogramy pro každou nádrž, stejně jako dráhu povrchového odtoku v povodí. Na úrovni nádrže je schopen vykreslit animační mapy průběhu povrchového odtoku. Při konfiguraci modulu se zohledňuje i charakter a délka trvání srážky.
Toto je pouze jeden modul z mnoha, kterými GRASS disponuje. Vzhledem k povaze GRASS a hlavně vzhledem k licenci, pod kterou je distribuován, nikdo uživateli nebrání, aby si doprogramoval modul vlastní. K dispozici je kromě zdrojových kódů programu i kompletní dokumentace (GRASS 5.0 Programmer’s Manual).
Způsob práce s vektorovými daty
Práce s vektorovými daty je v současné verzi jednou ze slabých stránek GRASS. V současné stabilní verzi je možné do interní databáze GRASS uložit k vektorovým datům pouze jeden atribut.
S možností uložení dat v externí databázi se nám ale otevírají nové obzory. GRASS nativně podporuje práci s databází PostgreSQL. Pomocí rozhraní unixODBC však „dosáhne“ i na data v jiných databázových systémech (Oracle, MySQL, Firebird a dalších).
Toto řešení má nesporné výhody. Uživatel se nemusí učit vlastně novou databázi. Vystačí se znalostmi standardu SQL99. S touto dovedností je schopen vytvářet a spravovat relační databázové systémy a tyto pak využít např. pro programování webových či právě geografic-kých aplikací. Jedna dovednost je využitelná v množství odvětví uživatelovy činnosti.
3D vizualizace dat
Díky modulu NVIZ můžeme s GRASS vytvářet 3D náhledy zájmových území. Princip je asi takový, že z rastrové mapy digitálního modelu terénu se vytvoří podkladový 3D model terénu, na nějž se „oblékne“ libovolná rastrová nebo vektorová mapa (y).
Vzniklý model lze podle potřeby nasvítit a případně i přibarvit. NVIZ nám navíc nabízí i poměrně propracovanou možnost vytváření filmu a jeho export do formátu MPEG.
Práce s modulem NVIZ je jednoduchá a s jeho pomocí lze dosáhnout efektních výstupů při minimu vložené námahy.
Další vývoj GRASS
V současnosti nese vývojová verze GRASS označení 5.7. Mění se doslova hodinu od hodiny a k dispozici je na internetu vždy v nejnovějším řešení. Každý týden je uvolňována aktuální verze v binární podobě připravená k okamžité instalaci.
Nová verze nabízí velké množství zajímavých novinek. Například zcela novou vektorovou architekturu, která nejenže řeší problém s jedním atributem, ale daleko jej přesahuje. Jednou z atraktivních novinek je s 3D vektorovými daty. Přítomny jsou další moduly sloužící k užší spolupráci nejen s PostgreSQL, ale i s ostatními databázovými systémy. Vývoj směřuje k tomu, že v databázi budou uložena nejen data (jak je tomu v současnosti), ale i topologie vektorů.
Dalším zajímavým počinem je systém BabyGRASS - verze určená speciálně pro kapesní počítače řady iPAQ.
Díky způsobu licencování je jednoduché, aby kdokoliv napsal další modul nebo jednoduchý skript. Nic nebrání tomu, aby byl přidán do hlavního vývojového stromu. Každý, kdo má potřebu, může těžit z již hotové práce a zároveň další vývojáři mohou stavět na práci jeho.
GRASS je vyvíjen na platformě OS Linux distribuce RedHat verze 7.1. Díky široké mezinárodní podpoře jej lze ale provozovat na většině operačních systémů rodiny UNIX a kromě toho byl portován i na operační systém MacOS a na operační systémy rodiny MS Windows, využívajících technologii NT (MS Windows NT, MS Windows 2000, MS Windows XP). Co se hardwaru týče, platí jako vždy - čím více tím lépe. GRASS jako takový se snaží být úsporný a v kombinaci s vhodným správcem oken nezabere výrazné množství systémových prostředků. Díky preferenci textového způsobu ovládání odpadají zbytečné nároky na grafické uživatelské rozhraní. Při náročnějších výpočtech se lze zcela obejít bez grafického prostředí.
Podpora a dokumentace
Okolo většiny programů ze světa otevřeného softwaru se vytvořila komunita uživatelů, což je jev u jiných programů a operačních systémů nevídaný. Jen okolo GRASS existuje množství odborných e-mailových konferencí zabývajících se konkrétními otázkami spojenými s provozem (NVIZ visualization mailing list, SQL GRASS mailing list) a vývojem (GRASS 5 Developers mailing list, documenting grass list) GRASS. Samozřejmostí jsou konference národních skupin uživatelů. Od května roku 2003 existuje i konference Československá. Její členové se mohou při řešení svých konkrétních problémů obrátit na zkušenější členy e-mailové konference.
Na oficiální stránce GIS GRASS existuje detailní on-line dokumentace ke každému modulu. Kromě popisu můžeme nalézt odkazy na příbuzné moduly, literaturu vztahující se k modulu a kontakty na autory. Nepřeberné množství dokumentace dostáváme však přímo s programem (tzv. „manuálové stránky“). Dokumentaci k jednotlivým modulům tak můžete studovat rovnou off-line v našem počítači.
Chceme-li ve světě informačních technologií něčeho dosáhnout, podaří se nám to bez angličtiny většinou jen těžko. Většina materiálů týkajících se GIS GRASS je v angličtině. Díky široké uživatelské základně existuje i množství národní dokumentace v různé fázi dokončenosti.
Na trhu jsou v současnosti k dostání dvě knihy o GRASS. První je anglicky psaná „OpenSource GIS: A GRASS GIS Approach“ autorů Netelera a Mitasové pojednávající o GRASS v celé jeho komplexnosti, rastrovými analýzami počínaje a jeho nasazením na internetovém serveru konče.
Druhá kniha od Marka Netelera je v němčině a jmenuje se „GRASS-Handbuch“ (Příručka ke GRASS). Jde spíše o skriptum, podle kterého se každý naučí chápat GRASS a již v jeho polovině je schopen samostatné práce. Řešení různých úkolů je demonstrováno na konkrétních příkladech a v přílohách jsou ukázky různých konfiguračních souborů (včetně komentářů) a seznam vybraných modulů s jejich popisem.
GRASS-Handbuch je od května 2003 převáděna do češtiny. V současnosti jsou přeloženy kapitoly 4 až 10 a dokumentace dále přibývá. První čtyři chybějící kapitoly jsou však na internetu nahrazeny dalšími texty a články.
Závěr
Účelem článku bylo ukázat na novou alternativu v oboru informačních technologií. Operační systém Linux (a jemu podobné systémy BSD - např. FreeBSD či OpenBSD) již delší dobu kraluje v oblasti serverových operačních systémů. V poslední době se na odborných serverech a konferencích diskutuje o tom, že by mohl „prorazit“ i na poli desktopů. Není divu, Linux nabízí všechny softwarové vymoženosti, které si jen kancelářské nasazení může žádat. Přihlédneme-li k nákladové stránce věci, můžeme z mnoha položek vyvstávajících při zavádějí informačních technologiích do praxe škrtnout položku za náklady za pořízení softwaru a za správu různých licencí.
S tímto operačním systémem úzce spojený GIS GRASS má nejlepší poměr ceny a kvality, s jakým jsem se doposud setkal. Svět otevřeného software nabízí takových produktů celou řadu a byla by škoda, kdyby je obor lesnictví a ochrany přírody zcela opomíjel.
V těchto dnech můžeme pozorovat jev „tříštění sil“. Každý nadějný programátor vyvíjí raději vlastní aplikaci, protože rozšiřovat nějakou aplikaci stávající není v důsledku licenční politiky možné. Toto řešení je neefektivní. Je daleko výhodnější, spojí-li se síly nadějných programátorů ve společném úsilí, než aby vznikaly stále nové „poloprojekty“, které nikdy nemohou obsáhnout celou šíři dané problematiky. GRASS takovou možnost nabízí - již svou podstatou je to „slepenec“ podprogramů, které dělají to, co si od nich jejich autoři přejí.
Internetové odkazy
http://gnu.org - Stránky hnutí GNU
http://grass.itc.it - Oficiální stránka GIS GRASS
http://gama.fsv.cvut.cz/~grass - Sdružení českých uživatelů GIS GRASS
http://les-ejk.cz - Česká internetová stránka, zabývající se mj. GRASS
Adresa autora: Jáchym Čepický
Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
FLE ČZU v Praze
Obrázky: autor
Pozn.: V době uzávěrky tohoto vydání Lesnické práce byl uzavřen vývojový strom verze 5.3 pro nové funkce (nadále v něm lze provádět pouze opravy chyb a začíná se připravovat vydání nové stabilní verze nesoucí označení GRASS 5.4.0.).
GNU - rekurzivní zkratka (zkratka, která obsahuje samu sebe) a znamená „GNU’s Not Unix“. Jeho cílem bylo vytvoření svobodného operačního systému, vycházejícího z principů proprietárního UNIX System V. Ve znaku má pakoně hřivnatého (anglické slovo „gnu“ je právě pakůň hřivnatý).
OpenSource - otevřené zdroje.
Většina programů je psána v některém z programovacích jazyků, který je pro člověka čitelný (i když to tak někdy nevypadá), ale není čitelný pro počítače. Aby programu „rozuměl“ počítač, musí se nejdříve převést do binární podoby (sledu jedniček a nul). Komerční produkty bývají šířeny pouze v této binární podobně - jsou tedy pro člověka nečitelné a jejich zdrojový kód je uzavřený. OpenSource znamená šíření programů s jejich zdrojovými kódy tak, aby kdokoliv mohl „nahlédnout pod pokličku“.