:tocdepth: 3 :py:mod:`gws.lib.gdalx` ======================= .. py:module:: gws.lib.gdalx .. autoapi-nested-parse:: GDAL/OGR wrapper. **Source code:** :source:`gws.lib.gdalx` Package Contents ---------------- .. py:class:: DriverInfo(*args, **kwargs) Bases: :py:obj:`gws.Data` Basic data object. This object can be instantiated by passing one or or ``dict`` arguments and/or keyword args. All dicts keys and keywords become attributes of the object. Accessing an undefined attribute returns ``None`` and no error is raised, unless the attribute name starts with an underscore. .. py:attribute:: extensions :type: list[str] .. py:attribute:: index :type: int .. py:attribute:: longName :type: str .. py:attribute:: metaData :type: dict .. py:attribute:: name :type: str .. py:exception:: Error Bases: :py:obj:`gws.Error` Generic GWS error. .. py:function:: gdal_config(options: dict) Temporarily set GDAL config options. .. py:function:: get_driver(name: str) -> Optional[DriverInfo] Get driver info by name. .. py:function:: get_drivers() -> list[DriverInfo] Enumerate GDAL drivers. .. py:function:: open_from_image(image: gws.Image, bounds: gws.Bounds, rotation: gws.Size = None, options: dict = None) -> RasterDataSet Create an in-memory Dataset from an Image. :param image: Image object. :param bounds: Geographic bounds. :param x_rotation: GeoTransform x rotation. :param y_rotation: GeoTransform y rotation. :param options: Driver-specific creation options. .. py:function:: open_raster(path: str, mode: str = 'r', driver: str = '', default_crs: Optional[gws.Crs] = None, options: dict = None) -> RasterDataSet Create a raster DataSet from a path. :param path: File path. :param mode: 'r' (=read), 'a' (=update), 'w' (=create/write) :param driver: Driver name, if omitted, will be suggested from the path extension. :param default_crs: Default CRS for geometries (fallback to Webmercator). :param options: Options for gdal.OpenEx/CreateDataSource. .. py:function:: open_vector(path: str, mode: str = 'r', driver: str = '', encoding: Optional[str] = 'utf8', default_crs: Optional[gws.Crs] = None, geometry_as_text: bool = False, options: dict = None) -> VectorDataSet Create a vector DataSet from a path. :param path: File path. :param mode: 'r' (=read), 'a' (=update), 'w' (=create/write) :param driver: Driver name, if omitted, will be suggested from the path extension. :param encoding: If not None, strings will be automatically decoded. :param default_crs: Default CRS for geometries (fallback to Webmercator). :param geometry_as_text: Don't interpret geometry, extract raw WKT. :param options: Options for gdal.OpenEx/CreateDataSource. :returns: DataSet object. .. py:class:: RasterDataSet(dso: _DataSetOptions, gd_dataset) Bases: :py:obj:`_DataSet` .. py:method:: bounds() -> gws.Bounds .. py:method:: save_as(path: str, driver: str = '', strict=False, options: dict = None) Create a copy of a DataSet. :param path: Destination path. :param driver: Driver name, if omitted, will be suggested from the path extension. :param strict: If True, fail if some options are not supported. :param options: Driver-specific creation options. .. py:method:: size() -> gws.Size .. py:method:: to_image() -> gws.Image Convert the raster dataset to an Image object. .. py:method:: warp_to_path(path: str, options: dict) Warp a dataset and store it at the given path. :param path: Destination path. :param options: GDAL WarpOptions See: https://gdal.org/en/stable/api/python/utilities.html#osgeo.gdal.WarpOptions https://gdal.org/en/stable/programs/gdalwarp.html .. py:function:: supported_attribute_types() .. py:class:: VectorDataSet(dso: _DataSetOptions, gd_dataset) Bases: :py:obj:`_DataSet` .. py:method:: create_layer(name: str, columns: dict[str, gws.AttributeType], geometry_type: gws.GeometryType = None, crs: gws.Crs = None, overwrite=False, options: dict = None) -> VectorLayer Create a new layer. :param name: Layer name. :param columns: Column definitions. :param geometry_type: Geometry type. :param crs: CRS for geometries. :param overwrite: If True, overwrite existing layer. :param options: Driver-specific creation options. .. py:method:: layer(name_or_index: str | int) -> Optional[VectorLayer] Get a layer by name or index. .. py:method:: layers() -> list[VectorLayer] Get all layers. .. py:method:: require_layer(name_or_index: str | int) -> VectorLayer Get a layer by name or index, raise an error if not found. .. py:method:: transaction() .. py:class:: VectorLayer(ds: VectorDataSet, gd_layer: osgeo.ogr.Layer) .. py:attribute:: dso :type: _DataSetOptions .. py:attribute:: gdDefn :type: osgeo.ogr.FeatureDefn .. py:attribute:: gdLayer :type: osgeo.ogr.Layer .. py:attribute:: name :type: str .. py:method:: count(force=False) .. py:method:: describe() -> gws.DataSetDescription .. py:method:: get(fid: int) -> Optional[gws.FeatureRecord] .. py:method:: get_all() -> list[gws.FeatureRecord] .. py:method:: insert(records: list[gws.FeatureRecord]) -> list[int] .. py:method:: iter_features() -> Iterable[gws.FeatureRecord]