Písemná práce praktické maturitní zkoušky z odborných předmětů. školní rok 2007-2008. Vektorizace rastrových map



Podobné dokumenty
Matematika v programovacích

Mapová aplikace HZS Ústeckého kraje

Pro správné zobrazení mapové aplikace je potřeba mít nainstalovaný zásuvný modul Flash Adobe Player.

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul PODKLADOVÉ MAPY

SignEditor 1 - návod k použití

Obslužný software. PAP ISO 9001

Část 1 - Začínáme. Instalace

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

Programátorská dokumentace

Odpadové hospodářství v ORP Ústí nad Labem

E-learningovýsystém Moodle

Územní plán Ústí nad Labem

INFORMATIKA. Grafické studio ve škole

Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

Coordinate System Editor Software

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul SITUACE

Příručka pro aplikaci KSnapshot

Manuál k programu IDP 1.0

MATLAB: Automatická instalace a aktivace licence TAH

GEOM LITE - MANUÁL hlavní obrazovka

Angličtina program k procvičování slovní zásoby

AC FORM FILLER. aplikace pro podání žádosti o poskytnutí finančního příspěvku. Verze z 13

Nápověda k používání mapové aplikace Katastrální mapy Obsah

INFORMAČNÍ SYSTÉMY PRO KRIZOVÉ ŘÍZENÍ GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY A JEJICH VYUŽITÍ V KRIZOVÉM ŘÍZENÍ ING. JIŘÍ BARTA, RNDR. ING.

Úvod do Linuxu SŠSI Tábor 1

ELEKTRONICKÉ PODÁNÍ OBČANA

EvMO postup při instalaci

Redakční systém Joomla. Prokop Zelený

Povodňové značky Povodí Vltavy s.p.

Cvičení č. 1 Začátek práce s GIS

ELEKTRONICKÝ DIGITÁLNÍ

Nápověda k aplikaci EA Script Engine

Demoprojekt Damocles 2404

Postupy práce se šablonami IS MPP

SCIA.ESA PT. Export a import souborů DWG a DXF

1. Obsah 2. Úvod Zdarma poštovní klient od společnosti Microsoft přímo v PC

Popis ovládání aplikace - Mapový klient KÚPK

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

GEPRO řešení pro GNSS Leica

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze

47 Mapování přístupnosti

PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ verze Kontakty 08/ Obsah

Popis a ovládání. Aplikace 602XML Filler

Uživatelská příručka.!instalace!průvodce.!dialogová okna!program zevnitř

Úvod do programovacího jazyka Python

4x standardní vstupy

Postup instalace umožňující el. podpis v IS KP14+ pro webové prohlížeče Google Chrome a Firefox.

Předpoklady správného fungování formulářů

Zelená bariéra. Software Zelená bariéra je výstupem projektu TA ČR TD Optimalizace výsadeb dřevin pohlcujících prachové částice.

Návod k práci s programem MMPI-2

František Hudek. červen ročník

MATLAB: Automatická instalace a aktivace Campus-Wide licence (TAH Total Academic Headcount)

Podpora skriptování v Audacity

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 2

INSTALACE SOFTWARE A AKTIVACE PRODUKTU NÁVOD

Uživatelská příručka pro respondenty

A4300BDL. Ref: JC

CUZAK. Uživatelská příručka. Verze

modrana: flexibilní navigační systém Martin Kolman

Archive Player Divar Series. Návod k obsluze

Pokyny pro žáky k testování písemné zkoušky na počítači

Instalace a první spuštění Programu Job Abacus Pro

Příručka pro studenta

Instalace programu ProGEO

Projekt. Sestavení projektu

Možnosti tisku v MarushkaDesignu

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Vystavení osobního komerčního certifikátu PostSignum v operačním systému MAC OSx

EvMO postup při instalaci

Dotykova obrazovka v programu TRIFID

Návod na miniaplikaci meteostanice WANET pro Windows Vista/7/8

Návod na použití mapového portálu MAP SQUARE

Úvod. Program ZK KASA EET. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

Střední škola stavebních řemesel Brno Bosonohy Pražská 38b, Brno Bosonohy

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel I Anotace:

INSTALAČNÍ MANUÁL. TME gadget

Vektorové dlaždice. a jejich využití pro vizualizaci dat katastru nemovitostí. Filip Zavadil, Cleerio s.r.o

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul TERÉN

Uživatelská dokumentace

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Uživatelský manuál. Format Convert V3.1

František Hudek. duben ročník

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

Univerzální prohlížeč naměřených hodnot

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ]

Archiv elektronických dokumentů Zela

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop

První rande s Kristýnou

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

Prostředí Microstationu a jeho nastavení. Nastavení výkresu

MS Excel Lekce 1. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

VY_32_INOVACE_INF.08. Microsoft Windows II.

Dotyková obrázovká v prográmu TRIFID

Novinky v grafickém prostředí Marushka v ISÚI (leden 2019)

Transkript:

STŘEDNÍ PRŮMYSLOVÁ ŠKOLA A VYŠŠÍ ODBORNÁ ŠKOLA, PÍSEK, KARLA ČAPKA 402 Písemná práce praktické maturitní zkoušky z odborných předmětů školní rok 2007-2008 Kmenový obor: 2643M Elektronika Studijní obor: 26 43-M/004 S rozšířenou přípravou na vysokou školu Téma číslo: Vektorizace rastrových map Autor: Třída: Zadavatel: Jan Danihelka A4.S RNDr. Miroslav Procházka Datum odevzdání práce: 31.3.2008 Převzal:

Anotace Zadání práce Neskenovaný mapový podklad bude v prvním kroku optimalizován. Takto upravený zdroj bude geokódován do souřadného systému WGS-84. Ve výsledném výstupu budou body (křižovatky, budovy, výškové body), linie (silnice, řeky, vrstevnice), plochy (města, porosty) ne nutně všechny vyjmenované. Výstupní formát by měl být volen s ohledem na stávající standardy. 2

Obsah Úvod... 4 O projektu... 4 Popis jazyka Python... 5 Obecně o Pythonu... 5 Vlastnosti... 5 Výkon... 6 Souřadnicový systém WGS-84... 7 Stručný popis systému... 7 Popis vlastní Vektorizace... 8 Vlastní řešení vektorizace... 8 Popis programu... 9 Instrukce pro spuštění... 9 Postup práce v programu... 10 Popis pracovní plochy... 11 Ovládání... 12 Popis práce v programu... 12 Funkce barevného prahu... 13 Práce s vlastním podkladem... 13 Ukládání do SVG... 14 Závěr... 15 Přínosy, výhody, použití... 15 Reference... 16 Přílohy... 16 3

Úvod O projektu Snažil jsem se, aby program byl co nejednoduší a práce v něm rychlá a přehledná. Nesčetněkrát jsem musel předělal rozestavení a množství funkcí na pracovní ploše, než projekt dospěl do finální verze. Dále jsem myslel na kompatibilitu a možností využití programu do budoucna. Využívám proto otevřené a standardizované formáty. Po celou dobu jsem pracoval v prostředí OS Linux. Pod OS Windows byl program pouze na závěr vyzkoušen. Celý projekt jsem napsal v jazyce Python, s využitím knihovny PIL (Python Imaging Library), která mi slouží pouze k načítání obrázků. Důvodů, proč jsem si zvolil zrovna tento programovací jazyk je několik: 1. Multiplatformní 2. Dobrý výkon 3. Rychlá tvorba, čitelný kód (Více o jazyce Python v následující kapitole) Výsledný výstupní soubor je ve formátu SVG (Scalable Vector Graphics). SVG je značkovací jazyk a formát souboru, který popisuje dvojrozměrnou vektorovou grafiku pomocí XML. Jedná se o nejlepší a do budoucna nejpoužívanější formát zápisu vektorové grafiky. Nakonec bych rád zmínil, že celý projekt vydávám pod licencí GNU GPL. GNU General Public License Software šířený pod licencí GPL je možno volně používat, modifikovat i šířit, ale za předpokladu, že tento software bude šířen bezplatně (případně za distribuční náklady) s možností získat bezplatně zdrojové kódy. Toto opatření se týká nejen samotného softwaru, ale i softwaru, který je od něj odvozen. Na produkty šířené pod GPL se nevztahuje žádná záruka. 4

Popis jazyka Python Obecně o Pythonu Python je interpretovaný objektově orientovaný programovací jazyk, který v roce 1990 navrhl Guido van Rossum. Python je vyvíjen jako open source projekt, který zdarma nabízí instalační balíky pro většinu běžných platforem (Unix, Windows, Mac OS). Ve většině distribucí systému Linux je Python součástí základní instalace. Vlastnosti Python je dynamický interpretovaný jazyk. Někdy bývá zařazován mezi takzvané skriptovací jazyky. Jeho možnosti jsou ale větší. Python byl navržen tak, aby umožňoval tvorbu rozsáhlých, plnohodnotných aplikací. Python je hybridní jazyk, to znamená, že umožňuje při psaní programů používat nejen objektově orientované paradigma, ale i procedurální a v omezené míře i funkcionální, podle toho komu co vyhovuje nebo se pro danou úlohu hodí nejlépe. Python má díky tomu vynikající vyjadřovací schopnosti. Kód programu je ve srovnání s jinými jazyky krátký a dobře čitelný. Význačnou vlastností jazyka Python je produktivnost z hlediska rychlosti psaní programů. Týká se to jak nejjednodušších programů, tak aplikací velmi rozsáhlých. U jednoduchých programů se tato vlastnost projevuje především stručností zápisu. U velkých aplikací je produktivnost podpořena rysy, které se používají při programování ve velkém, jako jsou například přirozená podpora prostorů jmen, používání výjimek, standardně dodávané prostředky pro psaní testů a dalšími. S vysokou produktivností souvisí dostupnost a snadná použitelnost široké škály knihovních modulů, umožňujících snadné řešení úloh z řady oblastí. Python se snadno vkládá do jiných aplikací, kde pak slouží jako jejich skriptovací jazyk. Tím lze aplikacím psaným v kompilovaných programovacích jazycích dodávat chybějící pružnost. Jiné aplikace nebo aplikační knihovny mohou naopak 5

implementovat rozhraní, které umožní jejich použití v roli pythonovského modulu. Jinými slovy, pythonovský program je může využívat jako modul dostupný přímo z jazyka Python. Programování v Pythonu klade velký důraz na produktivitu práce programátora. Myšlenky návrhu jazyka jsou shrnuty ve filosofii Pythonu. Výkon Výkon aplikací napsaných v Pythonu je dobrý, protože výkonově kritické knihovny jsou implementovány v jazyce C, s kterým Python výborně spolupracuje. I samotný jazyk je na tom v porovnání s jinými interpretovanými jazyky dobře. Je např. 3 až 5 krát rychlejší než PHP. 6

Souřadnicový systém WGS-84 Stručný popis systému WGS-84 (World Geodetic System 1984), je světově uznávaný geodetický standard vydaný ministerstvem obrany USA roku 1984, který definuje souřadnicový systém, referenční elipsoid a geoid pro geodézii a navigaci. Souřadnicový systém WGS 84 je pravotočivá kartézská soustava souřadnic se středem ve těžišti Země (včetně moří a atmosféry). Kladná osa x směřuje k průsečíku nultého poledníku a rovníku, kladná osa z k severnímu pólu a kladná osa y je na obě předchozí kolmá ve směru doleva (90 východní délky a 0 ší řky), tvoří tak pravotočivou soustavu souřadnic. Souřadnicový systém WGS-84 je využíván navigačním systémem GPS. 7

Popis vlastní Vektorizace Vlastní řešení vektorizace Vektorizace obrázku spočívá v nahrazování ploch stejné barvy polygony. Od uživatele mám zadaný obrazový podklad a vybraný bod z podkladu, který je součástí oblasti, z níž má být vytvořen polygon. Budu předpokládat, že mám nahradit polygonem oblast se stejnou barvou (Pro případ, kdy chce uživatel zahrnou do oblasti i podobné barvy, kapitola: Funkce barevného prahu ). Jako první krok se snažím najít důležitý krajní bod budoucího polygonu, v mém případě to bude levý libovolný horní roh. Procházím tedy na obrázku po pixelu sousední místa vybráného bodu směrem doleva a nahoru. Vyhovuje-li barva v sousedním pixelu mým požadavkům, přesunu se na místo sousedního bodu. Takto postupuji, dokud sousední pixely v požadovaném směru mají odlišnou barvu. Musím ještě otestovat, jestli nalezený levý horní roh není součástí budoucí přímky polygonu, tzn. zjistím zda-li v jeho blízkém okolí nejsou další levé horní rohy barevné oblasti. Je-li tomu tak, musím se přesouvat, dokud nenaleznu bod, který bude vyhovovat všem podmínkám. Tím zajistím, že nalezený bod je vrcholem budoucího polygonu. Poté se posouvám po obvodu barevné oblasti, pomocí pravidla levé ruky (=držím se levého okraje). Vždy si pamatuji směr, kterým se posunu z jednoho bodu na další. Změní-li se směr, bod si poznamenám, protože se jedná o budoucí vrchol polygonu. Takto projedu celý obvod barevné oblasti, dokud se nevrátím na počáteční levý horní bod. Všechny po cestě zaznamenané body mi představují vrcholy polygonu. Polygon je kompletní a vektorizace oblasti je tedy hotová. 8

Popis programu Instrukce pro spuštění Návod, jak zprovoznit program na OS Windows. Pro spuštění samotného programu je nutné mít na počítači nainstalovaný jazyk python, včetně všech potřebných knihoven. Všechny potřebné programy jsou obsaženy na přiloženém CD. Nejprve je potřeba z CD překopírovat archivovaný soubor obsahující všechna data na pevný disk a zde ho rozbalit. E:\vektorizace.zip C:\vektorizace.zip Po rozbalení se objeví adresář vektorizace. Instalace jazyka Python: Spusťte C:\vektorizace\python\python-2.5.2.msi Po spuštění instalátoru zvolte cestu, kam se má Python nainstalovat. Dále je nutné doinstalovat potřebné knihovny. V našem případě se jedná o knihovnu PIL. Spusťte C:\vektorizace\pil\PIL-1.1.6.win32-py2.5.exe Není-li už dáno, zvolte pro instalaci cestu do adresáře, kam se nainstaloval Python. Jestliže proběhli obě instalace bez chyb, můžete nyní spustit samotný program. (Po nainstalování Pythonu by se měli soubory s koncovkou py spouštět v Pythonu) Spusťte C:\vektorizace\program\main.py 9

Pro zobrazení výstupních souborů SVG je dobré si nainstalovat program Inkscape. Jedná se o výborný program určený k zobrazování a editaci SVG souborů. Pro instalaci spusťte C:\vektorizace\inkscape\Inkscape-0.45.1-1.win32.exe Postup práce v programu Po spuštění programu si uživatel otevře požadovaný obrázek. Zadá souřadnice, aby mohl být obrázek geokódován.vybere oblasti, které chce použít. Nakonec si nechá vybrané polygony zapsat do vygenerovat SVG souboru. Screenshot z programu 10

Popis pracovní plochy 1 Informace o pixelu 2 Seznam polygonů 3 Barevný práh 4a Možnost otevřít soubor 4b Možnost uložit polygony do SVG souboru 5 Místo pro zadání souřadnic 6 Progress Bar 7a Načtený obrázek 7b Vykreslené polygony 11

Ovládání Ovládání programu je pouze pomocí počítačové myši, klávesnice se využívá jen při zadávání hodnot do polí. Levé tlačítko myši: Podá bližší informace o pixelu Pravé tlačítko myši: Zvektorizuje vybraný objekt Popis práce v programu Po spuštění programu se automaticky otevře defaultní obrázek default.png. Tento obrázek je již geokódován a hodnoty jsou vyplněny. Pro pohyb na mapovém podkladu (7a), popřípadě v oblasti vykreslených polygonů (7b) slouží po stranách scrollbary, které se automaticky vytvoří, je-li obrázek příliš velký. Pří klikání levým tlačítkem na mapový podklad (7a) se nám zobrazují informace o pixelu (barva, souřadnice na obrázku, WGS souřadnice) v oblasti (1). Při kliknutí pravým tlačítkem na mapový podklad (7a) dáme povel pro vektorizaci barvy v dané oblasti. Během vektorizace se v progressbaru (6) vypisuje aktuální procentuelní stav práce, probíhající činnost a na závěr celková doba trvání v milisekundách. Proces vektorizace je natolik rychlí, že je těžké si všimnout jednotlivých fází práce. Progressbar slouží tedy spíše jako debugger v případě zaseknutí programu. Po dokončení vektorizace se vytvoří polygon, který se zobrazí v oblasti (7b). Dále se nám přidá objekt do seznamu polygonů (2) s tímto polygonem. V seznamu je možné objekt skrýt tlačítkem Show, nebo jej odstranit pomocí tlačítka Delete. 12

Funkce barevného prahu Vytvořený polygon je tvořen z množiny stejné barvy v dané oblasti. Pro práci s nekvalitním obrázkem, neskenovaným podkladem, nebo pro zahrnutí podobné barvy slouží barevný práh (3). Určuje nám až do jakého hodnoty barevné odlišnosti od vybraného pixelu má okolní pixely zahrnovat do objektu polygonu. Hodnota 0 úplně vypne kontrolování barevného rozdílu a do vytvářeného polygonu se zahrne pouze shodná barva v oblasti. Naopak při hodnotě 100 se bude polygon vytvářet i z barev velmi vysoké odlišnosti. Defaultní hodnota je 20, dobře vybírá sousední pixely na kvalitním podkladu a zároveň výsledný polygon není tak zubatý, díky několika přibraným sousedním pixelům. Práce s vlastním podkladem Pro otevření vlastního mapového podkladu využijeme možnost otevřít soubor (4a). Do kolonky se musí napsat k souboru, pro usnadnění doporučuji nakopírovat soubor s obrázkem do adresáře s programem. Soubor se otevře po kliknutí na tlačítko. (Pozn. autora: Omlouvám se, za komplikované otevírání souborů, ale v Pythonu není práce se soubory moc řešena. Naprogramovat prostředí pro procházení disků a výběry souborů by mohlo být námětem pro další maturitní práci. Proto pochopte, že zabývat se tímto problémem není v mých silách a přijměte proto toto provizorní řešení.) Při otevírání souboru je možné pozorovat výsledek v progressbaru (6). Po úspěšném načtení souboru je nutné obrázek geokódovat. Tím se rozumí určit na obrázku pro 2 významné body souřadnice, aby se pak mohl celý obrázek začlenit do souřadnicového systému. (Významným bodem se rozumí bod pro který známe hodnotu WGS. Na naskenované papírové mapě jsou tyto body průsečíky čar určující hodnotu WGS.) Pro zadání těchto dvou bodů slouží oblast (5). Do polí X a Y se zadá souřadnice významného bodu na obrázku. Tyto souřadnice lze získat při kliknutí levým tlačítkem na požadovaný pixel a hodnota je zobrazena v informacích o pixelu (1). Do zbývajících dvou polí se zadá hodnota WGS pro daný bod ve správném tvaru. 13

Ukládání do SVG Po vytvoření požadovaných polygonů je načase výsledek zapsat do výstupního souboru, oblast (4b). Výstupní soubor bude ve formátu SVG a zapíší se do něj všechny viditelné polygony. Dále se do hlavičky SVG souboru zapíší informace o WGS souřadnicích a měřítku. Informace v hlavičce souboru jsou určeny pro další programy, aby podle nich využily soubor a zařadily ho do většího celku. Uživatel si zvolí název souboru napsáním názvu do příslušného pole a potvrdí daným tlačítkem. Výsledek uložení se zobrazí v progressbaru (6). Vytvořený soubor SVG je možno si prohlédnout např. v programu Inkscape, který je přiložen na CD. Teprve během zobrazení v Inkscapu a při případném zazoomování bude patrná samotná vektorizace a smysl celé práce. 14

Závěr Přínosy, výhody, použití Teprve až během vývoje programu jsem přišel na celou řadu využití. Hlavní úkolem bylo převést naskenované papírové mapy do elektronické vektorové podoby, kde mají široké využití a lze z nich vytvořit velkou databázi. Dále je možné díky dílčím goekódováním spojit mapy různých měřítek do jedné společné mapy. Program se může také skvěle využít pro převádění různých uživatelských obrázků do vektorové podoby. Navíc formát SVG by se měl v budoucnu stát základním otevřeným formátem pro vektorovou grafiku na Internetu. Tudíž případné umístění zvektorizovaného obrázku na svých internetových stránkách není problém a žádný internetový prohlížeč s jeho zobrazením nemá problémy. Další využití programu lze najít ve využívání zobrazovaní přesné hodnoty WGS pro každý pixel na mapě. Například lidé zabívající se geocachingem často mají papírovou mapu a WGS souřadnice cache, ale z papírové mapy člověk není schopen určit přesnou pozici. Právě pro tyto lidi se otevírá nové využití mého projektu. Díky licenci GNU GPL je zde navíc možnost pro každého si program poupravit, nebo ho naimplementovat do vlastního projektu. 15

Python Reference http://www.python.org - Oficiální stránky projektu Python http://www.py.cz - PyCZ, komunitní český web PIL http://www.pythonware.com/products/pil/ - O knihovně PIL Inkscape http://www.inkscape.org - Oficiální stránky programu Inkscape Ostatní http://cs.wikipedia.org - Wikipedia CZ http://www.geocaching.cz - Geochaching CZ Přílohy CD - obsahuje samotný program a software potřebný pro jeho spuštění 16