Atributová data¶
Editace atributových dat¶
Správce atributových dat umožňuje kromě dotazování (viz kapitola Atributové dotazy) atributová data modifikovat.
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).
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
čiDELETE
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.
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.
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.
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.
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 . Pokud není zadána where
podmínka, tak modul vypíše
všechny záznamy z atributové tabulky.
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 .
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"
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;
Poznámka
Pro ostatní SQL příkazy
(INSERT
, UPDATE
, DELETE
, ALTER
a další) je určen
modul db.execute.