SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 3.ročník ATRIBUTY ZÁKLADN POJMY VÝBĚR PRVKŮ DLE ATRIBUTŮ
GIS jako obraz reálného světa Reálný svět je pozorován pozorovatelem. Ten vytváří na základě svých vjemů vnitřní (mentální model) tohoto světa. Mentální model je velmi blízký reálnému světu, ale vždy je tu jisté zjednodušení. Pro poskytnutí tohoto modelu dalším uživatelům je nutné ho převést do podoby papírové mapy. Pro převedení mapy do GISu je potřeba ji zdigitalizovat. Jednotlivé geoprvky jsou nahrazeny základními geometrickými prvky a ty jsou dále tříděny podle tématu do jednotlivých vrstev.
ATRIBUTY Složky popisu geoprvku PROSTOROVÉ geometrická, která zaznamenává lokalizaci geoprvku v prostoru, popisuje přímo jeho geometrické vlastnosti a nepřímo prostorové vztahy s okolními objekty - tzv. topologii NEPROSTOROVÉ popisnou (někdy též označovanou jako tematickou) - zaznamenává negeometrické vlastnosti geoprvku, jeho tzv. atributy časovou - zaznamenává pozici geoprvku na časové ose, tedy dobu jeho existence při daném stavu geometrie a atributů vztahovou - popisuje jeho vztahy, do nichž geoprvek vstupuje s jinými geoprvky funkční - popisuje operace, které lze s daným geoprvkem provádět.
ATRIBUTY Atribut = Tematická složka popisu dat popisuje negeometrickou vlastnost entity (geoprvku) každý atribut je obecně tvořen dvojicí: Název jakou vlastnost popisuje (např. Počet obyvatel) Hodnota konkrétní případ (např. 10 521) pro každou vlastnost nejvýše jedna hodnota Identifikační vlastnost = vlastnost jejíž hodnota je pro daný geoprvek unikátní (klíčová hodnota)
ATRIBUTY Při tvorbě nového pole je nutné vždy zadat: název typ pole velikost pole počet desetinných míst (u čísla)
ATRIBUTY Typy atributových dat číslo číslo (integer = 12; float, real 3,14; poměr - např. procenta interval - např. celá čísla z intervalu (0,10), desetinná čísla z intervalu (0.5-14.0) pořadí - řadová číslovka výčet - např. pro typ silnice to může být (dálnice, rychlostní silnice, silnice 1.třídy, silnice 2.třídy, ostatní silnice) text logická hodnota datum čas obrazová informace
ATRIBUTY Atributová tabulka v GIS
Relační databáze relace = vzájemný vztah v současnosti drtivě nejpoužívanější koncept 1969 F. E. Cobb přišel s konceptem databází založených na matematickém aparátu relačních množin a predikátové logiky schéma relace název, počet sloupců, názvy sloupců... v databázích relace = definice struktury tabulky relací je i výsledek dotazu, můžeme s ním dále pracovat (vnořené dotazy...) pokud jsou v různých tabulkách sloupce stejného typu, pak tyto sloupce mohou vytvářet vazby mezi jednotlivými tabulkami. tabulky se naplňují vlastním obsahem - konkrétními daty kolekce více tabulek, jejich funkčních vztahů, indexů a dalších součástí tvoří relační databázi propojení mezi tabulkami je dosaženo pomocí sdílených polí (tzv. pole ID) možné asociace 1:1 ; 1:n ; m:n
ATRIBUTY Manipulace s atributovými daty Editační funkce pomocí jazyka SQL, který je součástí vlastní databáze Funkce na výpočet nových atributů z existujících atributových hodnot Funkce umožňující propojení tabulek (join) přes jeden atribut společný pro obě tabulky D Analytické funkce atributů používají : matematické operace aritmetické, trigonometrické a exponenciální funkce logické operace operátory numerické i booleanovské algebry (ano/ne) statistické operace součet, maximum, minimum, průměr
ATRIBUTY Manipulace s atributovými daty Dotazy = odpovídají funkcím (využívá se jazyka SQL): vyhledávací dotaz na existující data selektivní (= výběrové) podle zadané vlastnosti podmiňovací dotaz co se stane, když modelovací funkce popis dynamiky jevů v krajině na základě teoretických modelů
SQL Structured Query Language SQL - standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích předchůdce jazyk SEQUEL (70. léta, IBM) 1986: první standard SQL-86 Příkazy pro manipulaci s daty příkazy pro získání dat z databáze a pro jejich úpravy. Označují se zkráceně DML Data Manipulation Language ( jazyk pro manipulaci s daty ). SELECT vybírá data z databáze, umožňuje výběr podmnožiny a řazení dat. INSERT vkládá do databáze nová data. UPDATE mění data v databázi (editace). DELETE odstraňuje data (záznamy) z databáze. EXPLAIN PLAN FOR, SHOW,... Příkazy pro definici dat Těmito příkazy se vytvářejí struktury databáze tabulky, indexy, pohledy a další objekty. Vytvořené struktury lze také upravovat, doplňovat a mazat. Tato skupina příkazů se nazývá zkráceně DDL Data Definition Language ( jazyk pro definici dat ). CREATE vytváření nových objektů. ALTER změny existujících objektů. DROP odstraňování objektů.
SQL Structured Query Language Příkazy pro řízení dat Do této skupiny patří příkazy pro nastavování přístupových práv a řízení transakcí. Označují se jako DCL Data Control Language ( jazyk pro ovládání dat ), někdy také TCC Transaction Control Commands ( jazyk pro ovládání transakcí ). GRANT příkaz pro přidělení oprávnění uživateli k určitým objektům. REVOKE příkaz pro odnětí práv uživateli. BEGIN zahájení transakce. COMMIT potvrzení transakce. ROLLBACK zrušení transakce, návrat do původního stavu. Ostatní příkazy Do této skupiny patří příkazy pro správu databáze. Pomocí nich lze přidávat uživatele, nastavovat systémové parametry (kódování znaků, způsob řazení, formáty data a času apod.). Tato skupina není standardizována a konkrétní syntaxe příkazů je zavislá na databázovém systému. V některých dialektech jazyka SQL jsou přidány i příkazy pro kontrolu běhu, takže lze tyto dialekty zařadit i mezi programovací jazyky. Výhody: nezávislé na databázi vysoce standardizované
SELECT Základní tvar příkazu je SELECT seznam sloupců FROM jméno tabulky příkaz je možno upřesňovat zadáním filtrovacích podmínek (uvozených klíčovým slovem WHERE), pořadím řazení (ORDER BY), vyžádat si odstranění duplicitních řádek (DISTINCT), propojit několik tabulek pomocí množinového operátoru (JOIN). Jednoduché dotazy: SELECT id, název FROM kniha SELECT * FROM autoři SELECT název, adr_ulice, adr_číslo, email FROM nakladatelství
SELECT Názvy všech nakladatelství, která jsou z Brna: SELECT název FROM nakladatelství WHERE adr_psč >= 60000 AND adr_psč <= 64400 Název a e-mail všech nakladatelství, která mají svou webovskou stránku: SELECT název, email FROM nakladatelství WHERE web_stránka IS NOT NULL Příjmení všech autorů, jejichž křestní jména začínají na písmeno 'T', a kteří nemají žádný titul: SELECT příjmení FROM autoři WHERE jméno LIKE 'T%' AND titul IS NULL
SELECT SELECT název, adr_ulice, adr_číslo, adr_město, adr_psč FROM nakladatelství WHERE adr_psč >=60000 AND adr_psč <=64400 ORDER BY adr_ulice, adr_číslo Nejčastěji jsou hodnoty tříděny vzestupně (ASC), od nejnižší po nejvyšší. Pokud bychom chtěli provést třídění sestupně (inverzní), použijeme třídění v následujícím tvaru: ORDER BY dle čeho třídit DESC
SELECT Výpis z více tabulek Chceme-li získat informace z více tabulek, musíme v dotazu uvést jejich přirozené spojení. V příkazu SELECT přirozené spojení zapisujeme v části WHERE, a to zápisem ve tvaru (za klíč dosadíme primární a cizí): tabulka1.klíč = tabulka2.klíč kde TABULKA1 a TABULKA2 jsou tabulky, které přirozeně spojujeme. Pokud spojujeme tři a více tabulek, nemůžeme napsat TABULKA1.KLÍČ = TABULKA2.KLÍČ = TABULKA3.KLÍČ, ale musíme tuto rovnosti zapsat po více částech. Tento postup lze aplikovat na libovolný počet tabulek, jak bude vidět z příkladů. tabulka1.klíč = tabulka2.klíč AND tabulka2.klíč = tabulka3.klíč Názvy všech knih, jejichž výtisky byly vydány v roce 1998: SELECT název FROM kniha, výtisk WHERE kniha.id = výtisk.kniha_id AND rok_vydání = 1998 Kteří autoři napsali knihu "Jak publikovat články"? SELECT příjmení, jméno FROM autoři, kniha, napsané_knihy WHERE kniha.id = napsané_knihy.kniha_id AND napsané_knihy.autor_id = autoři.id AND kniha.název LIKE 'Jak publikovat články'
SELECT Názvy všech knih, které napsal Alois Jirásek: SELECT název FROM kniha, autoři, napsané_knihy WHERE kniha.id = napsané_knihy.kniha_id AND autoři.id = napsané_knihy.autor_id AND jméno = 'Alois' AND příjmení = 'Jirásek' Názvy všech děl, která vydalo nakladatelství 'Iota': SELECT kniha.název FROM kniha, výtisk, nakladatelství WHERE kniha.id = výtisk.kniha_id AND výtisk.nakladatel_id = nakladatelství.id AND nakladatelství.název = 'Iota' Ve kterých nakladatelstvích byla v roce 1996 vydána díla autora Robina Cooka? SELECT nakladatelství.název FROM nakladatelství, výtisk, kniha, napsané_knihy, autoři WHERE nakladatelství.id = výtisk.nakladatel_id AND výtisk.kniha_id = kniha.id AND kniha.id = napsané_knihy.kniha_id AND napsané_knihy.autor_id = autoři.id AND nakladatelství.rok_vydání = 1996 AND autoři.jméno = 'Robin' AND autoři.příjmení = 'Cook'
SELECT Modifikátor DISTINCT - zamezí výstupu duplicitních řádků ve výsledku. SELECT DISTINCT nakladatelství.název FROM nakladatelství, výtisk, kniha, napsané_knihy, autoři WHERE nakladatelství.id = výtisk.nakladatel_id AND výtisk.kniha_id = kniha.id AND kniha.id = napsané_knihy.kniha_id AND napsané_knihy.autor_id = autoři.id AND nakladatelství.rok_vydání = 1996 AND autoři.jméno = 'Robin' AND autoři.příjmení = 'Cook' Modifikátor TOP omezí počet řádků (záznamů) ve výsledku (u některých DB LIMIT) SELECT TOP 5 příjmení, jméno FROM kniha, autoři, napsané_knihy WHERE kniha.id = napsané_knihy.kniha_id AND napsané_knihy.autor_id = autoři.id AND kniha.název = 'Jak publikovat články' ORDER BY příjmení, jméno Modifikace záhlaví sloupců jméno_sloupce AS alias_sloupce SELECT kniha_id AS číslo, FROM kniha název AS dílo
další možnosti spojení tabulek - JOIN Příprava dat: create table zakaznik (zakaznik_id int, zakaznik_jmeno varchar(10)); insert into zakaznik values (1, 'Malý'); insert into zakaznik values (2, 'Zajíc'); insert into zakaznik values (3, 'Vyskočil'); insert into zakaznik values (4, 'Nepevný'); insert into zakaznik values (5, 'Netěsný'); create table prodej (prodej_id int, polozka varchar(10)); insert into prodej values (2, 'kamera'); insert into prodej values (3, 'počítač'); insert into prodej values (3, 'monitor'); insert into prodej values (6, 'tiskárna'); select * from zakaznik; select * from prodej;
inner JOIN (vnitřní) z obou tabulek se ve výsledku objeví pouze řádky které oboustranně vyhoví podmínce select zakaznik.*, prodej.* from zakaznik inner join prodej on prodej.prodej_id = zakaznik.zakaznik_id;
outer JOIN (vnější) z obou tabulek se ve výsledku objeví všechny řádky zdrojové tabulky, ke kterým se připojí pouze vyhovující řádky z připojované tabulky levé, pravé vnější spojení funkčně shodné select zakaznik.*, prodej.* from zakaznik left outer join prodej on prodej.prodej_id = zakaznik.zakaznik_id; select zakaznik.*, prodej.* from zakaznik right outer join prodej on prodej.prodej_id = zakaznik.zakaznik_id;
full outer JOIN kombinace levého a pravého spojení select zakaznik.*, prodej.* from zakaznik full outer join prodej on prodej.prodej_id = zakaznik.zakaznik_id;
cross JOIN křížové spojení, každý s každým používá se výjimečně, příklad hotelový systém rezervací, tabulka dnů v roce, tabulka pokojů... select zakaznik.*, prodej.* from zakaznik cross join prodej on prodej.prodej_id = zakaznik.zakaznik_id;
PRAKTICKÁ CVIČENÍ a) a) Výběr všech výškových kót na 1000 m a z nich maxima v jednotlivých krajích Založte si nový projekt: G3_jméno_atributy_vysky Načtěte si z ArcČR 500 Výškové kóty Výškové kóty (podruhé) a nazvěte si je Výškové kóty nad 1000 Hranice Kraje polygony upravte si Symbologii prvků, Kraje polygony si barevně odlište Vyhledej všechny výškové kóty s nadmořskou výškou vyšší než 1000 m. n.m. a uložte je d Excelu Upravte si Výškové kóty nad 1000, tak aby v této vrstvě byly pouze kóty na 1000 m.n.m. Spojte Výškové kóty nad 1000, s Kraje polygony do souboru Výškové kóty nad 1000_kraje Proveďte vyhledání maximálních výšek nad 1000 m.n.m. v jednotlivých krajích
PRAKTICKÁ CVIČENÍ a) Vyhledej všechny výškové kóty s nadmořskou výškou vyšší než 1000 m. n.m. kopie do paměti, pak lze vložit do Excelu
PRAKTICKÁ CVIČENÍ a) Prohlédněte si atributy vybraných prvků a vyexportujte do Excelu
PRAKTICKÁ CVIČENÍ a) Upravte si Výškové kóty nad 1000, tak aby v této vrstvě byly pouze kóty na 1000 m.n.m.
PRAKTICKÁ CVIČENÍ a) Upravte si Výškové kóty nad 100, tak aby v této vrstvě byly pouze kóty nad 1000 m.n.m.
PRAKTICKÁ CVIČENÍ a) Spojte Výškové kóty nad 1000 s jednotlivými kraji nová vrstva VyskoveKotynad1000_kraje vymažte všechny pole, která nechcete ověřte si v atributové tabulce VyskoveKotynad1000_kraje zda je vše v pořádku nechte si vypsat vrchy, které mají v názvu kraje hodnotu <prázdné> ev. <N_A> správnou polohu ke kraji upravte
PRAKTICKÁ CVIČENÍ a) Seřaďte si atributovou tabulku dle vlastního řazení podle krajů a sestupně podle nadmořských výšek a najděte maximální vrcholy na 1000 m.n.m. Vypište do Excelu.
PRAKTICKÁ CVIČENÍ a) Najděte maximální hodnotu Výškové kóty nad 1000 m.n.m. v jednotlivých krajích pomocí funkce Sumariazace a ověřte si maximální nadmořské výšky s vaším výběrem
PRAKTICKÁ CVIČENÍ b) b) Určete součet délek jednotlivých tříd silnic v Jihočeském kraji Založte si nový projekt: G3_jméno_atributy_silnice Načtěte si z ArcČR 500 Kraje polygony Silnice_2016 Vyberte v datech pouze kraj Jihočeský označen zvýrazněním Ořízněte Silnice 2016 pomocí Kraje polygony s puštěným výběrem a přejmenujte ořez na Silnice 2016_JČ Určete součet délek jednotlivých tříd silnic v Jihočeském kraji
PRAKTICKÁ CVIČENÍ Ořízněte Silnice 2016 pomocí Kraje polygony _JČ a přejmenujte na Silnice 2016_JČ b)
PRAKTICKÁ CVIČENÍ Oříznuté Silnice 2016_JČ b)
PRAKTICKÁ CVIČENÍ Proveďte sumarizaci oříznuté vrstvy Silnice 2016_JČ suma délek jednotlivých úseků silnic b)
PRAKTICKÁ CVIČENÍ c) Vypočtěte sumu ploch všech lesních pozemků v jednotlivých krajích Založte si nový projekt: G3_jméno_atributy_lesy Načtěte si z ArcČR 500 Kraje polygony Lesy Vyberte v datech pouze jednotlivé kraje označen zvýrazněním Ořízněte Lesy pomocí Kraje polygony s puštěným výběrem a přejmenujte ořez na Lesy_** (** - jednotlivé kraje) Určete součet ploch lesů v jednotlivých krajích Vypište výsledky do tabulky. c)
PRAKTICKÁ CVIČENÍ c)
PRAKTICKÁ CVIČENÍ d) d) Doplňte nové pole do atributové tabulky Okresy polygony a to pole Hustota_obyvatel jejichž hodnot vypočtete Založte si nový projekt: G3_jméno_atributy_obce Načtěte si z ArcČR 500 Okresy-polygony Obce-body Doplňte nové pole do atributové tabulky Okresy polygony a to pole Hustota_obyvatel jejichž hodnot vypočtete Najděte prvních a posledních 5 okresů s největší a nejmenší hustotou obyvatel - Odlište je barevně Vymyslete si vlastní výběry dle atributů pro Obce - body
PRAKTICKÁ CVIČENÍ d)