from pathlib import Path
from osgeo import gdal, ogr
gdal.UseExceptions()
file = Path(__file__).parent / "soubor.txt"
= gdal.OpenEx(file.as_posix())
ds: gdal.Dataset
= ds.GetLayer() layer: ogr.Layer
Programování v GIS 2
2024-03-04
None
, čímž se explicitně uvolní prostředkyosgeo
a několik dílčích modulů
gdal
- rastryogr
- vektoryosr
- souřadnicové systémygdal.OpenEx()
(rastry i vektory) a ogr.Open()
(pouze vektory)/vsi*
kde *
je typ virtuální složky/vsicurl/cesta_k_online.souboru
- automaticky stahuje data/vsizip/cesta_k_lokálnímu.souboru
- extrahuje ze zip souboru/vsis3
, /vsigs
, /vsiaz
, /vsioss
pro přístup k online službám/vsimem
- soubory v RAM paměti, existují pouze po dobu běhu programu, mají ale excelentní rychlost přístup - neomezuje je fyzický disk ale mají specifický určený formátMEM
- raster a Memory
- vektor pro data neuložené fyzicky, ale pouze v RAM (velice jednoduché a rychlé formáty, ale pouze pro dobu běhu programu), nemají formát v pravém slova smyslugdal.Driver
a ogr.Driver
- reprezentace jednotlivých driverůosr.SpatialReference
- reprezentace souřadnicového systému a operací s nimigdal.Dataset
- základní objekt pro práci s daty, zdroj datgdal.Band
- jednotlivá vrstva v rastrovém souboru, může být i pouze jednagdal.MDArray
- sice existuje, ale v Pythonu spíše použímáme numpy.array
ogr.DataSource
(ale může být i gdal.Dataset
) - základní objekt pro práci s daty, zdroj datogr.Layer
- reprezentace jedné vrstvy v datovém zdrojiogr.FeatureDefn
- definice vrstvy, obsahuje informace o atributech (typy, geometrie etc.)ogr.Feature
- reprezentace jednoho prvku ve vrstvěogr.Geometry
- reprezentace geometrie prvkuogr.Field
- reprezentace atributu prvkufrom pathlib import Path
from osgeo import gdal, ogr
gdal.UseExceptions()
if __name__ == "__main__":
file = Path.cwd().parent.parent / \
"_data" / "ne_10m_admin_0_countries.shp"
print(file.exists())
ds: gdal.Dataset = gdal.OpenEx(file.as_posix())
layer: ogr.Layer = ds.GetLayer()
print(layer.GetName())
print(layer.GetFeatureCount())
gdal.VectorTranslate()
(gdal.VectorTranslateOptions()
) pro vektorová datagdal.Translate()
(gdal.TranslateOptions()
), gdal.Warp()
(gdal.WarpOptions()
)/vsi*
nebo přímo objekty gdal.Dataset
Materiály dostupné: https://jancaha.github.io/vsb-vyuka/