from pathlib import Path
from osgeo import gdal, ogr
gdal.UseExceptions()
file = Path(__file__).parent / "data.gpkg"
ds: gdal.Dataset = gdal.OpenEx(file)
layer: ogr.Layer = ds.GetLayer() # získání první vrstvy v datovém zdrojiProgramování v GIS 2
2026-03-09
None, čímž se explicitně uvolní paměťové 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) - spíše doporučuji první variantu/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átgdal.Driver a ogr.Driver - reprezentace jednotlivých driverůosr.SpatialReference - reprezentace souřadnicového systému a operací s nimiMEM - raster a Memory - vektor pro data neuložené fyzicky, ale pouze v RAM
/vsimem - také v RAM, ale mají formátgdal.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žíváme numpy.array (funkce ReadAsArray())ogr.DataSource (ale spíše vycházíme zgdal.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 prvkuogr.GT_*() pro modifikace a konverze (ForceTo*())ogr.CreateGeometryFrom* pro tvorbu geometrie z různých formátůogr.Geometry reprezentace geometrie - s i bez informací o souřadnicovém systémuSetPrecision() - přesnost geometriefrom 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(f"Soubor existuje: {file.exists()}")
ds: gdal.Dataset = gdal.OpenEx(file)
layer: ogr.Layer = ds.GetLayer()
print(f"Jméno vrstvy: {layer.GetName()}")
print(f"Počet prvků: {layer.GetFeatureCount()}")gdal.VectorTranslate() (gdal.VectorTranslateOptions()) pro vektorová datagdal.Translate() (gdal.TranslateOptions()), gdal.Warp() (gdal.WarpOptions())/vsi* nebo přímo objekty gdal.DatasetMateriály dostupné: https://jancaha.github.io/vsb-vyuka/