Atributová data

Editace atributových dat

Správce atributových dat umožňuje kromě dotazování (viz kapitola Atributové dotazy) atributová data modifikovat.

../_images/dbmgr-edit.png

Poznámka

Editovat lze atributové data vektorových map pouze z aktualního mapsetu.

Kopírovat vektorové mapy do aktuálního mapsetu lze z kontextového menu stromu vrstev (Obr. 145) anebo pomocí nástoje ze záložky Data (Obr. 146).

../_images/copy-vector-01.png

Obr. 145 Vytvoření kopie vektorovové mapy v aktuálním mapsetu z kontextového menu správce vrstev.

../_images/copy-vector-02.png

Obr. 146 Kopírování vektorových map pomocí nástroje ze záložky Data.

Editace atributových dat z příkazové řádky

Nabízejí se dva moduly:
  • db.execute umožňující spustit jakýkoliv SQL příkaz typu UPDATE, ALTER či DELETE

    db.execute sql="update obce set nespravny = '1' where kod = 569054"
    
  • anebo v.db.update jako frontend pro vektorové mapy

    v.db.update map=obce column=nespravny value="1" where="kod = 569054"
    

Správce atributových dat umožňuje přidávat do atributové tabulky nové záznamy.

../_images/dbmgr-new-record.png

Obr. 147 Přidání nového záznamu do atributové tabulky.

Poznámka

Tato operace neznamená, že bude do vektorové mapy přidán nový prvek.

Vložení nového záznamu do atributové tabulky z příkazové řádky

db.execute sql="insert into obce_polygon(cat, nazev) values (6253, 'pokus')"

Vybrané záznamy lze z atributové tabulky odstranit.

../_images/wxgui-dbmgr-delete.png

Obr. 148 Odstranění záznamů z atributové tabulky.

Odstranění záznamů z atributové tabulky z příkazové řádky

db.execute sql="delete from obce where cat = 6253"

Důležité

Při odstranění či přidání záznamů do atributové tabulky dochází k modifikaci pouze popisné složky geoprvků. Např. při odstranění záznamu z atributové tabulky zůstává asociovaná geometrická složka popisu geoprvku ve vektorové mapě zachována.

Numerické atributy mohou být také vypočítány na základě zvolené funkce.

../_images/wxgui-dbmgr-calculate.png

Obr. 149 Funkce pro výpočet numerických atributů.

Výpočet hodnoty atributu z příkazové řádky

v.to.db map=obce option=area columns=vymera

Příklad přidání nového atributu s výměrou a její výpočet (ve čtverečních mapových jednotkách).

Field Calculator

Field Calculator je nástroj, který umožňuje sestavit SQL UPDATE příkaz a pomocí něho modifikovat atributová data.

../_images/wx-field-calculator.png

Obr. 150 Ukázka nástroje využití Field Calculator.

Pokročilé dotazování

Atributové dotazy umožňují dva moduly v.db.select a db.select.

Modul v.db.select

Modul v.db.select umožňuje provádět dotazy pouze nad atributovými daty připojenými k dané vektorové mapě. Je dostupný z menu Database ‣ Query ‣ Query vector attribute data. Pokud není zadána where podmínka, tak modul vypíše všechny záznamy z atributové tabulky.

../_images/v-db-select-0.svg

Obr. 151 Atributový dotaz pomocí modulu v.db.select (zadání vektorové mapy).

../_images/v-db-select-1.svg

Obr. 152 Atributový dotaz pomocí modulu v.db.select (volitelně zadání ‚where‘ podmínky).

Modul db.select

Modul db.select umožňuje provádět SQL dotazy (SELECT) nad libovolnými atributovými daty dostupnými pomocí daného databázového ovladače. SQL dotazy mohou být uloženy v souboru (parametr input) anebo definovány jako parametr sql. Tento modul je dostupný z menu Database ‣ Query ‣ Query any table.

../_images/db-select-0-single.png

Obr. 153 Atributový dotaz pomocí modulu db.select (zadání SQL dotazu). Výpočet plošné zakulacenosti prvků (poměr kvadrátu obvodu vůči ploše).

../_images/db-select-1-single.png

Obr. 154 Atributový dotaz pomocí modulu db.select (výsledek SQL dotazu).

Důležité

Modul db.select pracuje s atributy uloženými v aktuální mapsetu (ve výchozím nastavení systém GRASS použivá pro uložení atributových dat SQLite databázi, každý mapset má svoji DB). Cestu k DB lze změnit pomocí atributu database.

Jednoduché atributové dotazu z příkazové řádky

db.select sql="select nazev,(shape_len*shape_len)/shape_area as zaku from maloplosna_uzemi where zaku > 3e3"
../_images/db-select-0-multi.png

Obr. 155 Vícenásobný atributový dotaz pomocí modulu db.select (zadání SQL dotazů).

select nazev,(shape_len*shape_len)/shape_area as zaku from maloplosna_uzemi where zaku > 3e3;
select count(*) from maloplosna_uzemi;
select count(distinct kod) as pocet from maloplosna_uzemi;
../_images/db-select-1-multi.png

Obr. 156 Vícenásobný atributový dotaz pomocí modulu db.select (výsledek SQL dotazů).

Poznámka

Pro ostatní SQL příkazy (INSERT, UPDATE, DELETE, ALTER a další) je určen modul db.execute.