Kartografické modelování II – Mapová algebra – obecné základy a lokální funkce jaro 2014 Petr Kubíček kubicek@geogr.muni.cz Laboratory on Geoinformatics and Cartography (LGC) Institute of Geography Masaryk University Czech Republic Kartografické modelování Historie – mapová algebra • Překryt, pravidelné dělení území • Dana Tomlin, Berry • Vrstva, výraz, funkce • Flowchart diagram Kartografické modelování Předpoklady – podmínky užití • Pravoúhlá soustava čtvercových buněk • Kategorie, bool, celá čísla, reálná, vektory • No data Kartografické modelování Změna velikosti buňky - resampling • Resamplování – harmonizace buněk (velikost,poloha) – Nejbližší soused (nearest 1) – ztráta, diskrétní – Převládající (majority 1) – zhlazení, diskrétní – Bilineární (4) – zhlazení, souvislá – Kubická konvoluce (16) – zhlazení, souvislá. Kartografické modelování Spojení gridů • Spojení gridů - merge, mosaic Kartografické modelování ASCII to Grid • NCOLS xxx • NROWS xxx • XLLCORNER xxx • YLLCORNER xxx • CELLSIZE xxx • NODATA_VALUE xxx • row 1 • row 2 • . • . • row n Kartografické modelování Konverze mezi vektorem a rastrem Vstup (vektor) výstup (rastr) Kartografické modelování Vstup (vektor) výstup (rastr) Kartografické modelování Bod Kartografické modelování Bod na hranici rastru či buňky • Umístění – viz grafika • Pro prvek na hranici užijte buňku nad prvkem, pokud tam je. • Pro prvek na hranici užijte buňku nalevo, pokud tam je. Kartografické modelování Linie Nástroj Polyline to Rastr Metody: – MAXIMUM_LENGTH – MAXIMUM_COMBINED_LENGTH • Priority Kartografické modelování Kartografické modelování Plocha Tři základní metody: • CELL_CENTER - hodnota nacházející se ve středu buňky. • MAXIMUM_AREA – největší souvislá plocha v buňce. • MAXIMUM_COMBINED_AREA – největší sečtená plocha v buňce (i z více nesouvisejících ploch). • Respektovány pravidla hranice • Priorita podle FID Kartografické modelování Kartografické modelování Jazyk mapové algebry • Nástrojů mapové algebry je možné využívat pomocí speciálního jazyka (jazyka mapové algebry). • Jedná se o jednoduchý programovací jazyk • navržený speciálně pro popis analýz prostorového modelování nad rastrovou reprezentací. • Jeho syntaxe se produkt od produktu liší, ale princip zůstává stejný. Kartografické modelování Struktura jazyka MA Mapová algebra používá objekty, činnosti a kvalifikátory činnosti. Ty mají obdobné funkce jako podstatná jména, slovesa a příslovce. • Objekty slouží k uložení informací, nebo jsou to vstupní hodnoty. Jako objekty se používají rastry, tabulky, konstanty, … • Činnosti jsou příkazy jazyka (operátory a funkce) vykonávají operace na objektech: – Operátory jsou obvyklé matematické, statistické, relační a logické operátory (+, -, *, /, >, <, >=, <=, <>, mod, div, and, or, not, …). – Funkce mapové algebry se dělí na lokální, fokální, zonální a globální. Kartografické modelování Operátory – základní pravidla použití • Pokud v příkazu používáme operátory, musí být od objektů odděleny mezerou z obou stran. • Pořadí provádění operací definovanými operátory je určeno pomocí tzv. hodnoty nadřazenosti (precedence value), která je přiřazena každému operátoru. Čím vyšší hodnota nadřazenosti, tím má operátor vyšší prioritu. • Pokud operátory použité v příkazu mají stejnou hodnotu nadřazenosti, pak se operace vykonává „zleva doprava“. Nejdřív se vykoná operace daná operátorem, který se nachází víc nalevo od operátoru se stejnou hodnotou nadřazenosti. • Pokud si chceme stanovit vlastní pořadí provádění operací, jednoduše použijeme kulaté závorky (tak jak se tomu běžně děje v klasické algebře). • Pracujeme-li s funkcemi, všechny mají stejnou hodnotu nadřazenosti. • Není-li pořadí určeno závorkami, vykonávají se operace postupně zleva doprava. Kartografické modelování Operace na jedné a více vrstvách • Z hlediska počtu zpracovávaných vrstev lze operace mapové algebry dělit na operace s jednou nebo více vrstvami. – Na jedné vrstvě jsou to nejčastěji skalární operace jako je připočítávání konstanty, násobení, atp. Jako příklad může posloužit tvorba 2x převýšeného DMR pro vizualizaci ve 3D. – Na více vrstvách jsou to operace jako sčítání vrstev, které se vykonávají s prostorově odpovídajícími si buňkami. Kartografické modelování Dělení funkcí mapové algebry Z hlediska oblasti ze které je počítána hodnota výsledné buňky dělíme funkce mapové algebry na : • Lokální - na individuální buňce, nová hodnota vzniká z individuální buňky jedné nebo více vrstev. • Fokální - v definovaném okolí, nová hodnota vzniká z definovaného okolí buňky. • Zonální - na specifické oblasti, nová hodnota vzniká ze zóny definované v jiné vrstvě. • Globální - používají se všechny buňky informační vrstvy. Kartografické modelování Lokální funkce • Lokální funkce se obvykle dělí na: • matematické, trigonometrické, exponenciální, logaritmické; • reklasifikační; • selekční; • statistické. Kartografické modelování Reklasifikační funkce • Mění hodnotu jednotlivých buněk na alternativní hodnoty pomocí různých metod. – Look up table – Reklasifikace pomocí individuálních hodnot – Reklasifikace pomocí tříd – Shlukování do intervalů či ploch Kartografické modelování Look up table • Vytváří nový rastr pomocí vyhledávání hodnot v pomocné tabulce a definovaném sloupci. • OutRas = Lookup(InRas1, "Category") Kartografické modelování Reklasifikace pomocí individuálních hodnot • Mění hodnoty v poměru jedna k jedné na základě definovaných pravidel. Kartografické modelování Reklasifikace pomocí tříd (range of values) • Změna počtu či hodnoty tříd. • Př. 0 – 9 =1; 20 – 30 =5; 10 – 19 = 10 • Pro souvislá data – není nutné definovat všechny hodnoty! • Nástroj požaduje pouze určení spodní a horní hranice hodnot. Všechny hodnoty v rozmezí jsou reklasifikovány. • Pozor na mezní hodnoty – potřeba se seznámit s pravidly konkrétního SW. Kartografické modelování Kartografické modelování Shlukování do intervalů či ploch • Rozmezí hodnot je reklasifikováno do: – stejných hodnotových intervalů, – stejných výsledných ploch – pomocí přirozených hranic (natural breakes). • Nástroj Slice v ArcGIS Kartografické modelování Kartografické modelování Lokální funkce ArcGIS • Lokální statistické funkce • Kombinace více vstupních rastrů (Combine) • Nalezení počtu výskytů splňujících určitá kritéria - Equal To Frequency, Greater Than Frequency a Less Than Frequency. • Nalezení hodnoty splňující určitá kritéria Popularity a Rank. • Nalezení polohy splňující určitá kritéria. Kartografické modelování Lokální statistické funkce • Vypočítá pro jednotlivé buňky statistiku z daného počtu rastrů. • Majority, Maximum, Mean, Median, Minimum, Minority, Range, Standard Deviation, Sum a Variety. • Mean - průměr • Vypočítá průměr z jednotlivých buněk vstupních rastrů. • Výsledek má vždy hodnotu „floating point.“ • OutRas = CellStatistics(["InRas1", "InRas2", "InRas3"], "Mean") Kartografické modelování Lokální statistické funkce • Majority – nejčastěji se vyskytující hodnota v jednotlivých buňkách. • Integer, floating point. • Pokud je více možných výsledků, pak NoData. • OutRas = CellStatistics([InRas1, InRas2, InRas3], "Majority") Kartografické modelování Lokální statistické funkce • Maximum (median, minimum, minority, range, standard deviation, sum) • Nejvyšší hodnota (stejně tak pro ostatní statistické funkce) • Integer, floating point – input=output • OutRas = CellStatistics(["InRas1", "InRas2", "InRas3"], "Maximum") Kartografické modelování Lokální statistické funkce • Variety – variabilita • Určí počet unikátních hodnot v jednotlivých vstupech a buňkách. • Výstupní rastr je vždy integer. • OutRas = CellStatistics([InRas1, InRas2, InRas3], "Variety") Kartografické modelování Kombinace více rastrů • Funkce Combine kombinuje několik vstupních rastrů a přiřadí novou hodnotu všem unikátním kombinacím jednotlivých buněk. Původní hodnoty jednotlivých rastrů jsou zapsány do atributové tabulky výstupního rastru. • Každá unikátní kombinace je označena novou hodnotou. • Názvy vstupních rastrů jsou užity jako označení sloupců nové atributové tabulky a označují rodičovství nově vzniklých atributů. Kartografické modelování Combine OutRas = Combine([InRas1, InRas2]) Kartografické modelování Počet výskytů splňujících určitá kritéria •Less than Frequency •Nepovinný rastr může specifikovat počet výskytů. •Výstupní rastr je vždy integer •OutRas = LessThanFrequency(ValRas, [InRas1, InRas2, InRas3] Kartografické modelování Hodnoty splňující určitá kritéria Popularity – pořadí n-tých výskytů – pozor na striktní pravidla počítání (NoData, všechny odlišné hodnoty). OutRas = Popularity(ValRas, [InRas1, InRas2, InRas3]) Kartografické modelování Hodnoty splňující určitá kritéria • Rank Hodnoty vstupních rastrů jsou seřazeny podle buněk, výstupní hodnota pořadí je určena pomocným rastrem. • OutRas = Rank(ConstRas, [InRas1, InRas2, InRas3]) Kartografické modelování Nalezení polohy splňující určitá kritéria. • OutRas = HighestPosition([InRas1, InRas2, InRas3]) • OutRas = LowestPosition([InRas1, InRas2, InRas3]) Kartografické modelování Výběr pomocí podmínky – conditional • Kontroluje výsledné hodnoty na základě podmínek, které jsou aplikovány na vstupní hodnoty. • Podmínky lze uplatnit na atributy či polohu buněk. • Dotaz (podmínka) na atributy explicitně identifikuje všechny buňky, které jsou hodnoceny jako „True“. • True buňkámjsou následně přiřazeny nové hodnoty (případně NoData). • False buňkám jsou přiřazeny hodnoty podle podmínky. • Nástroje Con, Pick Kartografické modelování Con • Provede podmínečný výběr na základě požadavku a splnění podmínky. • OutRas = Con(InRas1, 40, 30, "Value >= 2") Kartografické modelování Pick • Hodnota z pozičního rastru je použita k určení toho, z jakého vstupního rastru má být použita hodnota pro výstupní rastr. • OutRas = Pick(InRas1, [InRas2, InRas3]) Kartografické modelování No Data • Pokud je hodnota buňky definována jako prázdná (NoData), znamená to, že tato buňka nenese žádnou informaci o prostoru, který reprezentuje. Zacházení s tímto druhem hodnot se podstatně liší. Buňky s prázdnou hodnotou mohou být zpracovány dvojím způsobem: – Přiřazením prázdné hodnoty buňce výstupního rastru, pokud existuje prázdná hodnota této polohy v jakémkoli vstupním rastru. V tomto případě se to týká vstupních rastrů zpracovaných lokálními funkcemi . V případě fokálních funkcí se prázdná hodnota objeví v místech, kde se v okolí zpracovávané buňky vyskytuje prázdná hodnota. V případě zonálních funkcí by se jednalo o zónu. – Druhou možností je ignorování prázdné hodnoty a provedení výpočtu pouze s existujícími hodnotami. Tato možnost nese určité riziko, protože výstupní hodnoty nesou určitou nepřesnost plynoucí z toho faktu, že nemáme žádné informace o buňce nesoucí prázdnou hodnotu. • 0 je validní hodnota • 999 obvykle použito pro No data