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).
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>.