Použití prostorových dotazů v GDAL¶
Dotazy je možné rovněž používat v rámci knihovny GDAL, a to v různých případech užití. Jednou skupinou je využití GDAL bin utils, které se ovládají z příkazového řádku (terminálu).
Důležité
Obrovsky silnou zbraní knihovny GDAL je, že nám umožní vybírat prvky pomocí prostorových dotazů i z původně ne-SQL datových formátů (Shapefile, GML a podobně).
ogrinfo¶
Nástroj ogrinfo umožňuje zobrazit informace o zdroji dat. Pokud jej kombinujeme s SQL dotazem můžeme si např. vypsat plochu největší parcely v našem cvičném území.
ogrinfo ruian.gpkg -sql "SELECT Max(ST_Area(geom)) FROM parcely"
Po zadání daného příkazu dostaneme plochu největší parcely v území.
INFO: Open of `ruian.gpkg'
using driver `GPKG' successful.
Layer name: SELECT
Geometry: None
Feature Count: 1
Layer SRS WKT:
(unknown)
Max(ST_Area(geom)): Real (0.0)
OGRFeature(SELECT):0
Max(ST_Area(geom)) (Real) = 266024.887149993
ogr2ogr¶
Nástroj ogr2ogr dokáže provádět celou řadu zajímavých operací, přičemž primární je konverze mezi formáty a souřadnicovými systémy. V případě doplnění o SQL je možná dále realizovat výběry dat na základě prostorových dotazů. Můžeme si tak např. seznam parcel, které splňují podmínku vypsat do formátu CSV, který můžeme načíst v běžném tabulkovém procesoru.
ogr2ogr -f "CSV" budovy.csv ruian.gpkg -sql "SELECT s2.Kod, round(ST_Distance(s1.geom, s2.geom)) dist
FROM stavebniobjekty s1 JOIN stavebniobjekty s2 ON
(s1.Kod = 4598652 AND
s2.PocetPodlazi > 2 AND
ST_Distance(s1.geom, s2.geom) < 500)
ORDER BY ST_Distance(s1.geom, s2.geom)"
Po zadání daného příkazu dostaneme soubor budovy.csv
s následujícím obsahem.
Kod,dist
"4598016",11
"4598245",98
"27488829",112
"4598636",178
"26676095",261
"4598792",269
"4596579",285
"4598113",290
"54232597",304
"27934829",331
"4599951",337
"25832212",341
"4597923",352
"25053086",360
"25213016",374
"4599900",483
"4596684",491
Tip
Vektorové formáty, do kterých můžete realizovat export najdete na https://gdal.org/drivers/vector/index.html.