Mendelova univerzita v Brně Provozně ekonomická fakulta
Porovnání metod zpracování geografických dat Bakalářská práce
Vedoucí práce: Ing. David Procházka, Ph.D.
Pavel Netolický
Brno 2013
Zadání práce
Chtěl bych zde poděkovat svému vedoucímu práce Ing. Davidu Procházkovi, Ph.D. za příkladné vedení a podnětné připomínky k mé práci.
Prohlašuji, že jsem práci napsal samostatně a s využitím zdrojů, které uvádím na závěr v seznamu literatury.
V Brně, dne 20. května 2013
................................................................
5
Abstract NETOLICKÝ, P. Comparison of methods for processing geographic data. Bachelor thesis. Brno, 2013 The thesis deals with processing of geographic data. The reader is introduced to the available methods of data processing and individual data formats. The various applications for processing geographic data are mentioned. The thesis also compares a desktop-based solution in ArcGIS with a web service. The service is implemented using the PyWPS library. Keywords PyWPS, ArcGIS, GIS, SHP
Abstrakt NETOLICKÝ, P. Porovnání metod zpracování geografických dat. Bakalářská práce. Brno, 2013 Práce se zabývá možnostmi zpracování geografických dat. Čtenář je seznámen s dostupnými způsoby zpracování dat a jednotlivými datovými formáty. Zmíněny jsou různé aplikace pro zpracování geografických dat. Tato práce rovněž srovnává desktopové řešení v ArcGIS s webovou službou. Služba je implementována pomocí PyWPS knihovny. Klíčová slova PyWPS, ArcGIS, GIS, SHP
6
OBSAH
Obsah 1 Úvod a cíl práce 1.1 Úvod práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Současný stav 2.1 Vývoj softwarových aplikací . . . . . . . . . . . . . . . . 2.2 Možnosti zpracování geografických dat . . . . . . . . . . 2.3 Desktop mapping . . . . . . . . . . . . . . . . . . . . . . 2.3.1 ArcGIS . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 MapInfo . . . . . . . . . . . . . . . . . . . . . . . 2.3.3 GRASS GIS . . . . . . . . . . . . . . . . . . . . . 2.3.4 Quantum GIS . . . . . . . . . . . . . . . . . . . . 2.3.5 UDig . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.6 Shrnutí vybraných GIS nástrojů . . . . . . . . . . 2.4 Datové formáty . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 GML (Geography Markup Language) . . . . . . . 2.4.2 KML (Keyhole Markup Language) . . . . . . . . 2.4.3 Esri Shapefile . . . . . . . . . . . . . . . . . . . . 2.4.4 Geodatabáze . . . . . . . . . . . . . . . . . . . . 2.4.5 Shrnutí vybraných datových formátů . . . . . . . 2.5 WebMapping – Publikování geografických dat v prostředí 2.5.1 Mapové servery . . . . . . . . . . . . . . . . . . . 2.5.2 OGC standardy a specifikace pro webové služby . 2.5.3 ArcGIS Server . . . . . . . . . . . . . . . . . . . 2.6 Shrnutí . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Internetu . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
8 8 9 10 10 11 11 12 13 13 13 14 14 14 14 14 15 16 18 18 19 22 25 26
3 Metodika práce 27 3.1 Výběr problematiky řešení . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Výběr vhodné desktop aplikace . . . . . . . . . . . . . . . . . . . . . 27 3.3 Výběr vhodného webového řešení . . . . . . . . . . . . . . . . . . . . 27 4 Vlastní práce 4.1 Vybraná geoprocessingová služba . . . . . . . . . . . 4.2 Tvorba geoprocessingové služby v ArcGIS for Desktop 4.2.1 Tvorba modelu . . . . . . . . . . . . . . . . . 4.2.2 Nastavení prostředí . . . . . . . . . . . . . . . 4.2.3 Zásady tvorby modelu . . . . . . . . . . . . . 4.3 Python (ArcPy) . . . . . . . . . . . . . . . . . . . . . 4.3.1 Vývojové prostředí . . . . . . . . . . . . . . . 4.3.2 Popis funkcionality skriptu . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
28 28 28 29 29 30 32 32 33
7
OBSAH
5 Webová služba 5.1 Testování . . . . . . . . . . . . . . . . . . 5.1.1 PyWPS . . . . . . . . . . . . . . . 5.1.2 Popis základního nastavení PyWPS 5.1.3 Implementace skriptu . . . . . . . 5.2 Alternativní řešení . . . . . . . . . . . . . 5.2.1 GeoServer WPS . . . . . . . . . . 5.2.2 52°North WPS . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
6 Diskuze a ekonomické zhodnocení 6.1 Pohled uživatele . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Desktopové řešení . . . . . . . . . . . . . . . . 6.1.2 Webová služba . . . . . . . . . . . . . . . . . . 6.2 Srovnání z pohledu programátora . . . . . . . . . . . . 6.3 Srovnání z pohledu integrace do informačního systému 6.4 Zhodnocení řešení . . . . . . . . . . . . . . . . . . . . . 6.5 Ekonomické hodnocení . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . .
35 35 35 36 37 38 38 38
. . . . . . .
39 39 39 39 41 42 42 43
7 Závěr
45
8 Literatura
46
Přílohy
48
A ToolValidator
49
B Skript ArcPy
50
C Dialogové okno desktop aplikace
52
D PyWPS proces ogrClip
53
1
ÚVOD A CÍL PRÁCE
1 1.1
8
Úvod a cíl práce Úvod práce
Geografické informační systémy jsou v současné době velice žádaným oborem, jenž se promítá do různých oblastí lidských činností. Stále častěji je potřeba při různých činnostech zpracovávat geografická data. Množství dat neustále přibývá a je potřeba se mezi těmito daty orientovat a snažit se je třídit. Práce s geografickými informačními systémy již není pouze oborem pro specialisty, především z oboru kartografie. Objevuje se zájem o GIS i ze strany široké veřejnosti. Snaha o umožnění přístupu ke geodatům neodborníkům vede k využití tenkých klientů, jakými jsou webové prohlížeče nebo specializované prohlížeče přímo určené k zobrazování geodat. Použití tenkých klientů umožňuje přenést většinu zátěže na specializované servery a tímto zvýšit komfort uživatelů. Stále klesající náklady na pořízení hardwaru přispívají k rozvoji tohoto přístupu. Stav výpočetní techniky je v dnešní době na takové úrovni, že nám nečiní problémy zpracovávat a ukládat data rozsáhlých území (Vildomec, 2008, s. 8). GIS v prostředí Internetu dnes nabízí velké množství funkcí. Na popularitě nabývají nejrůznější mapy v prostředí Internetu, takzvané webové mapové aplikace, jako jsou například Google Maps a mnoho dalších. Již není potřeba mít veškerá data fyzicky na svém počítači, ale data jsou ukládána a zpracovávána za pomocí webového (cloud) řešení. Díky webovým technologiím tak dochází ke snadnějšímu sdílení geodat. Uživatelé si mohou nejen prohlížet mapy, ale též z nich zjišťovat nejrůznější informace – např. nalézt místo podle zadané adresy či vyhledat nejrychlejší cestu. Díky rostoucímu využití webových mapových služeb rostou také požadavky uživatelů. Již pro ně často není dostatečné geodata pouze prohlížet, případně vkládat svá měření. Pro řadu pokročilých činností uživatelé vyžadují možnost zpřístupněná geodata měnit – např. editace metadat či změna samotných objektů. Tato činnost byla doposud běžně prováděna převážně v rámci desktopových aplikací. Tato práce se zabývá možnostmi efektivního zpracování dat v prostředí webových mapových služeb a porovnává tento přístup s běžným dektopovým přístupem.
1.2
1.2
Cíl práce
9
Cíl práce
Cílem práce je zhodnotit různé přístupy pro zpracování vektorových geografických dat v současných GIS nástrojích. Zejména jde o porovnání webového zpracování geodat s desktopovým řešením zpracování geodat. K naplnění tohoto cíle budou provedeny následující kroky. Nejprve bude nutné charakterizovat rozdíl mezi desktopovou aplikací a webovou aplikací. Následně bude v práci uveden současný stav řešení GIS aplikací. V dalším kroku bude provedena rešerše přístupů používaných pro zpracování geografických dat. S tím související shrnutí pojednávající o rozdílnosti přístupů. V metodické části práce budou stanoveny metody pro řešení. Dále bude nutné provést implementaci. Zde bude zaznamenán přesný postup řešení a implementace s důrazem na vytyčení podstatných rysů řešení. Na zvoleném vhodném modelovém problému zpracování vektorových geografických dat bude provedena komparace jednotlivých přístupů. Zvolena bude implementace skriptu ve vybraném desktopovém GIS nástroji. Pro komparaci bude využita ekvivalentní funkcionalita v podobě webové služby. V části týkající se diskuze bude provedeno zhodnocení řešení. Dojde zde k vyhodnocení technických parametrů, uživatelské přívětivosti s důrazem na uživatelský pohled a pohled programátora. Následně budou zhodnoceny ekonomické aspekty řešení. V samotném závěru bude diskutováno nad možným rozvojem v této oblasti a potenciálem pro komerční využití.
2
SOUČASNÝ STAV
2 2.1
10
Současný stav Vývoj softwarových aplikací
Nejprve existovaly pouze desktop aplikace, které bylo možné použit pouze na samostatných počítačích. Vývoj webových aplikací nabyl na důležitosti až s příchodem Internetu. Díky rychlému vývoji webových aplikací dochází ke snaze nahrazovat desktop aplikace webovými. Hlavním důvodem je přenositelnost, lepší funkčnost a především mnohostranná využitelnost. Webové aplikace jsou obvykle postaveny na architektuře klient-server a jako klientské rozhraní se používá webový prohlížeč. To je jedním z důvodů, proč jsou webové aplikace tak široce oblíbené. Desktopové aplikace jsou stále však hojně využívány v úzce specializovaných odvětvích (např. stavebnictví), kde webové řešení nemá velkého opodstatnění. Mezi hlavní nedostatky webových aplikací patří zejména bezpečnostní problémy a zákonná ustanovení související s webovými službami. Dále je provedeno jen základní porovnání desktopové a webové aplikace založené na určitých parametrech: • Údržba – Webové aplikace se instalují pouze jednou a to při nahrávání na webový server. Tím odpadá oproti desktopovému řešení instalace na každý počítač samostatně. Navíc nutnost pravidelných aktualizací je u desktopové aplikace značně těžkopádné oproti webové aplikaci. • Použitelnost – Desktop aplikace je omezena na fyzické umístění a z toho plyne omezená použitelnost. Webová aplikace na druhé straně umožňuje pro uživatele pohodlný přístup k aplikaci z libovolného místa pomocí Internetu. • Bezpečnost – Webové aplikace jsou více vystaveny bezpečnostním rizikům než desktopové aplikace. U desktopových aplikací můžeme mít plnou kontrolu nad samostatnou aplikací a chránit ji od různých zranitelností. Webové aplikace jsou oproti tomu otevřeny pro velký počet uživatelů v internetové komunitě a jsou tak vystaveny většímu nebezpečí zvenčí. • Připojení – Vývoj webových aplikací se spoléhá významně na připojení k Internetu. Absence Internetu může způsobit problémy s výkonem webových aplikací. Desktop aplikace jsou samostatné povahy a proto nejsou kladeny žádné překážky vyplývající z připojení k Internetu. Dle typu připojení je také významně ovlivněna rychlost webové aplikace. • Náklady – Vývoj webových aplikací a jejich údržba znamenají vyšší náklady, které jsou většinou opakující se povahy. Desktop aplikace jsou nakupovány jednou a nejsou nutné průběžně poplatky. Nicméně v některých případech jsou placeny poplatky za aktualizace SW. Nákladnost se do jisté míry odvíjí od využitelnosti aplikace. (Streetdirectory, 2012)
2.2
Možnosti zpracování geografických dat
2.2
11
Možnosti zpracování geografických dat
Od dob, kdy se k mapování používaly pouze klasické papírové mapy, už uběhla poměrně dlouhá doba. Především díky svému snadnému použití papírové mapy asi nikdy zcela nezaniknou. V mnoha činnostech je však výhodné je nahrazovat digitálním obrazem, dokonce GIS aplikací. V současné době se používají především dva přístupy k mapování: 1. Desktopové aplikace spojené s mapovými podklady – desktop mapping 2. Webové služby využívající mapové servery – web mapping
2.3
Desktop mapping
Dle Tučka (1998) tyto aplikace v současnosti prochází stále obrovským vývojem. Umožňují zaznamenávání vztahů mezi různými zdroji informací na digitálních mapách, grafech a tabulkách. Umožňují uživatelům vytvářet náročnější analýzy, jenž jsou schopny analyzovat téměř všechny marketingové a obchodní informace. Díky desktopovým aplikacím můžeme porovnávat a analyzovat data, která by se jinak zdála neslučitelná. S využitím nových vizuálních systémů tak lze dosáhnout kvalitnějších výsledků v obchodním a marketingovém plánování. Organizační a řídící struktury mohou být tedy umístěny tam, kde jsou nejvíce potřebné. Desktop mapping aplikace pracuje s daty uloženými v databázích a zároveň i širokým spektrem statistických a popisných dat a map. Mezi něž patří: • detailní mapy cest a ulic, • mapy hranic, • demografická data a data o výsledcích různých analýz, • různé typy statistik (ekonomické, sociální, aj.). Desktop mapping umožňuje připojit data přímo objektům reprezentovaným prostřednictvím grafických symbolů jako jsou např. body, přímky či mnohoúhelníky (polygony) v různých mapách. Užitím desktop mappingu je možné vykonávat i jednoduché prostorové analýzy jako je překrývání vrstev, ale také i různé třídění a vyhledávání. Existuje velké množství desktop aplikací umožňujících práci s geodaty. Mezi významné patří: 1. Komerční • ArcGIS for Desktop (Esri)1 • MapInfo (MapInfo Corporation) 1
Environmental Systems Research Institute
2.3
Desktop mapping
12
2. Open Source • GRASS GIS, • Quantum GIS, • uDIG. 2.3.1
ArcGIS
Esri se svým produktem ArcGIS Desktop je leaderem na trhu SW orientovaného na GIS. ArcGIS Desktop patří mezi desktopové aplikace, jenž slouží ke zpracování mapových podkladů na jednotlivých počítačích. Software ArcGIS Desktop 10 nabízí širokou paletu nástrojů pro všechny, kdo pracují s informacemi se vztahem k území. ArcGIS Desktop 10 je k dispozici ve třech licenčních úrovních: ArcView, ArcEditor a ArcInfo, které se liší různým rozsahem funkcionality (ArcData, 2011). ArcView poskytuje rozsáhlé nástroje pro tvorbu map a získávání informací z map a zahrnuje jednoduché nástroje pro editaci a prostorové operace (ArcData, 2001). ArcView slouží především k zobrazování a analýze geodat a k tvorbě mapových výstupů. Disponuje základními nástroji pro tvorbu, správu a editaci dat. ArcEditor je určen zejména pro tvorbu nových dat a pro editaci stávajících dat GIS. Obsahuje všechny základní funkce, které jsou součástí ArcView (např. nástroje pro vizualizaci prostorových dat, jejich analýzu a tvorbu map), ale jeho hlavním přínosem je právě možnost pokročilými způsoby vytvářet nová data, kontrolovat jejich kvalitu a přesnost, pomocí nejrůznějších nástrojů je upravovat a spravovat. ArcInfo obsahuje všechny funkce GIS, které jsou součástí ArcView a ArcEditor. Navíc přináší škálu analytických a kartografických funkcí, pomocí kterých lze výrazně zvýšit produktivitu při zpracování geografických dat a tvorbě kartografických výstupů. Součástí licence ArcInfo je nadstavba Maplex, jež zajišťuje přehlednost a dobrou čitelnost popisků ve vytvářených mapách (ArcData, 2011). ArcGIS Desktop dle definice uváděné v (ArcData, 2001) je sadou integrovaných a navzájem spolupracujících softwarových aplikací ArcMap, ArcCatalog a ArcToolbox. Použitím těchto tří aplikací můžete provést jakoukoliv GIS úlohu, od jednoduché po složitou, včetně tvorby map, správy dat, geografické analýzy, editace dat a prostorových operací. ArcMap je centrální aplikace v ArcGIS Desktop. Je to GIS aplikace, použitelná pro všechny mapově orientované úlohy, včetně kartografie, prostorových analýz a editace dat. ArcCatalog pomáhá organizovat a spravovat všechna data. Obsahuje nástroje pro prohlížení a vyhledávání geografických informací, zaznamenávání a prohlížení metadat, rychlé prohlížení libovolných datových sad a vytváření schématu struktury geografických vrstev. ArcToolbox aplikace obsahující mnoho nástrojů GIS pro prostorové operace.
2.3
Desktop mapping
2.3.2
13
MapInfo
Jak zmiňuje (Tuček, 1998) ve své knize, MapInfo je velmi známý a rozšířený GIS nástroj. MapInfo je považováno za průkopníka desktop mappingu a to díky myšlence zpřístupnění prostředí široké vrstvě uživatelů. Využívá propojení jednoduchého prostředí GIS s databázovými prostředky. Je uzpůsoben převážně pro prostředí Microsoft Windows. Podporuje ale i další počítačové platformy a operační systémy. Jedná se o řešení pro profesionální práci s mapou a tvorbu geografických analýz. Je špičkovým softwarem pro vizualizaci a analýzu dat z geografické perspektivy. S MapInfo lze provádět detailní a sofistikované analýzy dat využitím jejich prostorové složky nebo souřadnic naměřených přes GPS technologii. Dále je využíván pro tvorbu přehledných map pro lepší prezentaci, reporting a kvalitnější podnikatelská rozhodnutí. Využití také najde pro geografické řešení rozmístění poboček, prodejen, skladů nebo plánování činnosti či řešení dopravně logistických úloh. MapInfo je celosvětově považováno za jedno z nejvíce user-friendly“ GIS řešení ” se snadným, intuitivním ovládáním a zároveň velmi širokou funkcionalitou. Mezi výhodu lze zařadit i plnou podporu českého jazyka. 2.3.3
GRASS GIS
GRASS GIS (Geographic Resources Analysis Support System) je volně šiřitelný desktopový geografický informační systém umožňující správu geoprostorových dat, jejich analýzu, zpracování obrazových dat, produkci mapových výstupů, geoprostorové modelování a vizualizaci dat. Vedle graficky orientovaného uživatelského rozhraní disponuje GRASS i textovou příkazovou konzolí. GRASS je hojně používán jak v akademické, tak v komerční sféře po celém světě. GRASS je oficiální projektem Open Source Geospatial Foundation, multiplatformním nástrojem šířeným pod licencí GNU GPL. Dříve byl velký problém s vektorovými daty především při jejich importování Esri Shapefiles. Bylo možné importovat jen jeden atributový sloupec. (Tento problém by již měl být dle uvedeného zdroje (Pacina, 2013) vyřešen od GRASS GIS verze 6.0. Soubory .shp se již neimportují, ale externě vážou (linkují) pomocí knihovny OGR. Díky tomu je poté přístupná celá atributová tabulka vektorového souboru.) 2.3.4
Quantum GIS
Quantum GIS (QGIS) je o uživatelsky přívětivý open source geografický informační systém, který běží na platformě GNU/Linux, Unix, OS X i Windows. QGIS podporuje vektorové, rastrové a databázové formáty. QGIS je licencován pod licencí GNU General Public License. QGIS umožňuje jak prohlížet a tak i vytvářet mapy v počítači. Podporuje mnoho z běžných formátů prostorových dat (např. Esri Shapefile, GeoTiff ). QGIS podporuje i pluginy, umožňující věci jako je zobrazení trasy z GPS souřadnic. Funkčnost rozšiřují zásuvné moduly, významný je modul zpřístupňující funkce GRASS GISu – QGIS tak může sloužit jako jeho nadstavba. Quantum GIS
2.4
Datové formáty
14
má malou velikost souboru v porovnání s komerčními GIS nástroji a vyžaduje méně paměti, proto ho lze použít pro starší počítače nebo spouštět současně s ostatními aplikacemi. 2.3.5
UDig
UDig (User Friendly Internet Desktop GIS) je opensource desktop GIS klient s jednoduchým rozhraním pro editaci a zobrazování geografických dat. UDig je postavený na Eclipse technologii RCP 2 . Díky tomu tak vzniká uživatelsky přívětivé prostředí pro uživatele GIS. Jedná se spíše o internetově orientovaný GIS nástroj umožňující zpracování standartu jako WMS, WFS i WPS i samotných webových služeb (např. GeoRSS). Samozřejmostí je nativní podpora Windows, OS X a GNU/Linux. 2.3.6
Shrnutí vybraných GIS nástrojů
Cílem srovnání vybraných desktop GIS nástrojů bylo představit software ArcGIS, jenž má široké využití především ve veřejné správě, kde se užívá především pro různé analýzy nad geodaty. Stejné využití má i software MapInfo. Oproti tomu open source software jako např. GRASS GIS, QGIS či UDig mají většího využití ve spojení s řadou online mapových služeb.
2.4
Datové formáty
V následující sekci jsou stručně shrnuty vybrané klíčové datové formáty geodat, které jsou využívány ve většině desktopových GIS nástrojích. 2.4.1
GML (Geography Markup Language)
Specifikuje XML kódování pro přenos a uložení geografických informací obsahujících jak prostorové, tak neprostorové vlastnosti geografických prvků. GML bývá označován jako základní formát pro práci s geografickými daty. Slouží jako modelovací jazyk pro geografické systémy. Obsahuje základní vektorové prvky (bod, linie, uzavřená linie, polygon a pravoúhelník) a jejich vlastnosti a pravidla pro práci s nimi (topologická, geometrická pravidla, souřadnicové systémy EPSG). Nepopisuje vzhled, ale strukturu popisovaného území. 2.4.2
KML (Keyhole Markup Language)
KML je značkovací jazyk, který vznikl na základě XML. Hlavním úkolem KML je zprostředkovat reprezentaci geografických dat v prostředí webových mapových aplikací nebo prohlížečích Země jako je Google Earth. KML nese informaci o tom, co má být zobrazeno a jak se tato data mají zobrazit. Z tohoto pohledu KML doplňuje 2
Rich Client Platform – minimální sada pluginů potřebných k vybudování bohaté klientské aplikace na platformě Eclipse
2.4
Datové formáty
15
většinu klíčových OGC standardů. KML je v dnešní době široce používaný jazyk podporovaný různými aplikacemi. Jsou to např. Microsoft Virtual Earth, MicrosoftWorldWide Telescope, NASA WorldWind, Esri ArcGIS. 2.4.3
Esri Shapefile
Dle dokumentace týkající se typu souboru SHP (Esri, 2013) je shapefile nejznámější datový formát pro ukládání vektorových prostorových dat v GIS. Tento formát nemá kapacitu pro ukládání topologické informace. Je vyvinutý a řízený firmou Esri jako otevřený formát pro datovou interoperabilitu mezi Esri a ostatními softwarovými produkty. Specifikace shapefile je tak snadno dostupná a je podporovaná řadou dalších softwarových balíků nejenom Esri softwarem. Shapefile je jednoduchý datový formát, protože ukládá primitivní geometrické datové typy, jako jsou body, linie a polygony. Tyto datové typy mají omezené použití, pokud není připojena tabulka atributů. Proto pro každý shapefile je uložena tabulka záznamů s vlastnostmi. Jeho velkou výhodou oproti jiným datovým zdrojům je rychlé vykreslování a možnost editace. Shapefile je souhrn několika souborů. Tři soubory jsou povinné pro uložení základních údajů – jedná se o následující formáty: *.SHP, *.SHX a *.DBF. Existuje dále dalších osm volitelných souborů. Povinné soubory: • .SHP – je hlavní nebo-li záznamový soubor, který obsahuje základní grafické referenční údaje. Každému záznamu se připisuje typ objektu se seznamem klíčových (lomových) bodů, • .SHX – jedná se o tzv. indexový soubor obsahující uložení prostorového indexu nad geometrickými popisy prvku obsažených ve vrstvě, • .DBF (dBASE table) – databázová tabulka, soubor obsahující atributová data, vztahující se k prostorovým prvkům obsaženým v hlavním souboru. Volitelné soubory: • .PRJ – soubor ukládající informace ve formátu souřadného systému a popisující informace o projekci, • .SBN – jedná se o binární prostorový indexovaný soubor, který používá pouze software Esri, • .SBX – jedná se o prostorové indexy používané v geografických databázích (databáze uchovávající informace o objektech v prostoru), • .FBN a FBX – prostorový index pro shapefile, který je pouze pro čtení, • .AIN a AIH – atribut indexu aktivního pole v tabulce,
2.4
Datové formáty
16
• .IXS – geokódovací index pro čtení a zápis shapefile, • .MXS – geokódovací index pro čtení a zápis shapefile (ODB formát), • .ATX – atribut DBF ve formě shapefile ColumnName ATX (podporován až od verze ArcGIS 8 a novější), • .SHP.XML – geografická metadata ve formátu XML, • .CPG – slouží k zadání kódu stránky (pouze pro DBF) pro určení kódování znaků, které mají být použity. 2.4.4
Geodatabáze
Specifickým případem jsou tzv. geodatabáze, které jsou vyvíjeny společností Esri. Jedná se o prostorovou databázi navrženou pro ukládání, dotazování a manipulaci s geografickými informacemi a prostorovými daty. Prostřednictvím geodatabází je možné spravovat jak vektorová, tak i rastrová data. Tento způsob organizování dat je výhodný především kvůli lepšímu přístupu k datům a následné práci s nimi. Geodatabáze je přirozenou datovou strukturou systému ArcGIS. Používá se primárně pro editaci a správu dat. Geodatabáze se skládá z komponent: • datové sady (Feature datasets), • třídy prvků (Feature classes) – jednat se o atributová data obsahující informaci o geometrii (nejčastější bod, linie či polygon), • neprostorové tabulky (Nonspatial tables) – jedná se o atributová data bez informace o geometrii.
Obr. 1: Základní komponenty geodatabáze: Na vzorovém obrázku je ukázáno rozdělení dat v typické geodatabázi. Každá datová sada (Feature dataset) je rozdělena na třídy prvků (Feature classes) a neprostorové tabulky (Nonspatial tables) (Esri, 2009).
2.4
17
Datové formáty
Dle systému ArcGIS dochází k členění geodatabází na: • Osobní geodatabáze (Personal geodatabase) Geodatabáze uložená a spravovaná v souborech Microsoft Access (*.mdb). Celý obsah geodatabáze je uložen v jednom souboru MS Access. Tento typ uložení dat limituje velikost geodatabáze na 2 GB. Je to dobrá možnost využití databáze s geografickými daty. Geodatabáze obsahuje tabulky s třídami prvků a systémové tabulky obsahující informace o pokročilých možnostech geodatabází – subtypy, domény, relace. Tento typ geodatabáze podporuje více čtenářů a pouze jednoho editora. Výhodou geodatabáze je automatický výpočet geometrických veličin – délka liniových prvků, obvod a výměra polygonových prvků. • Souborová geodatabáze (File geodatabase) Tento typ geodatabáze je upřednostňován před osobní geodatabází. Podporuje více čtenářů a jednoho editora, avšak více editorů u více datových sad. Souborová geodatabáze určitým způsobem zabezpečuje data, protože ji nelze otevřít v jiném programu než pomocí ArcGIS. Umožňuje také ukládat data v komprimovaném formátu pouze pro čtení, který snižuje i požadavky na potřebné místo pro uložení. Stejně jako osobní geodatabáze se i souborová geodatabáze vyznačuje automatickým výpočtem geometrických veličin jednotlivých prvků, linií a polygonů. • ArcSDE geodatabáze Geodatabáze uložená v relační databázi využívající Oracle, Microsoft SQL Server nebo PostgreSQL. Tyto víceuživatelské geodatabáze vyžadují k použití ArcSDE a mohou pracovat na neomezené velikosti s neomezeným počtem uživatelů. Je to soubor různých datových sad, které jsou udržovány jako tabulky v relační databázi. ArcSDE geodatabáze podporuje čtení a editaci více uživateli. Nejedná se o geodatabázi volně a zdarma dostupnou v ArcGIS. Limity velikosti se odvíjejí od limitů DBMS. Tab. 1: Srovnání podpory tříd prvků: Srovnávající tabulka poukazuje na podporu jednotlivých tříd prvků. Z tabulky jasně plyne, že soubory typu SHP vykazují lepší podporu z pohledu geometrie než v případě geodatabáze (Wikipedia – Comparison of Vector Formats, 2013).
Geodatabáze Shapefile 3
Bod Ano Ano
MultiPoint3 Ne Ano
Linie Ano Ano
Polyline Ne Ano
MultiPolyline Ne Ano
MultiPoint je označení pro prvek, který je složeny z více než jednoho bodu.
Polygon Ano Ano
2.5
WebMapping – Publikování geografických dat v prostředí Internetu
2.4.5
18
Shrnutí vybraných datových formátů
Formáty odvozené od XML jako jsou GML, KML nacházejí využití především ve webových aplikacích. Je to díky tomu, že je lze snadno zaimplementovat do webového řešení. Oproti tomu souborové formáty typu Esri Shapefile či geodatabáze jsou využívány především desktopovými aplikacemi. Tyto formáty jsou především hojně využívány ve zmiňovaném SW ArcGIS.
2.5
WebMapping – Publikování geografických dat v prostředí Internetu
Jak se ve svém projektu zmiňuje (Cajthaml, 2005), tak v prostředí Internetu lze publikovat geografická data různými způsoby. První možností je pouhá prezentace rastrového či vektorového obrazu. Takové mapy jsou nejčastěji využívané ve formě HTML stránek, které zobrazují statické obrazy. V těchto mapách nejsou možné žádné úpravy, slouží víceméně jen pro zobrazení. Mírným vylepšením je použití tzv. klikacích map“, kde určitá vymezená ” oblast mapy slouží jako odkazové tlačítko. Tak je možné např. zobrazit základ mapového díla a po kliknutí zobrazit příslušný mapový list. Druhou možností (tzv. Static web mapping) je využitím HTML formulářů a předáváním parametrů CGI aplikaci, která mapu zobrazí. Webová stránka pak reaguje na tlačítka a přepínače formuláře a CGI aplikace (mapserver) vytváří výsledné kompozice. V HTML formulářích se často používají skrýtá (hidden) pole, která uchovávají informaci o stavu aplikace. CGI je pak programové rozhraní, které umožňuje předávat vstupní hodnoty do proměnných, které využívá CGI aplikace (mapový server). Tyto aplikace jsou napsány v libovolném programovacím jazyce (C, Python). Pokročilejší možností (tzv. Interactive web mapping) je doplnění stránky o interaktivní prvky za použití technologií DHTML, Java applets, ActiveX či různých pluginů . Technologie DHTML je založena na skriptování na straně klienta (JavaScript, VBScript), DOM a CSS . Pomocí jednoduchých skriptů pak můžeme interaktivně měnit obsah i vzhled stránky. Další možností rozšíření je využití určitých pluginů v prohlížečích. Tyto doplňky umožňují uživateli např. zobrazit data ve formátu, který samotný prohlížeč nepodporuje. Pokud klient plugin neobsahuje, uživatel je při prvním použití dotázán, zda jej chce doinstalovat. Java applety jsou na webových stránkách stále populární. Jsou to moduly napsané v jazyce Java a vložené do HTML kódu. Pokud má klient nainstalovánu podporu Javy, applet se spustí a může oživit stránky stejně jako např. DHTML (je třeba poznamenat, že Java má mnohem větší možnosti). Java má velkou výhodu i ve své nezávislosti na platformě a právě proto je dnes tak populární. Technologií, která je zatím spíše diskutována jsou tzv. GIServices: služby, které zajišťují přímou komunikaci komponent na straně klienta a serveru (CORBA, SOAP) bez použití HTTP a CGI. Do budoucna se počítá s tím, že by mohly nahradit předcházející možnosti. V posledních letech se v geoinformační komunitě stále více
2.5
WebMapping – Publikování geografických dat v prostředí Internetu
19
skloňuje pojem distribuovaný GIS“. Díky rapidnímu nárůstu používání Internetu ” začíná být distribuce geodat přes Internet jedním z hlavních témat dnešního světa GIS. Desktopové aplikace s neaktuálními daty začínají být nahrazovány systémy, které jsou schopné využívat a distribuovat data přenášená po síti Internet. Pro koncové uživatele se pak rýsuje možnost pracovat s geodaty pouze v prostředí internetového prohlížeče bez nutnosti instalovat GIS software. Pro náročnější GIS analýzy je samozřejmá práce v desktop GIS, který však umožňuje připojení dat z externích zdrojů . Cílem distribuovaného GIS by měly být systémy nezávislé, jak na platformě (PC, PDA, mobilní telefony), tak na operačním systému (UNIX/Linux, Windows, OSX). 2.5.1
Mapové servery
Mapový server je platformou, jenž je založená na architektuře klient-server, která poskytuje GIS služby prostřednictvím Internetu. Prostřednictvím mapových serverů jsou nabízeny mapové výstupy spolu s funkcemi nad geografickými daty. Existuje celá řada používaných mapových serveru, které se dělí do dvou skupin. Mezi vybrané řešení jsou zvoleny: Komerční • ArcGIS for Server (Esri), • Geomedia Web Map (Intergraph), • T-MapServer (T-MAPY). Open Source • UMN MapServer, • GeoServer. Tab. 2: Srovnání GeoServer vs. MapServer: Následující tabulka ve stručnosti shrnuje rozdíl mezi hlavními open source mapovými servery MapServer a GeoServer. Ze srovnání jasně vyplývá možnost využití daných mapových serveru při různém typu nasazení. Pro služby založené na WMS si spíše bude hodit MapServer. Pro komplexnější řešení by se spíše hodil GeoServer (Anitagraser, 2010).
WMS WFS Technologie Administrace Služby Dotazování
Geoserver dobrá podpora podpora WFS J2EE Webové prostředí WMS,WFS,WCS i WPS CQL a OGC filtry
MapServer vynikající podpora nelze CGI MapFile pouze WMS SQL dotazy
2.5
WebMapping – Publikování geografických dat v prostředí Internetu
20
Komunikace mezi klientem a mapovým serverem Mapový server může být: • Program vracející na základě vstupních parametrů obrázek mapy. • Program vracející na základě vstupních parametrů a šablony hotovou internetovou stránku s mapou. • Užité rozhraní k různým programovacím jazykům – MapScript (např. Python, Perl, …) Mapový server dodává klientovi geodata, která jsou uložena v souborovém systému či v databázi. Klientem se může stát i jiný mapový server. Komunikace mezi mapovým serverem a klientem probíhá nepřímo prostřednictvím webového serveru. Webový server zaštiťuje mapový server na Internetu a zpřístupňuje jeho rozhraní pomocí standardních protokolů. Díky webovému serveru jsou pak klientské požadavky přesměrovány na mapový server, jenž je zpracuje a odesílá požadavky zpět ke klientovi. Schématicky znázorněna daná situace na obr. 2
Obr. 2: Schéma funkce mapového serveru: Z pracovní stanice prostřednictvím webového serveru je zaslán požadavek na mapový server. Zde jsou data uložena do databáze a dojde ke zpracování geodat. Prostřednictvím webového serveru je pak zobrazena výsledná mapa (Mitchell, 2005, s. 37).
2.5
WebMapping – Publikování geografických dat v prostředí Internetu
21
Princip komunikace 1. Z pracovní stanice přijde na server dotaz s požadovanými mapovými vrstvami a souřadnicemi zájmového území. 2. Mapový server vyrobí z daného území obrázek mapy se všemi vrstvami, legendou, referenční mapou atd. Vše je definováno v konfiguračním souboru. 3. Zpět je klientovi v závislosti na požadavku vrácen obrázek mapy ve formě HTML stránky nebo výsledku dotazu na databázi. 4. Jednotlivé servery spolu mohou komunikovat pomocí služeb WMS, WFS a dalších a poskytovat si tak navzájem mapy. Protokoly komunikace Jak uvádí (Novák, 2011) pro zajištění komunikace mezi klientem a serverem je zapotřebí, aby si spolu obě komunikující strany, jak klient tak i server rozuměli. Musí obě podporovat stejný komunikační protokol a ujednat si způsob používání protokolu. Pro komunikaci je zapotřebí definovat základní protokoly a to protokol pro ukládaní dat a protokol samotné komunikace. Vývojem a standardizací komunikačních protokolů pro geoprostorové a lokalizační služby se zabývá Open Geospacial Consortium (OGC). Pomocí CGI přesměrovává webový server klientské požadavky na server mapový. Webový server zpřístupňuje služby mapového serveru klientům zejména prostřednictvím standardních protokolů SOAP a REST stanovených konsorciem W3C. Mezi další protokoly patří např. CORBA či RMI. 1. protokol SOAP (Simple Object Access Protocol) Formát SOAP tvoří základní vrstvu komunikace mezi webovými službami. Slouží pro síťový přenos zpráv ve formátu XML, nejčastěji pomocí protokolu HTTP. Nevýhodou SOAP může být zdlouhavá syntaxe XML formátu, což se projeví ve vyšších nárocích na operační paměť procesoru. Výhodou protokolu je jeho snadné použití a dostupnost vývojových nástrojů. 2. protokol REST (Representational State Transfer) REST je mladší a častěji užívanější alternativa k protokolu SOAP. Jedná se o druh softwarové architektury. Principem rozhraní REST je jednotný, snadný a rychlý přístup ke zdrojům dat. Přístup je realizován prostřednictvím protokolu HTTP a pomocí čtyř základních operací (GET, PUT, POST a DELETE). REST neobsahuje velké množství XML tagů, je snadno sestavitelný a má čitelné výstupy. 3. protokol CORBA (Common Object Request Broaker Architecture) Jak popisuje (Růžička, 2007, s. 72) CORBA je jazykově neutrální transparentní použití distribuovaných objektů. Je definován v dokumentech OMG . K popisu
2.5
WebMapping – Publikování geografických dat v prostředí Internetu
22
rozhraní je využíván jazyk IDL. Na základě IDL je možné provádět automatizované generování kódu např. pro jazyky C++, C a Smalltalk. Standard CORBA se jeví jako příliš složitá a s nedostatečnou podporou. Dnes je tato technologie diskutovaným tématem. Jisté je však, že CORBA nemá tak širokou podporu jako technologie SOAP. 4. protokol RMI (Remote Method Invocation) RMI je obdoba technologie CORBA. Její nevýhodou je závislost na jazyku Java. Stejně jako CORBA nemá tak širokou podporu. Výhodou však je, že s daty může v systému migrovat i samotná logika služeb. Pokud se v současné době hovoří o webových službách, pak výhradně ve spojitosti s protokolem SOAP, který je nejvíce používaný protokol. Pro sdílení geodat mezi klientem a mapovým serverem je důležitá schopnost různých systémů vzájemně spolupracovat a poskytovat si služby (interoperabilita). O stanovení pravidel v této oblasti se stará OGC (Open Geospatial Consortium, www.opengis.org) se svým Interoperability programem. 2.5.2
OGC standardy a specifikace pro webové služby
Open Geospatial Consortium je mezinárodní, neziskové standardizační (průmyslové) konsorcium, které vyvíjí a vydává standardy a specifikace pro zpracování a sdílení geografických dat. V současné době sdružuje více jak 440 členů ze sféry obchodních společností, vládních organizací a univerzit. Dále spolupracuje s ostatními mezinárodními standardizačními organizacemi např. W3C, OASIS či IETF. Web Services (webové služby) jsou definovány konsorciem W3C jako řešení (sada technologií), které je určeno na podporu komunikace mezi aplikacemi v síti. Tato definice v sobě zahrnuje mnoho různých systémů, ale při běžném používání se jedná o klienty a servery, které spolu komunikují pomocí XML zpráv a HTTP protokolu. Servery vždy poskytují určité služby (zobrazení mapy, získání dat, atd.), které lze využívat a zveřejnit ve webovém prostředí. Webové služby jsou nezávislé na platformě. Pomocí nich jsou určovány standardizovaný požadavek klienta a odpověď serveru na daný požadavek. Konsorcium OGC definuje řadu standardů a specifikací. Standardem je míněna obecná charakteristika služby. Specifikací se rozumí konkrétní technické pokyny pro programátory popisující implementaci OGC standardů do aplikací. OGC standardy a specifikace jsou tedy technické dokumenty, které popisují rozhraní a kódování GIS. Softwaroví vývojáři pak používají tyto dokumenty při vytváření svých produktů a služeb. (Landa, 2011) Mezi nejvýznamnější jsou zařazeny standardy pro webové služby – OGC Web Services (OWS). OWS definují obecný rámec pro OGC specifikace webových služeb pracujících s geodaty. Na základě definic si poté konkrétní webové služby nad společný rámec nadefinují vlastní parametry.
2.5
WebMapping – Publikování geografických dat v prostředí Internetu
23
Mezi standardizované geografické webové služby dle OGC zařazujeme: • Web Map Service (WMS), • Web Feature Service (WFS), • Web Coverage Service (WCS), • Web Processing Service (WPS). WMS Jedná se o základní službu pro práci s mapami na Internetu. Díky této službě jsou mapy poskytovány v rastrovém formátu. Většina moderních SW pro GIS umožňuje integraci WMS vrstev. Prostřednictvím WMS služby dochází k vzájemné interakci mezi klientem a serverem. Na vrcholu komunikace se nachází mapový server s podporou WMS služeb – WMS server. V jeho úložišti jsou uloženy georeferencovaná obrazová data a v databázi jsou uloženy atributové informace o geografických objektech. Klient je chápan jako prostředek, který komunikuje se serverem za účelem získat informace. Pro komunikaci je využit protokol HTTP. Služba po požadavku klienta na mapový obsah vybere potřebná prostorová data a z těch vygeneruje rastrový obraz, který odešle klientovi. Nakonec jsou informace prostřednictvím rozhraní zpřístupněny uživateli. Názornější vysvětlení naznačuje nadcházející obrázek 3. Výhodou této služby je, že není nutné data spravovat nebo aktualizovat. Stačí jen použít externí službu. Nevýhodou naopak je, že bývá pomalejší nebo i nedostupná, v závislosti na dostupnosti a rychlosti služby či připojení.
Obr. 3: Princip interakce WMS služby: Na názorné ukázce je znázorněna vzájemná interakce mezi uživatelem a mapovým serverem, kde je nainstalována WMS služba. Uživatel prostřednictvím rozhraní (klienta) pošle požadavek ve formě dotazu na mapový server, kde je nainstalována WMS služba. Požadavek je zpracován přes rozhraní (klienta) a uživateli jsou zobrazena data (Jíránek, 2007).
2.5
WebMapping – Publikování geografických dat v prostředí Internetu
24
WFS Webová služba, jenž je používána pro zobrazování, dotazování a manipulaci s vektorovými prostorovými daty především ve formátu GML. Pracuje jako WMS, s tím rozdílem, že nepracuje s mapou jako s obrazem, ale jako s daty ve formátu GML. Dle (Nováka, 2011) je princip WFS služby specifikován takto: • Klient se dotáže na strukturu poskytovaných dat. • Server vrátí strukturu ve formátu XML. • Klient se dotáže na vybrané prvky (na základě atributu, prostorového umístění). • Server vrátí geometrii i atributy geoprvků ve formátu GML. WCS WCS je využíváno pro přenos datových vrstev přes Internet. Poskytuje rastrová data v původním formátu spolu s metadaty sloužícími k interpretaci. Poskytována jsou souvislá data pokrytí. V současné době jsou podporována pouze rastrová data, připojení vektorových dat se plánuje v blízké budoucnosti. Je využíváno pro standardizovaný přenosu satelitních dat. Díky schopnosti WCS přenášet čtvrtou dimenzi (čas) je možné získat satelitní snímky konkrétní oblasti k požadovanému datu. WPS WPS je službou pracující s prostorově orientovanými daty. Umožňuje provádění výpočetních úkonů a zpracování vektorových i rastrových dat. Vstupní data lze získat jako primitivní data (např. čísla, řetězce) či údaje komplexního charakteru (GML). Dále je možné za vstup využít výstupy z některé ze služeb dle OGC specifikace (např. WMS,WFS,…). Pro publikování se pak nejčastěji využije jedné ze služeb dle OGC specifikace (WFS, WMS, WCS). WPS specifikuje způsob zpracování procesu, popisuje formu vstupních a výstupních dat. Udává, jakým způsobem může klient o provedení procesu požádat a jakým způsobem jsou mu doručeny výstupy. Dle (OGC, 2013) rozhraní WPS definují tři základní typy dotazů, na které se mohou klienti dotazovat a server odpovídat. Základní dotazy jsou podporovány všemi severy se službou WPS. • GetCapabilities Tento typ dotazu odešle klientovi dokument s metadaty. V dokumentu je obsažen výčet procesů, které jsou na konkrétním serveru implementovány. Dotaz GetCapabilities poskytuje název a základní charakteristiku každého procesu nabízeného konkrétní WPS instancí. Operace také specifikuje používanou verzi pro komunikaci mezi serverem a klientem.
2.5
WebMapping – Publikování geografických dat v prostředí Internetu
25
• DescribeProcess Použitím dotazu DescribeProcess klient požádá o podrobné informace o konkrétním procesu, včetně informací o podporovaných vstupních a výstupních datových formátech. • Execute Díky dotazu Execute je možné provést libovolný proces s uvedenými vstupními hodnotami. Po zpracování jsou klientovi navráceny výstupy volaného procesu. Žádost může být podána buď metodou GET prostřednictvím URL, nebo metodou POST s vyžádáním XML dokumentu. Vzhledem k tomu, požadavek má většinou komplexní strukturu, tak se více využívá metody POST (GeoServer, 2013). Na obr. 4 je schématicky znázorněno vykonání požadavku Execute.
Obr. 4: Web Processing Service požadavek Execute: Z desktop aplikace či webového prohlížeče je zaslán Execute požadavek na webový server. Odtud putuje požadavek na WPS Server, který požadovaná data získá z WMS serveru, WFS serveru či prostorové databáze. Zpracovaná data jsou nakonec poslána nazpět do desktop aplikace či webového prohlížeče (Růžička, 2007, s. 72).
2.5.3
ArcGIS Server
Pro potřeby srovnání přístupů serverového řešení je zcela jistě vhodné zmínit koncepci ArcGIS Server. Jedná se o komerční mapový server dodávaný společností Esri. Hlavním smyslem je přenos funkcionality desktopového GIS do prostředí webu. Slouží především pro sdílení geografických dat na serveru. Výstupy jsou prostřednictvím ArcGIS Server publikovány především ve formě služeb. Rozdílem oproti open source řešením mapového serveru jsou již připravené funkční nástroje pro práci na serveru. ArcGIS Server se tak stává komplexním nástrojem, jenž lze užít v mnoha oblastech řešení (např. vývoj vlastních aplikací a služeb či správa a administrace).
2.6
Shrnutí
26
Architektura ArcGIS Server Další odlišností oproti většině open source řešení mapového serveru je i samotná architektura architektura. Architektura je založena na navzájem oddělených částech: 1. Web Server Je správcem webových aplikací a služeb, které využívají procesů běžících na GIS Serveru. 2. GIS Server Základem GIS Serveru je poskytování služeb ArcGIS Serveru. GIS Server se sám o sobě skládá ze dvou částí: • SOM (Service Object Manager) Slouží pro správu, řízení a poskytování GIS služeb běžících na serveru. SOM se připojuje k jedné nebo více SOC služeb. • SOC (Service Object Container) V prostředí SOC jsou uloženy služby, které SOM spravuje. 3. Data server Datový server obsahuje GIS prostředky (data), které jsou publikovány prostřednictvím služeb na GIS serveru. Mezi zdroje patří především mapové dokumenty, geodatabáze, toolboxy s nástroji (podrobněji vysvětleno dále v textu) či vyhledávač adresy (address locator). Na datovém serveru může být nainstalován i aplikační server ArcSDE. ArcSDE spravuje geoprostorová data v relačním databázovém systému (např. MS SQL) a zpřístupňuje je ArcGIS aplikacím.
2.6
Shrnutí
Jak je vidět z předchozích kapitol existuje nepřeberné množství desktop řešení. Zastoupena jsou, jak komerční (hlavní zástupci ArcGIS a MapInfo), tak open source řešení. Komerční řešení však dnes již nejsou tak populární jako dříve. V dnešní době se spíše prosazují řešení založené na open source technologiích a s využitím OGC standardů. Webová řešení jsou, jak plyne z předchozího textu, ve většině případů založena na OGC řešení. Zobrazování dat v prostředí webového řešení je dnes již na velmi dobré úrovni. O kvalitě může vypovídat např. projekt INSPIRE, díky kterému se k mapovým podkladům může dostat téměř kdokoliv s připojením k Internetu. Zatím však nikdo příliš neřešil zpracovávání dat ve webovém prostředí. Z výše uvedených poznatků také plyne, že OGC WMS a WFS jsou zásadními specifikacemi, které dnes musí respektovat každé internetové GIS řešení, které chce být interoperabilní (vysvětlení viz výše). Výjimku tvoří ArcGIS for Server se svojí specifickou architekturou řešení. Na druhé straně stojí WPS, jenž je standardem pro zpracování dat. Tento standard je v současné době zatím poměrně málo rozvinutý a jeho technologie není zcela otestována. Cílem mé práce tedy bude otestovat využití WPS služby pro zpracování dat.
3
METODIKA PRÁCE
3
27
Metodika práce
Jak již bylo v úvodu práce konstatováno, cílem práce je porovnat řešení v některé zvolené desktop aplikaci s webovým řešením. Pro tuto práci je tedy zvolena problematika geoprocessingu a jeho řešení v rámci jednotlivých platforem.
3.1
Výběr problematiky řešení
Geoprocessing je GIS operace sloužící k manipulaci s prostorovými daty. Typická geoprocessingová operace vyžaduje vstupní datový soubor. Nad tímto souborem dat provede GIS aplikace danou operaci a vrátí její výsledek jako výstupní datovou sadu. Mezi běžné geoprocessingové operace patří geographic feature overlay (funkce zeměpisného překrytí), feature selection and analysis (funkce výběru a analýzy), topology processing (topologické zpracování), raster processing (rastrové zpracování) a data conversion (konverze dat). Geoprocessing umožňuje definování, správu a analýzu informací, které byly použity k rozhodnutí. Pro tuto práci bude nutné vybrat jednu z právě definovaných geoprocessingových služeb, která bude podrobena srovnání.
3.2
Výběr vhodné desktop aplikace
Na základě podrobného testování jednotlivých desktop aplikací na které byl zaměřen pohled v předchozí části práce. Bude nutné zvolit aplikaci, která umožňuje vytvoření geoprocessingové služby. Při výběru řešení bude brán ohled na řešení, které lze vlastním způsobem rozšířit. Při výběru bude dbáno dále i na možnost využití dané služby pro hromadné využití.
3.3
Výběr vhodného webového řešení
V prostředí webového rozhraní je volba řešení složitějším problémem. Existuje velké množství různých řešení. Proto bude zcela jistě potřeba udělat srovnání různých řešení a teprve poté provést samotné řešení webové služby. Hlavním cílem však zůstává, aby daná technologie byla volně šiřitelná a tím pádem snadno dostupná.
4
VLASTNÍ PRÁCE
4
28
Vlastní práce
V této kapitole je popsána praktická část bakalářské práce. Pro samotné řešení dané problematiky je možné zvolit několik způsobů řešení. Základem však zůstává možnost vytvoření vlastního řešení. S ohledem na množství dostupných návodů je zde zvoleno řešení za pomocí ArcGIS Desktop a využití služby PyWPS.
4.1
Vybraná geoprocessingová služba
Pro srovnání je zvoleno geoprocessingové služby Clip. Hlavní funkcí nástroje Clip je oříznutí vstupních dat dle polygonové vrstvy. Tato funkcionalita je velice užitečná v případech, kdy je potřeba vytvořit novou třídu dat, jenž bude obsahovat pouze část obrovské skupiny dat (např. celé vrtsvy obcí). Nástroj Clip je hojně využíván pro hromadné zpracování dat. V práci je využito tohoto nástroje pro zpracování dat zvolené/ných obce/cí. Na tomto příkladě lze jasně demonstrovat využití tohoto nástroje. Je dáno velké množství dat pro celou oblast. Pro danou obec jsou potřeba jen určitá data. Pomocí Clip nástroje lze jednoduše vybrat data, která chceme zpracovat. Některé desktop GIS aplikace tuto funkci mají v základní verzi přímo implementovanou. Cílem této práce je však snaha o rozšíření funkce nástroje Clip pro hromadné zpracování dat. Funkcionalita je zobrazena na obr. 5. Funkci Clip lze použít jak pro liniová, bodová, tak i polygon data.
Obr. 5: Znázornění funkce Clip (Help.ArcGIS, 2013).
4.2
Tvorba geoprocessingové služby v ArcGIS for Desktop
Obecnou ideou geoprocessingové služby je automatizace tzn. řetězení procesů a především snaha o vytvoření nového nástroje. Pro samotné vytvoření služby je vhodné využít modelovacího prostředí ModelBuilder. ArcGIS Desktop nabízí grafické programovací prostředí ModelBuilder. Tato aplikace je určena pro sestavení a implementaci modelů. Výpočetní model je tvořen postupným řetězením nástrojů. Každý model se skládá z dat vstupních, výstupních a minimálně jednoho nástroje. V případě, že model obsahuje dva a více zřetězených nástrojů, zahrnuje i data mezivýstupní (intermediate). Mezivýstupní data jsou výstupními daty aktuálního nástroje a zároveň vstupními daty nástroje následujícího. Zajišťují tedy řetězení nástrojů. Jedná se o data dočasná, po dokončení procesu budou smazána.
4.2
Tvorba geoprocessingové služby v ArcGIS for Desktop
29
Dále může model obsahovat proměnné, iterátory a parametry. Parametr modelu určuje, jaké hodnoty či sady dat mohou být při volání modelu měněny. Při spuštění modelu se v dialogovém okně zobrazí hodnoty a datové sady označené parametrem. Ty mají své výchozí nastavení, ale uživatel je může podle potřeby změnit. 4.2.1
Tvorba modelu
Před samotným řešením služby je potřeba si důkladně promyslet budoucí využití. Od toho se odvíjí samotné řešení. Než se pustíme do vlastní tvorby modelu je vhodné si přehledně zorganizovat data. V této práci je použita následující organizace dat (viz obrázek 6).
Obr. 6: Popis organizace dat: Jedná se o schématické znázornění, jehož základem je nově vytvořená geoprocessingová služba (Clip). V této složce jsou obsaženy vytvořený toolbox clip.tbx a projektový soubor projekt.mxd. Důležitou součástí jsou vytvořené složky pro vstupní (ToolData) a výstupní data (Scratch).
4.2.2
Nastavení prostředí
Před započetím práce v ModelBuilderu je třeba upravit následující nastavení geoprocessingu v ArcMapu (viz obrázek 7), nastavení se nijak neliší ani při řešení této práce: • V nastavení prostředí je nutné nastavit složku pro výstupní data Scratch workspace 4 a především pracovní oblast Current workspace Geoprocessing/Enviroments/Workspace/Scratch Workspace a Current Workspace • Upravit nastavení geoprocessingu Geoprocessing/Geoprocessing Options – Povolit přepsání výstupních dat zaškrtnout Overwrite the outputs of geoprocessing operations – Zakázat možnost dočasných výsledků odškrtnout Results are temporary by default – Povolit přidávání výstupů do projektu zaškrtnout Add results of geoprocessing operations to the display 4
Scratch workspace se užívá pro označení výchozího pracovního adresáře pro zápis výstupních a mezivýstupních dat. Hlavním účelem Scratch workspace je použití v ModelBuilderu.
4.2
Tvorba geoprocessingové služby v ArcGIS for Desktop
30
Obr. 7: Nastavení v nabídce Geoprocessing: Jak je možné vidět, byl v nabídce Enviroments (Prostředí) nastaven adresář pro pracovní oblast: C:\ModelBuilder\clip a pro meziukládání dat: C:\ModelBuilder\clip\Scratch. Dále pod nabídkou Geoproccessing Options: Povolit přepsání výstupních dat (Overwrite the outputs of geoprocessing operations), Zakázat možnost dočasných výsledků (Results are temporary by default), Povolit přidávání výstupů do projektu (Add results of geoprocessing operations to the display).
4.2.3
Zásady tvorby modelu
Pro vznik geoprocessingové služby je třeba vytvořit nový Toolbox a v něm nový model. Vlastní tvorba modelu probíhá standardním způsobem. Důležité je dodržet pevně dané zásady pro tvorbu publikovatelných modelů: 1. Model musí obsahovat podporované datové typy vstupních a výstupních dat. 2. Nastavit vstupům a výstupům označení parametr. 3. Ukládání výstupních a mezivýstupních data do Scratch workspace. Toho docílíme zápisem uložení ve formátu \%scratchworkspace%\nazev.shp. 4. Pro zobrazení v klientské aplikaci je nutné nastavit symbologie vstupních a výstupních dat. Výstupním datům je nutné nastavit vhodné symbologie pro vizualizaci výsledků. Symbologie se nastavuje v kontextovém menu daných výstupních dat pod položkou Nastavení (Properties). Symbologii je možné importovat z už existující vrstvy. Pak je ale nutná publikace i této vrstvy. Při zadávání vstupních dat je také zapotřebí definovat symbologii pro zobrazování. 5. Povolit ukládání relativních cest modelu, toho docílíme zaškrtnutím možnosti Store relative path names pod položkou Properties příslušného modelu. Je doporučeno vytvořit ke každému funkčnímu modelu stručnou nápovědu, pomocí niž dochází k usnadnění práce s daným nástrojem. Především při sdíleném použití
4.2
Tvorba geoprocessingové služby v ArcGIS for Desktop
31
je nápověda nenahraditelným pomocníkem. Podrobnější nápovědu lze zadat v kontextovém menu příslušného modelu pod položkou Item Description. Další možností je vytvořit zjednodušený popis v položce nastavení, Properties.
Obr. 8: Model funkce Clip: Zobrazuje princip funkce Clip: Vstupní data (input) jsou za pomoci vrstvy obce ořezána a výsledkem jsou výstupní vrstvy (output). Označení písmeny P naznačuje, že se jedná o parametry daného modelu, které bude muset uživatel zadat.
Na obrázku 8 je zobrazen model připravený k publikaci. Model vytváří funkci Clip nástroje tzn. výběru dat dle námi zvolené oblasti. Důležitou podmínkou je, aby byly obsaženy podporované typy vstupních a výstupních dat. Po spuštění modelu se uživateli zobrazí dialogové okno. V něm je vyzván k výběru dat pro ořezaní dle uvedené vrstvy. Data je možné vložit interaktivně pomocí myši nebo načtením z vrstvy. Model dále umožňuje uživateli nastavit umístění pro uložení výstupních dat. Další možností, jak pracovat s modelem, je využít dávkového zpracování v nabídce příslušného modelu po položku Batch. Jak je možné vidět na obrázku 9. Toto řešení se však pro větší množství dat zdá značně nepřehledné.
Obr. 9: Dávkové zpracování pomocí funkce Batch: Za pomocí dávky (Batch) lze přidat jednotlivé vrtvy ke zpracování. Názorně jsou ukázány vrstvy lesy1 a Mosty.
4.3
Python (ArcPy)
4.3
32
Python (ArcPy)
Pro komplexní řešení problematiky bylo proto zvoleno vytvoření skriptu s využitím prostředí ArcPy s jehož pomoci lze využít nástroj Clip pro hromadné a automatizované zpracování. ArcPy je skriptovací jazyk sloužící pro tvorbu skriptů v prostředí ArcGIS. Je nainstalován jako součást ArcGIS Desktop. Umožňuje přistupovat ke geoprocessingovým nástrojům. Jedná se o interpretovaný jazyk, který se lze rychle naučit. 4.3.1
Vývojové prostředí
Pro psaní skriptů lze využít okno Python, které lze nalézt pod položkou (Geoprocesing/Python). Toto rozhraní je vhodné pro jednoduché skriptování jako např. spuštění jediné funkce. Mezi výhody patří možnost snadného drag and drop“ přetažení vrstvy do okna ” Python. Další výhodou je i nápověda v pravém okně a našeptávání kódu. Názorná ukázka prostředí je na obrázku 10, který znázorňuje spuštění právě zmíněného nástroje Clip.
Obr. 10: Okna Python: Zde je vidět zavolání skriptu využívající funkce Clip. Ořezána je vrstva železnic pomocí vrstvy obce a výsledek je uložen do nové vrstvy clip_zeleznice.
Pro psaní složitějších skriptů je vhodnější využít vývojového prostředí (IDE). Součástí ArcGIS je vývojové prostředí IDLE. Toto prostředí bylo pro autora práce značně nepřehledné. Pro vytvoření samotného skriptu je z toho důvodu zvolen prostředí program PyScripter. Napsaný skript lze přidat do námi vytvořeného ToolBoxu přes nabídku Properties/Source a vybrat námi vytvořený skript (ukázka v příloze B). Pro použití v rámci ArcGIS je dále vhodné nastavit příslušné parametry, se kterými budeme pracovat. Nastavení lze nalézt v nabídce (Parameters). Zde je možné nastavit typ dat (Workspace, Feature Layer, Field,…), typ povinnosti (Optional/Required), směr (Input/Output), výchozí hodnotu (Default), filtry (polygon, linie, seznam hodnot), či získání z (nastavuje se u polí), nastavení symbologie (pro výstupy). Lze nastavit i podmínky pro vstupní parametry.
4.3
33
Python (ArcPy)
Pro samotné zobrazení rozhraní vytvořeného skriptu v rámci ArcGIS je potřeba provést nastavení přes ToolValidator. S pomocí ToolValidator lze nastavit podmínky pro jednotlivé parametry. V této práci je přes ToolValidator nastaveno automatické vyplnění Výběru obce (viz příloha A). 4.3.2
Popis funkcionality skriptu
Pro realizaci skriptu je využita funkce SplitMultiInputs() pro rozdělení“ vstupních ” dat, jenž ošetřuje i špatně zadané vstupní atributy. Na ukázce 1 je naznačeno využití funkce ve skriptu. Ukázka 1: Funkce MultiSplit def SplitMultiInputs ( multiVstupy ): try: return multiVstupy .split(";") except : arcpy . AddWarning (" Spatne oddelene pomoci SPLIT ") raise Exception , msgErrorSplittingInput
Dle uživatelem definovaných pravidel je pak vytvořena vrstva pro samotné ořezání viz ukázka 2. Ukázka 2: Vytvoření nové vrstvy dle uživatelem definovaných pravidel arcpy. MakeFeatureLayer_management (clip ," clip_lyr ","\""+ pole+"\"= '"+ obec+"'")
Nad zvolenými kritérii je na závěr proveden ořez pomocí Clip nástroje. Syntaxe nástroje Clip je definována: Ukázka 3: Syntax Clip Clip_analysis ( in_features , clip_features , out_feature_class , { cluster_tolerance })
Nástroj Clip má celkem 4 parametry, kde parametry in_features a clip_features, out_feature_class jsou povinné, parametr cluster_tolerance je nepovinný. V následující tabulce 3 je obecně popsáno fungování daného nástroje. Tab. 3: Popis syntaxe nástroje Clip.
Parametr vstupní funkční vrstva clipovací funkční vrstva výstupní funkční třída tolerance clustoru
Datový typ Feature layer Feature layer Feature class Linear unit
Vysvětlení vstupní vrstva na níž bude provedeno oříznutí vrstva sloužící k oříznutí vstupní vrstvy vrstva pro výstupní data nastavení hodnoty přesnosti souřadnic
4.3
Python (ArcPy)
34
V příloze B se nachází úplná verze skriptu. Podrobněji se zde tedy tímto skriptem nebudeme zabývat. Dialogové okno znázorňující funkcionalitu hromadného ořezání je poté umístěno v příloze C. Na následujícím obrázku 11 jsou znázorněna data v původní podobě a po provedení funkce Clip.
Obr. 11: Vytvořená data: Na uvedeném obrázku jsou nejprve zobrazena původní data a následně z nich vytvořená data po provedení funkce Clip.
5
WEBOVÁ SLUŽBA
5
35
Webová služba
Před samotnou volbou řešení služby CLIP je provedeno testování a specifikování si jednotlivých WPS služeb a jejich funkcionality. Pro testování WPS služeb je zvolena: • instalace Apache, Tomcate • instalace jednotlivých WPS služeb • instalace Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-36-virtual x86_64) U každé ze služeb je vždy potřeba nastavit potřebný port, na němž bude zvolená služba fungovat (nutno řešit jen v případě provozu více WPS služeb na jednou). U některých ze jmenovaných služeb je i webové rozhraní umožňující základní nastavení WPS služby. V prostředí WPS služeb je Clip funkcionalita řešena pomocí výběru dat z mapy, jenž je načtena přes WMS dotaz. Výběr dat pro clipování obvykle probíhá interaktivně pomocí výběru dat myší. V této práci je však vybrán jiný způsob a to ořezání souboru SHP v prostředí webu. ShapeFile, jak je zmíněno v sekci pojednávající o datových formátech, je závislý na více souborech s ním spojených a je především v binární podobě. Je proto vhodné před samotným načtením souborů jednotlivé soubory zazipovat, po samotném načtení soubory rozbalit a pak s nimi teprve pracovat. Tímto lze předejít chybovosti při načítání dat.
5.1
Testování
Do testování je zahrnuto hned několik WPS služeb. Prvním krokem byla snaha nalézt již existující řešení a pokusit se toto řešení libovolným způsobem vylepšit. Většina WPS služeb je vesměs orientovaná na programovací jazyk Java. Výjimkou je služba PyWPS a právě tento framework bude v této práci použit. 5.1.1
PyWPS
PyWPS je WPS framework, který implementuje WPS 1.0.0 a využívá jazyka Python. Struktura frameworku je organizována na balíčky a třídy, což přínáší jednoduchou orientaci. Výhodou PyWPS je, že může běžet v bashi nebo jako CGI proces. Hlavní testovanou WPS službou se stala služba PyWPS. Proto o ní bude dále pojednáno podrobněji. Ke zprovoznění služby je potřeba mít nějaké zkušenosti s příkazy v systému GNU/Linux. Služba dokonce vyžaduje zásah do systému. Níže je popsáno nastavení služby:
5.1
36
Testování
5.1.2
Popis základního nastavení PyWPS
1. Základní instalační balíček je dostupný na stránkách projektu PyWPS: http://pywps.wald.intevation.org/download/index.html 2. Pro instalaci je potřeba daný balíček rozbalit a zkompilovat. 3. Pro samotnou instalaci je vyžadováno doinstalování několika balíčků (v případě instalace na Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-36-virtual x86_64): python2.6, python-htmltmpl, python-xml, libapache2-mod-python, python-magic, python-setuptools 4. V dalším kroku je nutné nastavit webový server Apache (viz ukázka 4). Ukázka 4: Nastavení prostředí webového serveru Apache ScriptAlias /cgi -bin/ /usr/lib/cgi -bin/
#Next two lines added SetEnv PYWPS_CFG /etc/pywps .cfg SetEnv PYWPS_PROCESSES /home/ pavel /wps/ processes PythonPath "['/ home/ pavel/ python /', '/home/ pavel /wps/processes '] + sys.path" AllowOverride None # Options + ExecCGI -MultiViews + SymLinksIfOwnerMatch # changed from above for pywps Options + ExecCGI -MultiViews + FollowSymLinks Order allow ,deny Allow from all Directory > # Alias and dir below added for pywps Alias / wps_outputs / "/www/ wps_outputs " Options Indexes MultiViews FollowSymLinks AllowOverride None Directory >
5. V dalším kroku je nutné provést souhrnné nastavení WPS služby, které je uloženo v souboru pywps.cfg (zde je uloženo souhrnné nastavení celé WPS služby). Ukázka 5: nastaveni PyWPS služby [ server ] # nastaveni samotneho WPS serveru maxoperations =10 # pocet operaci maxinputparamlength =1024 maxfilesize =10 mb # maximalni velikost souboru tempPath =/ home/pavel/wps/temp # docasne ulozeni souboru processesPath =/ home/pavel/wps/ processes # slozka s procesy outputUrl =http :// localhost /wps/ wpsoutputs # vystupni adresa outputPath =/ var/www/wps/ wpsoutputs # vystupni slozka logFile =/ home/pavel/wps/log/pywps.log # slozka pro log logLevel = INFO
5.1
37
Testování
6. Implementace samotného procesu a) vytvoření inicializačního skriptu: _init_.py b) samotná implementace procesu v jazyce Python. Nevýhodou PyWPS oproti konkurenci je, že v základu neobsahuje žádné balíky ukázkových procesů. Nicméně existuje poměrně propracovaná webová podpora pomocí níž lze proces snadno vytvořit. Výhodou služby je, že veškeré nastavení se provádí pomocí jazyka Python, který má přehlednou a pochopitelnou strukturu. Řešení, které je v práci zvoleno, není zcela standardní. Jde mírně proti směru vývoje WPS služeb. Ty totiž předpokládají podporu práce s XML soubory, které se obvykle u webových služeb používají. V této práci byl ale pro testování zvolen SHP soubor. Prvním důvodem je, že se jedná o nejrozšířenější souborový formát u desktopového GIS. Druhým důvodem je, že při řešení šlo především o porovnání schopnosti zpracování a SHP soubor je pro toto dobrým měřítkem. Nevýhodou je, že kvůli použití SHP souboru se řešení aplikace mírně zkomplikovalo. 5.1.3
Implementace skriptu
Struktura skriptu je rozdělena do dvou základních částí: 1. _init_: zde dochází k inicializaci procesu a nadefinování vstupu, výstupu a ostatních věcí nutných pro samotný běh procesu. 2. execute() : zavolá se pro vyvolání požadavku na proces Skript řeší načtení zip archivu obsahující soubory SHP pro ořezání a zip archiv s ořezávacím souborem SHP. Nasledně jsou ze zip archivu vybrány jen SHP soubory (viz Ukázka 6). Ukázka 6: Načtení zip archivu # check unzip os. popen ("unzip '*. zip '") out = os. popen("ls *. shp"). readlines () for i in range (0, len(out)): out[i]= out[i]. rstrip () logging .info(out)
Pro řešení je použita knihovna ogr2ogr implementující daný nástroj. Na následující ukázce 7 je znázorněno řešení za pomocí funkcionality ogr2ogr –clipsrc. Řešení celého skriptu se nachází v příloze D. Ukázka 7: Použití ogr2ogr – clipscr logging .info("-- begin clip") for item in out: cl = os. popen(""" ogr2ogr -f "ESRI Shapefile " -clipsrc %s.shp % s_%s.shp %s.shp """ %( nameCl ,item [: -4] , nameCl ,item [: -4])) logging .info("-- finish clip")
5.2
Alternativní řešení
5.2
38
Alternativní řešení
Podobné funkcionality dokáží docílit například WPS služby GeoServer WPS a 52°North WPS. 5.2.1
GeoServer WPS
Další testovanou WPS službou je GeoServer WPS. Tato služba poskytuje komplexní WPS řešení a je zároveň i mapovým serverem. Samotný programátor tak nemusí řešit propojování služeb navzájem, protože vše potřebné se nachází pod jedním rozhraním. Proces Clip je součást balíku týkajícího se geometrie (gs:Clip). Umožňuje tak základní ořezání vybraných dat dle zvoleného polygonového výběru, který je vybírán z načteného mapového podkladu. Jednou z možností je i ořezání zip archivu pomocí GML. Na následující obrázku 12 je možné vidět názornou ukázku.
Obr. 12: GeoServer Clip: Následující obrázek znázorňuje spuštění procesu Clip nad vybranými daty gml.zip za pomoci vrstvy obce.gml, výsledek je zpracován do zip archivu.
5.2.2
52°North WPS
Další v pořadí je služba 52°North Web Processing Service. Jedná se o další WPS řešení poskytující propojení WPS služby s dalšími službami od stejného tvůrce. Umožňuje nasazení geografických procesů na webu standardizovaným způsobem. Implementace je založena na současných OpenGIS specifikacích. Pro implementaci je užito programovacího jazyka Java. Výhodou je rozsáhlá databáze zásuvných knihoven (JTS 5 , GeoTools6 , …). 5
JTS je aplikační programové rozhraní prostorových predikátů, funkcí pro zpracování geometrie. GeoTools je open source knihovna implementovaná v jazyce Java, která poskytující metody pro manipulaci geoprostorovými daty. Knihovna GeoTools implementuje OGC specifikaci. 6
6
DISKUZE A EKONOMICKÉ ZHODNOCENÍ
6
39
Diskuze a ekonomické zhodnocení
6.1
Pohled uživatele
Při zpracování dat, jenž je řešeno v této práci, je vhodné si na začátek ujasnit smysl řešení. Uživatel má před sebou určité množství dat, které potřebuje zpracovat. Otázkou tedy je, jak zpracování provést co nejlépe. 6.1.1
Desktopové řešení
Uživatel má v případě použití desktop řešení do jisté míry usnadněnou práci. Pro spuštění samotného skriptu si musí v prostředí ArcGIS pouze otevřít zvolený skript, jenž se nachází ve vytvořeném toolboxu. Uživatel si poté v dialogovém okně vybere jednotlivé vrstvy pro ořezání, ořezovou vrstvu a případně, kam chce výstupy uložit. Toto je ukázáno v příloze C. Po potvrzení dialogu dojde ihned k provedení procesu. Pro uživatele je to příjemná práce, kdy stačí pouze intuitivně naklikat“ jednotlivé ” vrstvy. Výhodou tohoto řešení tedy je, že uživatel má plnou kontrolu nad prováděným procesem. Řešení má ovšem i jisté nevýhody. Jednou z nich je, že uživatel musí mít data fyzicky uložená na své pracovní stanici či jiném pevném úložišti (např. USB disku). Pro práci se skriptem je nutné mít spuštěnou aplikaci ArcGIS, která tak může omezovat výkon pracovní stanice. Pokud má stanice nízký výkon je dokonce možné, že aplikaci nepůjde vůbec spustit. Značnou nevýhodou je, že příslušný skript funguje pouze v prostředí ArcGIS. Tím pádem by při použití jiného desktop GIS nástroje bylo nutné vytvořit nový skript šitý na míru příslušnému nástroji. Během testování nebylo nalezeno univerzální řešení, které by se dalo použít pro více desktop GIS nástrojů. Pro vytvoření univerzálního řešení, se proto nabízí využít WPS službu. 6.1.2
Webová služba
Webové (cloud) řešení v poslední době obecně vzniká na základě potřeby sdílení dat mezi větším počtem lidí a možnosti provést daný proces kdekoli. Nejen tedy na zvoleném počítači, kde je nainstalován desktop GIS nástroj. Díky cloud řešení je možné pracovat s daty jen za pomoci lehkého klienta tzn. pro práci nám stačí pouze webový prohlížeč. Pro srovnání je zvolena webová služba PyWPS. Při obsluze srovnávané služby PyWPS je možné zvolený proces spustit buď jako CGI-skript za pomocí webového prohlížeče nebo službu naimportovat do zvoleného desktop GIS programu. V prvním případě je uživateli navrácen XML soubor s odkazem na zip soubor ke stažení. (viz ukázka 9). Tento způsob řešení se během testování osvědčil jako spolehlivější. Uživatel buď nahraje data přes SSH7 na webový server a v CGI skriptu je zavolá nebo data nahraje na libovolný úložný cloud prostor, jenž je veřejně dostupný (např. 7
Secure Shell se používá pro ozn. zabezpečeného komunikačního protokolu v počítačových sítích.
6.1
Pohled uživatele
40
leteckaposta.cz) a odkaz zahrne jako součást CGI8 skriptu. Při řešení je použito nahraní dat přes SSH přístup na zvolený webový server. Výsledek po vykonání procesu je zobrazen na obrázku 13. Ukázka 8: Spuštění CGI skriptu za pomocí komunikace přes protokol REST s využitím metody GET. http :// localhost /cgi -bin/pywps .cgi? service =wps& version =1.0.0& request = execute & identifier = ogrclip & datainputs = zipSr =http :// localhost /wps/ zipSr .zip; zipClip =http :// localhost /wps/ zipCl .zip& storeExecuteResponse =true\ ResponseDocument = zipOut = @asreference =true & storeresponcedocument =true& status =false
Ukázka 9: Výsledek dotazu CGI skriptu PyWPS: Znázorňuje zavolání skriptu s názvem ogrclip z webového prostředí s použitím protokolu REST za využití metody GET. Výsledkem jak se vidět je XML soubor, který v svém tělo obsahuje odkaz na soubor zip ke stažení. <wps:ExecuteResponse xmlns:wps =" http: // www. opengis .net/wps /1.0.0 " xmlns:ows =" http: // www. opengis .net/ows /1.1" xmlns:xlink =" http: // www. w3.org /1999/ xlink" xmlns:xsi ="http: // www.w3.org /2001/ XMLSchema instance " xsi:schemaLocation ="http: // www. opengis .net/wps /1.0.0 http: // schemas . opengis .net/wps /1.0.0/ wpsExecute_response .xsd" service ="WPS" version ="1.0.0 " xml:lang ="en -CA" serviceInstance =" http: // localhost /cgi -bin/pywps.cgi? service =WPS& request = GetCapabilities & version =1.0.0 " statusLocation =" http: // localhost /wps/ wpsoutputs /pywps.xml"> <wps:Process wps:processVersion ="0.1"> ogrclip ows:Identifier > Clip process using OGR ows:Title > Process demonstrating how to work with OGR clip inside PyWPS ows:Abstract > wps:Process > <wps:Status creationTime ="2013 -05 -03 T19:25:02Z "> <wps:ProcessSucceeded >PyWPS Process ogrclip successfully calculated wps:ProcessSucceeded > wps:Status > <wps:ProcessOutputs > <wps:Output > zipOut ows:Identifier > Output file ows:Title > <wps:Reference href="http: // localhost /wps/ wpsoutputs / zipOut .zip " mimeType =" application /zip" encoding ="UTF -8"/> wps:Output > wps:ProcessOutputs > wps:ExecuteResponse >
8
Common Gateway Interface je protokol zajišťující komunikaci mezi webovým serverem a programem generujícím dynamický obsah (např. WPS služba)
6.2
Srovnání z pohledu programátora
41
Obr. 13: Výsledná data vytvořená za pomocí skriptu ogrclip: Na obrázku jsou zobrazena ořezaná data podle polygonové vrstvy obce.
Druhou možností využití WPS služby je službu naimportovat do zvoleného desktop GIS programu, v práci je otestován Quantum GIS. Pro samotnou práci s WPS je nutné doinstalovat zásuvný modul WPS-Client. Za pomocí nainstalovaného WPS-Clienta je umožněna komunikace s jakoukoliv WPS službou. Zavolání samotné WPS služby probíhá za pomocí dialogového okna, kde se zadá adresa dané služby(URL) a její název. Ve WPS-Clientovi pak stačí vyplnit patřičné parametry. Je nutné zadat vstupní data. Problém jsou však právě zip soubory, které nejsou mezi podporovanými formáty. Bylo nutné tak přepsat skript pro zpracování GML souborů, které jsou ze strany QGIS podporovány. Zde nakonec docházelo k problémům při parsování výstupního dokumentu. Takže se dokončit proces také nepodařilo. Řešení pomocí webové služby je oproti desktop řešení univerzální řešení, jenž lze využít napříč všemi GIS nástroji. Současným problém je, že některé GIS nástroje standard WPS nepodporují. Důvodem je, že v současnosti není příliš často využíváno cloudové zpracování geodat. U většiny GIS nástrojů však již dochází k postupné integraci WPS a do budoucna lze očekávat výrazné rozšíření podpory tohoto standardu.
6.2
Srovnání z pohledu programátora
Při vývoji skriptu pod ArcGIS s použitím knihovny arcpy bylo nutné si tuto knihovnu nastudovat. ArcPy je oproti standardnímu jazyku Python v některých ohledech značné rozdílný. Právě funkce pro zpracování geodat jsou v ArcPy dost specifické a nelze je použít v jiných desktop GIS nástrojích. Při intenzivní snaze je možné
6.3
Srovnání z pohledu integrace do informačního systému
42
se ArcPy poměrně rychle naučit. Následně lze během relativně krátké doby napsat efektivně fungující skript. U řešení WPS služby bylo nejprve nutné zprovoznit službu na localhostu. Zde je potřeba počítat s určitou časovou náročností. Nicméně po nastartování PyWPS služby již není potřeba vykonávat další nastavení. Výhodou pro programátora je otevřené řešení. Lze tak využít jak funkce z nástroje GRASS GIS (pro který je tato služba uzpůsobena), tak i funkcionalitu knihovny GDAL/OGR9 . Tato knihovna je využita pro zavolání ořezové funkce Clip při řešení skriptu za pomocí služby PyWPS.
6.3
Srovnání z pohledu integrace do informačního systému
Řešení za pomoci CGI skriptu je lépe integrovatelné než řešení přes skript vytvořený pomocí ArcGIS. Je pravdou, že je možné upravit ArcGIS skript a zveřejnit jej přes ArcGIS Server. Pak je ale nutné provést potřebné nastavení na zmiňovaném ArcGIS Serveru. CGI skript je v tomto případě univerzálnějším řešením, které se dá integrovat do jakéhokoliv systému.
6.4
Zhodnocení řešení
Z pohledu náročnosti implementace bych obě realizace skriptu hodnotil jako přibližně stejně časově náročné. Toto hodnocení nebere v úvahu čas strávený nastavením PyWPS služby, který se liší dle konkrétní distribuce GNU/Linux – v závislosti na tom, jaké balíčky funkcionality je nutné doinstalovat. Oba skripty využívají pouze starší verzi jazyka Python 2.6. Na uvedených platformách zatím totiž nedošlo k podpoře vyšších verzí Pythonu. Dnes již je hojně v mnoha jiných oblastech využíván Python 3. Kdybych se měl rozhodovat jaké řešením zvolit, tak bych své rozhodnutí odvíjel od způsobu využití. Pokud bych řešení používal jen pro malé množství dat v malé firmě, tak bych určitě zvolil řešení pomocí ArcGIS skriptu. Především z důvodu rychlosti řešení si myslím, že toto řešení má v současné době stále svůj význam. Neměl jsem možnost provést testování na větším množství dat, tak nevím, jak by si ArcGIS poradil s větším objemem dat. Na druhou stranu je zde také vhodné poznamenat, že ArcGIS není příliš stabilní aplikací. Během práce se několikrát opakovalo bezdůvodné zaseknutí či neočekávané ukončení, což by mohlo mít za následek nespokojenost uživatele. Webové (cloud) řešení je podle mého názoru v současné době využitelné především pro řešení v rámci jednorázového zpracování. Myslím si, že není příliš vhodné pro zpracování většího množství dat najednou. Na druhou stranu je pravdou, že k samotnému výpočtu lze využít server, takže pracovní stanice klienta není nijak zatěžována, což může být v některých typech využití značná výhoda. 9
GDAL/OGR je opensource knihovna založená na jazyce C++ (ozn. také jako nástroj příkazové řádky), poskytující čtení, zápis a přístup k jednotlivým vektorovým formátům mezi něž patří již zmiňovaný ESRI Shapefiles
6.5
Ekonomické hodnocení
43
Velkým problémem se ukázala rychlost zpracování u cloud řešení. Při jednom SHP souboru nebyl zaznamenán téměř žádný rozdíl. Problém však nastal při hromadném zpracování, kdy rychlost zpracování byla poměrně výrazně rozdílná. Již při zpracování 5 SHP souborů (cca. 3,5 MB) byla doba zpracování asi desetinásobná. Navíc bylo během testování zjištěno, že je PyWPS služba omezena na velikost souboru pouze 5 MB. Při řešení jsem se pokoušel vytvořit jednoduché aplikace, které budou bez zbytečností. Soustředil jsem se především na jejich funkcionalitu. Při testování PyWPS jsem se často setkal se špatně zobrazeným výsledkem dotazu. V některých případech byl nutný i restart služby.
6.5
Ekonomické hodnocení
Při srovnání ekonomické náročnosti na zavedení řešení je vhodné vycházet z nutnosti potřebných (peněžních, ale i časových a lidských) zdrojů. U komerčního řešení SW je nutné započítat cenu licence. Cena se vždy bude odvíjet od počtu zakoupených licencí (např. ceník (Esri, 2013)). Webové (cloud) řešení vyžaduje webový server. Ten je možné si buď pronajmout nebo pořídit vlastní, přičemž náklady se odvíjí od zvolené varianty (pravidelné poplatky vs. jednorázová investice). V dnešní době se obvykle dává přednost první variantě, tedy pokud již firma nevlastní nějaký server, který může být využit také pro toto řešení. Co se týče softwaru je řešení zcela zdarma. Pro práci s aplikací postačuje tenký klient (terminál) s webovým prohlížečem. Při nákupu specializovaných desktop aplikací bude celková cena nejspíš vyšší než v případě webového řešení. Důvodem je, že celkové náklady závisí na počtu koncových uživatelů, kterých může být velmi mnoho a náklady na licence tak můžou být velmi vysoké. Při webovém řešení dochází ke snižování nákladů na údržbu aplikací a k centralizaci dat a jejich zpracování na jediný počítač (= server). Nebo případně na více serverů, což umožňuje využít vyšší výkon pro náročné úlohy. Je pravdou, že server se musí udržovat v dobrém stavu (SW i HW), což může být časově náročné. Při změně požadavků na funkčnost aplikace je možné, že bude potřeba celý server překonfigurovat nebo dokonce pořídit nový. Přesto má toto řešení značné výhody. Hlavní výhodou je, že pro přístup k aplikaci se využívá webový prohlížeč, který je zdarma a přítomný na prakticky každém PC (dnes i na mobilním telefonu). Důležitým hlediskem při hodnocení je také šíře a dostupnost uživatelské podpory k danému SW. U řešení založeného na architektuře ArcGIS je v ceně SW zahrnuta podpora od společnosti Esri. Tím je zajištěno, že v případě problému s tímto produktem bude tento problém nejspíš rychle vyřešen díky pomoci od Esri. Jinak je tomu v případě PyWPS služby, která je open source, takže od autorů programu není smluvně zajišťována podpora. Z tohoto důvodu je vhodné na vývoj takového řešení zaměstnat specialistu, který se bude vývojem a úpravou SW zabývat.
6.5
Ekonomické hodnocení
44
Tím pádem se zpočátku může zdát řešení založené na PyWPS levnější, ale najmutím dodatečného pracovníka se náklady na realizaci zcela jistě zvýší. Specifickým případem jsou komerční cloud řešení. Tento způsob řešení není sice zdarma, ale je zde však zajišťován potřebný support (podpora). Zde se platí hlavně za serverové licence. Ušetřit lze můžeme na tom, že nemusíme dělat servis každé desktop aplikace jako v případě desktop řešení.
7
7
ZÁVĚR
45
Závěr
Tato práce se zaměřuje na zhodnocení různých přístupů ke zpracování vektorových geografických dat v současných GIS nástrojích. Pro práci je využit produkt ArcGIS Desktop 10 od firmy Esri. Srovnávanou WPS službou je služba PyWPS. Jedním z dílčích cílů bylo vytvořit funkční skript pro desktop aplikaci, který provede vybranou geoprocessingovou funkci. Tento cíl se podařilo splnit. Výsledné řešení je tak dobrým podkladem pro srovnání s ekvivalentní webovou službou v oblasti GIS. Dílčím cílem bylo i vytvořit webovou službu poskytující stejnou funkci jako desktop řešení. Tento cíl byl také splněn. Službu se podařilo vytvořit ve formě cgi skriptu. Řešení poskytlo odpověď na otázku, zda je snaha o centralizované zpracování dat smysluplná – v dnešní době má webové řešení služeb zcela jistě své místo i v oblasti GIS. Jsem přesvědčen, že se cíle práce podařilo splnit a že mohou najít uplatnění jako základ pro další podrobné zkoumání této problematiky. Při práci jsem se pokusil věnovat pozornost i výhodám a nevýhodám použitých technologií. Je vhodné si uvědomit, že dnes se v rámci GIS potkávají dva různé pohledy na svět – jeden preferuje GIS nástroje a ten druhý webové služby. GIS používají formáty, které nejsou implicitně pro webové řešení určeny. Mezi ně patří např. Esri Shapefile. Esri Shapefile lze zpracovávat ve webovém prostředí, ale do budoucna zde vzniká otázka širšího využití. Zda je vhodné integrovat Esri Shapefile do webových služeb, které jsou postaveny na filozofii značkovacích jazyků. Pro webové řešení jsou vhodnější spíše značkovací jazyky formátu GML a KML, které mají výhodu v odvození od formátu XML a jsou tak lépe navrženy pro webové zpracování. Při řešení složitějších online GIS řešení (full-online GIS), pak je např. možné využívat vykreslování za pomocí jádra prohlížeče. Není tak pokaždé nutné hledat si vlastní cestu k řešení, ale lze užít již zaběhlých způsobů řešení. Vzniká tak prostor pro spolupráci mezi GIS a webovým prostředím. Do budoucna se předpokládá, že by bylo vhodné GIS sféru více převést ze sféry desktopu k webovému řešení. S tím je spojeno použití formátů, jenž lze snadno integrovat do webového prostředí.
8
8
LITERATURA
46
Literatura
ArcData, PRAHA. Seznamte se s ArcGIS. Praha, 2001. 37 s. ArcData, PRAHA. ArcGIS Desktop 10: Nástroje pro správu, editaci a analýzu prostorových dat.Praha, 2011. 6 s. Cajthaml, J. Využití webových mapových serverů. In: 16. kartografická konference: Mapa v informační společnosti, s. 34 (plný text ve sborníku na CD), Brno 2005, ISBN 80-7231-015-1. Dostupné z: . Čepický, J. PyWPS – Documentation [online]. 2009. [cit 2013-3-22]. Dostupné z: . Esri. Esri Shapefile Technical Description [online]. 1998. Soubor ve formátu PDF [cit 2013-2-20]. Dostupné z: . Esri. Esri Software License [online]. 2013. [cit 2013-3-31]. Dostupné z: . Esri. Esri Virtual Campus: Creating, Editing, and Managing Geodatabases for ArcGIS Desktop [online]. 2009 [cit. 2013-03-12]. Dostupné z: . Geoserver. WPS Operations [online]. 2013 [cit. 2013-03-12]. Dostupné z: . Graser, A. Geoserver vs. Mapserver. [online]. 2010. Dostupné z: . Help.ArcGis. Clip (Analysis). [online]. 2013. [cit. 2013-03-24]. Dostupné z: . Jíránek, J. Princip WMS. [online]. 2007. [cit 2013-2-24]. České vysoké učení technické v Praze, Fakulta stavební, Geodézie a kartografie. Dostupné z: . Komárková, J. Kvalita webových geografických informačních systémů. 1. vyd. Pardubice: Univerzita Pardubice, Fakulta ekonomicko-správní, 2008, 127 s. ISBN 97880-7395-056-9. Landa, M. Open Geospatial Consortium, OGC standardy [online]. 2011 [cit. 2013-01-23]. Přednáška pro předmět Normy v geoinformatice. Fakulta stavební ČVUT v Praze. Dostupné z: .
8
LITERATURA
47
Machalová, J. Prostorově orientované systémy pro podporu manažerského rozhodování. 1. vyd. Praha: C. H. Beck, 2007. 185 s. ISBN 80-7179-463-5. Mitchell, T. Web mapping illustrated. Beijing: O’Reilly. 2005. 349 s. ISBN 9780-596-00865-9. Novák, P. Mapové servery [online]. 2011. [cit 2013-2-22]. Univerzita J. E. Purkyně v Ústí nad Labem, Fakulta životního prostředí, Katedra informatiky a geoinformatiky. Dostupné z: . Ogc. OGC Standards and Supporting Documents [online]. [cit. 2013-2-24]. Dostupné z: . Pacina, J. Prostorové analýzy nad oblastí Šumavských jezer [online]. ZČU Plzeň. 2013. [cit. 2013-03-24]. Dostupné z: . Root. Mapove servery snadno a rychle [online]. 2005. [cit 2013-2-20]. Dostupné z: . Růžička, J. Platforma otevřený GeoWeb [online]. 2007. [cit. 2013-03-24]. Habilitační práce. Ostrava: VŠB-TU . Dostupné z: . Streetdirectory. Desktop applications vs. Web applications [online]. 2012. [cit. 2013-02-24]. Dostupné z: <www.streetdirectory.com/travel_guide/114448/programming/ desktop_applications_vs_web_applications.html>. Tuček, J. Geografické informační systémy: principy a praxe. Vyd. 1. Praha: Computer Press, 1998, xiv, 424 s. ISBN 80-7226-091-x. Vildomec, J. Komplexní přístup k webové prezentaci prostorově orientovaných dat. Diplomová práce. Brno: MZLU v Brně, 2008. Voženílek, V. Geografické informační systémy I: pojetí, historie, základní komponenty. 1. vyd. Olomouc: Vydavatelství Univerzity Palackého, 1998, 173 s. ISBN 80-7067-802-x. Wikipedia. Comparison of Vector Formats [online]. 2013. [cit. 2013-03-24]. Dostupné z: .
Přílohy
A
ToolValidator
Pomocí ToolValidátoru je vyřešeno předání obsahu z parametru na parametr. Díky tomu je možné v dialogovém okně si vybírat obec, pro kterou chceme provést ořezání. def updateParameters (self): if self. params [2]. value and self. params [3]. value : if self. params [2]. altered and self. params [3]. altered : fc , col = unicode (self. params [2]. value ), unicode (self. params [3]. value ) if self. fcfield != (fc , col): self. fcfield = (fc , col) self. params [4]. filter .list = [ unicode (val) for val in sorted ( set( row. getValue (col) for row in arcpy. SearchCursor (fc , None , None ,col) ) )
B
Skript ArcPy
# importace zakladních knihoven import arcpy , os , sys # nacteni pracovni oblasti from arcpy import env env. workspace = r'E:\ ModelBuilder \clip\ ToolData ' # povoleni prepisovani arcpy .env. overwriteOutput = True # Nacteni parametru """ 1: vstup -- workspace 2: vystup -- workspace 3: clip -- obce 4: pole -- vyber sloupce 5: vyber -- atribut ze sloupce (obec) 6: vstupni_data -- zeleznice , silnice , .... """ # Vstupni adresar vstup = arcpy . GetParameterAsText (0) if vstup == '#' or not vstup : # nespecifikováno vstup = arcpy .env. workspace # Vystupni adresar vystup = arcpy . GetParameterAsText (1) if vystup == '#' or not vystup : # nespecifikováno vystup = r'E:\ ModelBuilder \clip\ Scratch ' clip = arcpy . GetParameterAsText (2) if clip == '#' or not clip: clip = r'E:\ ModelBuilder \clip\obce.shp ' # nespecifikováno pole = arcpy . GetParameterAsText (3) vyber = arcpy . GetParameterAsText (4) vstupni_data
= arcpy. GetParameterAsText (5)
# Process : Split # Rozdeleni na jednotlive hodnoty atributove tabulky arcpy . AddMessage (" Spusteni SPLIT ") def SplitMultiInputs ( multiVstupy ): try: return multiVstupy .split(";") except : arcpy . AddWarning (" Spatne oddelene pomoci SPLIT ") raise Exception , msgErrorSplittingInput
vstupni_data = SplitMultiInputs ( vstupni_data ) obce = SplitMultiInputs (vyber) vystup_oblast = vystup arcpy . workspace = vystup_oblast arcpy . AddMessage ("SPLIT kompletni ") arcpy . AddMessage ("Start CLIP") for obec in obce : # vytvoreni vrstvy pro clipovani na zaklade podminky arcpy . MakeFeatureLayer_management (clip ," clip_lyr ","\""+ pole+"\"='"+ obec+"'") for sel_vstup in vstupni_data : # vytvoreni vystupni vrstvy desc = arcpy . Describe ( sel_vstup ) newname = desc.name [: -4] + "_" +obec + ".shp" vystupFile = arcpy. CreateUniqueName (newname , vystup_oblast ) # Process : Clip if arcpy . Clip_analysis (sel_vstup , " clip_lyr ",vystupFile ): arcpy . AddMessage ("\n *** Message : "+ vystupFile +" vznikl *** \n") arcpy . AddMessage ("\n *** Clip complete *** \n") else: arcpy . AddWarning ("\n *** Warning : Clip Failed *** \n")
C Dialogové okno desktop aplikace
Obr. 14: Dialogové okno desktop aplikace: V dialogovém okně je zobrazen výběr obcí Milotice, Vacenovice a pro tyto obce výřez vrstev lesy1, lesy2. Výsledek ořezání je uložen ve složce Scratch.
D
PyWPS proces ogrClip
""" GR Clip process Author : Pavel Netolicky (pavel. netolicky@gmail .com) """ from pywps . Process import WPSProcess from osgeo import ogr import os import subprocess import string import logging class Process ( WPSProcess ): def __init__ (self): # Process initialization WPSProcess . __init__ (self , identifier = " ogrclip ", title ="Clip process using OGR", version = "0.1", storeSupported = "true", statusSupported = "true", abstract =" Process demonstrating how to work with OGR clip inside PyWPS", grassLocation =False ) ## # Adding process inputs self. zipSr = self. addComplexInput ( identifier =" zipSr ", title="Input file with shapefile to clip", formats = [{'mimeType ':'application /zip ', 'encoding ': 'UTF -8 '},{" mimeType ":"text/xml"},{" mimeType " :" application /x-zipped -shp"," SCHEMA ":None , " GDALID ":" ESRI_Shapefile "},{'mimeType ':" APPLICATION /SHP", " SCHEMA ":None , " GDALID ":" ESRI_Shapefile "}]) self. zipClip = self. addComplexInput ( identifier =" zipClip ", title="Input file with clipping shapefile ", formats = [{'mimeType ':'application /zip ', 'encoding ': 'UTF -8 '},{" mimeType ":"text/xml"},{" mimeType " :" application /x-zipped -shp"," SCHEMA ":None , " GDALID ":" ESRI_Shapefile "},{'mimeType ':" APPLICATION /SHP", " SCHEMA ":None , " GDALID ":" ESRI_Shapefile "}])
## # Adding process outputs self. zipOut = self. addComplexOutput ( identifier =" zipOut ",title =" Output file",formats = [{ 'mimeType ':'application /zip ', ' encoding ': 'UTF -8'},{" mimeType ":"text/xml"},{" mimeType ":" application /x-zipped -shp"," SCHEMA ":"", " GDALID ":" ESRI_Shapefile "},{'mimeType ':" APPLICATION /SHP", " SCHEMA ": None , " GDALID ":" ESRI_Shapefile "}]) ## # Execution part of the process def execute (self): ## # unzip clip data output = os.popen("unzip -l %s" %( self. zipClip . getValue ())). readlines () logging .info(" Zipclip : %s"%( output )) output = output [3: -2] output = output [1]. rsplit () nameCl = output [len( output ) -1]. split (".")[0] logging .info("Jmeno clipu :%s" %( nameCl )) zSr = os. popen("cp %s %s.zip" %( self. zipSr . getValue () [2:] , self. zipSr . getValue () [2:])) zCl = os. popen("cp %s %s.zip" %( self. zipClip . getValue () [2:] , self. zipClip . getValue () [2:]) ) logging .info("Vypis zip :%s %s"%(zSr ,zCl)) ## # check unzip os. popen ("unzip '*. zip '") out = os. popen("ls *. shp"). readlines () for i in range (0, len(out)): out[i]= out[i]. rstrip () logging .info(out) logging .info("-- begin clip") for item in out: cl = os.popen (""" ogr2ogr -f "ESRI Shapefile " -clipsrc % s.shp %s_%s.shp %s.shp """ %( nameCl ,item [: -4] , nameCl , item [: -4])) logging .info(cl) logging .info("-- finish clip") pokus = os.popen(""" zip clip.zip *_%s.* """ %( nameCl )) logging .info(pokus) zOut = self. zipOut . setValue ( "./ clip.zip") logging .info(zOut) logging .info("-- finish process ") return