from pathlib import Path
from osgeo import gdal, ogr
gdal.UseExceptions()
file = Path(__file__).parent / "soubor.txt"
ds: gdal.Dataset = gdal.OpenEx(file.as_posix())
layer: ogr.Layer = ds.GetLayer()Programování v GIS 2
2025-03-03
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)/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
/vsimem - také v RAM, ale mají formátgdal.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žíváme numpy.array (funkce ReadAsArray())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 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(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.DatasetMateriály dostupné: https://jancaha.github.io/vsb-vyuka/