Multi-dimensional array API

See Multidimensional Raster Data Model and Multidimensional raster API tutorial for examples of working with the Multi-dimensional array API.

Group

class osgeo.gdal.Group(*args, **kwargs)

Proxy of C++ GDALGroupHS class.

CreateAttribute(self, name, dimensions, data_type, options=None) Attribute

Create an attribute within a MDArray or Group.

See GDALIHasAttribute::CreateAttribute().

Parameters:
  • name (str) -- name

  • dimensions (list) -- List of dimensions, ordered from the slowest varying dimension first to the fastest varying dimension last. Might be empty for a scalar array (if supported by driver)

  • data_type (ExtendedDataType) -- Attribute data type

  • options (dict or list, optional) -- dict or list of driver specific NAME=VALUE option strings.

Returns:

the new Attribute or None on failure.

Return type:

Attribute

Examples

>>> drv = gdal.GetDriverByName('MEM')
>>> mem_ds = drv.CreateMultiDimensional('myds')
>>> rg = mem_ds.GetRootGroup()
>>> dim = rg.CreateDimension('dim', None, None, 2)
>>> ar = rg.CreateMDArray('ar_double', [dim], gdal.ExtendedDataType.Create(gdal.GDT_Float64))
>>> numeric_attr = ar.CreateAttribute('numeric_attr', [], gdal.ExtendedDataType.Create(gdal.GDT_Float64))
>>> string_attr = ar.CreateAttribute('string_attr', [], gdal.ExtendedDataType.CreateString())
CreateDimension(self, name, dim_type, direction, size, options=None) Dimension

Create a dimension within a Group.

See GDALGroup::CreateDimension().

Parameters:
  • name (str) -- Dimension name

  • dim_type (str) -- Dimension type (might be empty, and ignored by drivers)

  • direction (str) -- Dimension direction (might be empty, and ignored by drivers)

  • size (int) -- Number of values indexed by this dimension. Should be > 0

  • options (dict or list, optional) -- dict or list of driver specific NAME=VALUE option strings.

Returns:

the new Dimension or None on failure.

Return type:

Dimension

Examples

>>> drv = gdal.GetDriverByName('MEM')
>>> mem_ds = drv.CreateMultiDimensional('myds')
>>> rg = mem_ds.GetRootGroup()
>>> dim_band = rg.CreateDimension('band', None, None, 3)
>>> dim_x = rg.CreateDimension('X', None, None, 2)
>>> dim_x.GetFullName()
'/X'
>>> lat = rg.CreateDimension('latitude', gdal.DIM_TYPE_HORIZONTAL_X, None, 2)
>>> lat.GetType()
'HORIZONTAL_X'
CreateGroup(self, name, options=None) Group
CreateMDArray(self, name, dimensions, data_type, options=None) MDArray

Create a multidimensional array within a group.

It is recommended that the GDALDimension objects passed in dimensions belong to this group, either by retrieving them with GetDimensions() or creating a new one with CreateDimension().

See GDALGroup::CreateMDArray().

Parameters:
  • name (str) -- name

  • dimensions (list) -- List of dimensions, ordered from the slowest varying dimension first to the fastest varying dimension last. Might be empty for a scalar array (if supported by driver)

  • data_type (ExtendedDataType) -- Array data type

  • options (dict or list, optional) -- dict or list of driver specific NAME=VALUE option strings.

Returns:

the new MDArray or None on failure.

Return type:

MDArray

Examples

>>> drv = gdal.GetDriverByName('MEM')
>>> mem_ds = drv.CreateMultiDimensional('myds')
>>> rg = mem_ds.GetRootGroup()
>>> dimX = rg.CreateDimension('X', None, None, 3)
>>> ar = rg.CreateMDArray('ar', [dimX], gdal.ExtendedDataType.Create(gdal.GDT_Byte))
DeleteAttribute(self, name, options=None) CPLErr
DeleteGroup(self, name, options=None) CPLErr
DeleteMDArray(self, name, options=None) CPLErr
GetAttribute(self, name) Attribute
GetAttributes(self, options=None)
GetDataType(self, idx) ExtendedDataType
GetDataTypeCount(self) size_t
GetDataTypes()

Return data types associated with that group (typically enumerations)

GetDimensions(self, options=None)
GetFullName(self) char const *
GetGroupNames(options=[]) list[str]
GetMDArrayFullNamesRecursive(self, groupOptions=None, arrayOptions=None) char **
GetMDArrayNames(options=[]) list[str]
GetName(self) char const *
GetStructuralInfo(self) char **
GetVectorLayerNames(self, options=None) char **
OpenGroup(self, name, options=None) Group
OpenGroupFromFullname(self, name, options=None) Group
OpenMDArray(self, name, options=None) MDArray
OpenMDArrayFromFullname(self, name, options=None) MDArray
OpenVectorLayer(self, name, options=None) Layer
Rename(self, newName) CPLErr
ResolveMDArray(self, name, starting_point, options=None) MDArray
SubsetDimensionFromSelection(self, selection, options=None) Group

Dimension

class osgeo.gdal.Dimension(*args, **kwargs)

Proxy of C++ GDALDimensionHS class.

GetDirection(self) char const *
GetFullName(self) char const *
GetIndexingVariable(self) MDArray
GetName(self) char const *
GetSize(self) GUIntBig
GetType(self) char const *
Rename(self, newName) CPLErr
SetIndexingVariable(self, array) bool

MDArray

class osgeo.gdal.MDArray(*args, **kwargs)

Proxy of C++ GDALMDArrayHS class.

AdviseRead(array_start_idx=None, count=None, options=[])
AsClassicDataset(self, iXDim, iYDim, hRootGroup=None, options=None) Dataset
BuildOverviews(self, resampling='NEAREST', overviewlist=0, callback=0, callback_data=None, options=None) CPLErr
Cache(self, options=None) bool
ComputeStatistics(self, approx_ok=FALSE, callback=0, callback_data=None, options=None) Statistics
CreateAttribute(self, name, dimensions, data_type, options=None) Attribute

Create an attribute within a MDArray or Group.

See GDALIHasAttribute::CreateAttribute().

Parameters:
  • name (str) -- name

  • dimensions (list) -- List of dimensions, ordered from the slowest varying dimension first to the fastest varying dimension last. Might be empty for a scalar array (if supported by driver)

  • data_type (ExtendedDataType) -- Attribute data type

  • options (dict or list, optional) -- dict or list of driver specific NAME=VALUE option strings.

Returns:

the new Attribute or None on failure.

Return type:

Attribute

Examples

>>> drv = gdal.GetDriverByName('MEM')
>>> mem_ds = drv.CreateMultiDimensional('myds')
>>> rg = mem_ds.GetRootGroup()
>>> dim = rg.CreateDimension('dim', None, None, 2)
>>> ar = rg.CreateMDArray('ar_double', [dim], gdal.ExtendedDataType.Create(gdal.GDT_Float64))
>>> numeric_attr = ar.CreateAttribute('numeric_attr', [], gdal.ExtendedDataType.Create(gdal.GDT_Float64))
>>> string_attr = ar.CreateAttribute('string_attr', [], gdal.ExtendedDataType.CreateString())
DeleteAttribute(self, name, options=None) CPLErr
DeleteNoDataValue(self) CPLErr
GetAttribute(self, name) Attribute
GetAttributes(self, options=None)
GetBlockSize(self)
GetCoordinateVariables(self)
GetDataType(self) ExtendedDataType
GetDimensionCount(self) size_t
GetDimensions(self)
GetFullName(self) char const *
GetGridded(self, pszGridOptions, xArray=None, yArray=None, options=None) MDArray
GetMask(self, options=None) MDArray
static GetMeshGrid(nInputArrays, options=None)
GetName(self) char const *
GetNoDataValue(MDArray self) value
GetNoDataValueAsDouble(self)
GetNoDataValueAsInt64(self)
GetNoDataValueAsRaw(self) CPLErr
GetNoDataValueAsString(self) retStringAndCPLFree *
GetNoDataValueAsUInt64(self)
GetOffset(self)
GetOffsetStorageType(self) GDALDataType
GetOverview(self, idx) MDArray
GetOverviewCount(self) int
GetProcessingChunkSize(self, nMaxChunkMemory)
GetRawBlockInfo(self, nDims) RawBlockInfo
GetResampled(self, nDimensions, resample_alg, srs, options=None) MDArray
GetScale(self)
GetScaleStorageType(self) GDALDataType
GetShape()

Return the shape of the array

GetSpatialRef(self) SpatialReference
GetStatistics(self, approx_ok=FALSE, force=TRUE, callback=0, callback_data=None) Statistics
GetStructuralInfo(self) char **
GetTotalElementsCount(self) GUIntBig
GetUnit(self) char const *
GetUnscaled(self) MDArray
GetView(self, viewExpr) MDArray
Read(array_start_idx=None, count=None, array_step=None, buffer_stride=None, buffer_datatype=None)
ReadAsArray(array_start_idx=None, count=None, array_step=None, buffer_datatype=None, buf_obj=None)
ReadAsMaskedArray(array_start_idx=None, count=None, array_step=None)

Return a numpy masked array of ReadAsArray() with GetMask()

Rename(self, newName) CPLErr
Resize(self, newDimensions, options=None) CPLErr
SetNoDataValue(MDArray self, value) CPLErr
SetNoDataValueDouble(self, d) CPLErr
SetNoDataValueInt64(self, v) CPLErr
SetNoDataValueRaw(self, nLen) CPLErr
SetNoDataValueString(self, nodata) CPLErr
SetNoDataValueUInt64(self, v) CPLErr
SetOffset(self, val, storageType=GDT_Unknown) CPLErr
SetScale(self, val, storageType=GDT_Unknown) CPLErr
SetSpatialRef(self, srs) OGRErr
SetUnit(self, unit) CPLErr
Transpose(self, axisMap) MDArray
Write(buffer, array_start_idx=None, count=None, array_step=None, buffer_stride=None, buffer_datatype=None)
WriteArray(array, array_start_idx=None, array_step=None)
WriteStringArray(self, nDims1, nDims2, nDims3, buffer_datatype, options) CPLErr
property shape

Returns the shape of the array.

Attribute

class osgeo.gdal.Attribute(*args, **kwargs)

Proxy of C++ GDALAttributeHS class.

GetDataType(self) ExtendedDataType
GetDimensionCount(self) size_t
GetDimensionsSize(self)
GetFullName(self) char const *
GetName(self) char const *
GetTotalElementsCount(self) GUIntBig
Read()

Read an attribute and return it with the most appropriate type

ReadAsDouble(self) double
ReadAsDoubleArray(self)
ReadAsInt(self) int
ReadAsInt64(self) long long
ReadAsInt64Array(self)
ReadAsIntArray(self)
ReadAsRaw(self) CPLErr
ReadAsString(self) char const *
ReadAsStringArray(self) char **
Rename(self, newName) CPLErr
Write(val)
WriteDouble(self, val) CPLErr
WriteDoubleArray(self, nList) CPLErr
WriteInt(self, val) CPLErr
WriteInt64(self, val) CPLErr
WriteInt64Array(self, nList) CPLErr
WriteIntArray(self, nList) CPLErr
WriteRaw(self, nLen) CPLErr
WriteString(self, val) CPLErr
WriteStringArray(self, vals) CPLErr

ExtendedDataType

class osgeo.gdal.ExtendedDataType(*args, **kwargs)

Proxy of C++ GDALExtendedDataTypeHS class.

CanConvertTo(self, other) bool
static Create(dt) ExtendedDataType
static CreateCompound(name, nTotalSize, nComps) ExtendedDataType
static CreateString(nMaxStringLength=0, eSubType=GEDTST_NONE) ExtendedDataType
Equals(self, other) bool
GetClass(self) GDALExtendedDataTypeClass
GetComponents(self)
GetMaxStringLength(self) size_t
GetName(self) char const *
GetNumericDataType(self) GDALDataType
GetRAT(self) RasterAttributeTable
GetSize(self) size_t
GetSubType(self) GDALExtendedDataTypeSubType