V této kapitole byste se měli seznámit s atributovými dotazy v prostředí ArcMap.
Prakticky se ukážeme vyhotovení několika atributových dotazů krok za krokem, na konci textu je pak seznam cvičných příkladů, u kterých máte v závorce uvedeno správné řešení.
Pro toto cvičení budete potřebovat následující vrstvy:
sidlab
zelez
silnice
okresy
Všechny tyto vrstvy naleznete v jednom zip souboru zde. Společně s těmito daty je součástí zip archivu i soubor POPISV12.doc, což je soubor obsahující popis dat.
DOPORUČENÍ: Otevřete si soubor POPISV12.doc a seznamte se s jeho strukturou. Při řešení úkolu se Vám stane, že budete muset zjistit, zda-li máte danou vrstvu vůbec k dispozici a za další zde naleznete seznam a popis jednotlivých atributů dostupných vrstev.
Dotaz č. 1:
Vyberte všechny dálnice.
Řešení:
Je zřejmé, že pro vyhotovení tohoto dotazu budeme pracovat s vrstvou silnic. Při nahlédnutí do souboru POPISV12.doc zjistíme, že k jednotlivým liniím, které reprezentují v grafické podobě silniční síť, máme k dispozici atributový sloupec 'trida_sil'. Hodnoty v tomto sloupci určijí, o jakou třídu silnice se jedná. Snadno nahlédneme, že dálnice jsou určeny hodnotou atributu 'trida_sil' rovno 'D'.
Jak nyní všechny dálnice nalézt ve vrstvě silnic?
ArcMap umožňuje provádět atributové dotazy přes dialogové okno 'Select By Attributes'. Toto okno vyvoláme přes: Selection -> Select By Attributes:
Nastavení voleb Layer a Method:
Layer - seznam načtených vrstev v ArcMap. My vybereme vrstvu silnice.
Method - možno zvolit jednu ze čtyř method:
Create a new selection - vytvoření nového výběru.
Add to current selection - přidání prvků do již existujícího výběru.
Remove from current selection - odebrání prvků z již existujícího výběru.
Select from current selection - vybrání prvků z již existujícího výběru.
My nyní vybereme metodu Create a new selection (nemáme ještě vybrané žádné prvky, tvoříme nový výběr splňující naše kritéria).
Pomocí voleb Layer a Method tedy říkáme, z jaké vrstvy se má výběr uskutečnit a určujeme metodu výběru.
Zbývá nám zadat, že se mají vybrat pouze prvky, které reprezentují dálnice. Tuto podmínku je potřeba zapsat do textového pole a doplnit tak dotaz zapsaný v jazyce SQL (Structured Query Language) 'SELECT * FROM vrstva WHERE:'.
Víme, že se musíme dotazovat na sloupec 'TRIDA_SIL'. Proto na tento sloupec v dialogovém okně klikneme a název sloupce se nám přidá do textového pole. Ze znamének vybereme '=', neboť se dotazujeme na rovnost atributu nějaké hodnotě. Konkrétně v tomto příkladě hodnotě 'D'. Tuto hodnotu je možné zapsat ručně z klávesnice, případně kliknout na tlačítko 'Get Unique Values' a vybrat hodnotu z unikátních hodnot.
Zadání dotazu pro vybrání všech dálnic tak bude výsledně vypadat takto:
Dotaz se provede stiskem tlačítka 'Apply'.
Pokud bychom chtěli zjistit počet vybraných prvků, je možné to zjistit několika způsoby. Jedním z nich je podívat se do atributové tabulky k vrstvě silnic. Atributovou tabulku dostaneme přes stisk pravého tlačítky myši nad názvem vrstvy a volbou 'Open Attribute Table'. Pokud vybereme v atributové tabulce tlačítko 'Selected', zobrazí se nám seznam a počet vybraných prvků:
Vybraných prvků je tedy 11.
DOPORUČENÍ: Zkuste si odpovědět na otázku, proč když jsme vybrali pouze jednu dálnici - D5, máme jako výsledek 11 prvků?
Vybrané prvky je možné uložit do nové, samostatné vrstvy. Pokud bychom chtěli vrstvu dálnic, pak bychom přes pravé tlačítko myši vyvolali nabídku, ze které vybereme: Selection -> Create Features from Selected Features. Ještě musíme vybrat cílové umístění pro novou vrstvu a samozřejmě i vhodný název. Nově vytvořenou vrstvu dálnic je nyní možné přidat do ArcMap. Vyzkoušejte si to!
TIP: Pokud budete chtít zrušit označení vybraných prvků, použijte: Selection -> Clear Selected Features
Dotaz č. 2:
Vyberte všechny silnice 1. třídy, které mají dva jízdní pruhy.
Řešení:
Opět budeme pracovat s vrstvou silnic. Vzhledem k tomu, že chceme vybrat silnice 1. třídy a zároveň mají mít tyto silnice dva jízdní pruhy, budeme se muset dotazovat na dva sloupce - 'TRIDA_SIL' a 'J_PRUHY'. Že je tomu skutečně tak, se přesvědčte nahlédnutím do popisu dat.
K zápisu podmínky 'WHERE' do textového pole tedy bude nutné přidat atributové podmínky na oba dva sloupce a logickou spojku 'a zároveň' (v jazyce SQL ji odpovídá klíčové slovo 'And'), neboť musí být splněny obě dvě zároveň.
Výsledné řešení tedy vypadá následovně:
Dotaz č. 3:
Vyberte okresy NUTS4 = CZ0413 a CZ0321 (NUTS4 je kód okresu podle klasifikace územních statistických jednotek).
Řešení:
V tomto příkladu budeme pracovat s vrstvou okresů a konkrétně (nahlédněte prosím do popisu dat) s atributem 'NUTS4'.
Pro vyřešení úkolu použijeme další logický operátor - 'a nebo', kterému v jazyce SQL odpovídá klíčové slovo 'Or'. V podstatě chceme z vrstvy okresů vybrat okresy, u kterých je hodnota atributu NUTS4 rovna CZ0413 a nebo CZ0321. Řešení pak vypadá následovně:
Seznam příkladů k procvičení:
Najděte všechny elektrifikované tratě. Kolik jich je? [Výsledek: 48 záznamů]
Které okresy měly v roce 1999 více jak 50 tisíc obyvatel a zároveň (v témže roce) méně jak 70 tisíc obyvatel? [3 okresy - Domažlice, Plzeň-jih, Tachov]. Vytvořte z výsledku dotazu novou vrstvu a pojmenujte ji - 'okresy-vyber'.
Vytvořte novou vrstvu s názvem 'lazenska-mesta', která bude obsahovat všechna lázeňská města. Kolik je těchto měst? [7 lázeňských měst]
Najděte všechna města, která jsou lázeňská a zároveň mají minimálně 25 tisíc obyvatel. Důležité: Použijte při řešení tohoto úkolu metodu 'Select from current selection', tzn. nejprve pomocí příslušné podmínky vyberete všechna lázeňská města, jako v předešlém příkladu, a poté použijte zmíněnou metodu a druhou podmínku pro počet obyvatel. [2 města - Karlovy Vary, Mariánské Lázně]