Class: QgsMeshDatasetSourceInterface¶
Interface for mesh datasets and dataset groups.
Dataset is a collection of vector or scalar values on vertices or faces of the mesh. Based on the underlying data provider/format, whole dataset is either stored in memory or read on demand
Datasets are grouped in the dataset groups. A dataset group represents a measured quantity (e.g. depth or wind speed), dataset represents values of the quantity in a particular time.
Note
The API is considered EXPERIMENTAL and can be changed without a notice
Added in version 3.2.
Note
This is an abstract class, with methods which must be implemented by a subclass.
The following methods must be implemented: addDataset()
, areFacesActive()
, dataset3dValues()
, datasetCount()
, datasetGroupCount()
, datasetGroupMetadata()
, datasetMetadata()
, datasetValue()
, datasetValues()
, extraDatasets()
, isFaceActive()
, persistDatasetGroup()
Class Hierarchy¶
Subclasses¶
Base class for providing data for |
Abstract Methods
Associate dataset with the mesh |
|
Returns whether the faces are active for particular dataset |
|
Returns N vector/scalar values from the face index from the dataset for 3d stacked meshes |
|
Returns number of datasets loaded in the group |
|
Returns number of datasets groups loaded |
|
Returns dataset group metadata |
|
Returns dataset metadata |
|
Returns vector/scalar value associated with the index from the dataset To read multiple continuous values, use |
|
Returns N vector/scalar values from the index from the dataset |
|
Returns list of additional dataset file URIs added using |
|
Returns whether the face is active for particular dataset |
|
Creates a new dataset group from a data and persists it into a destination path |
Methods
Returns the dataset index of the dataset in a specific dataset group at time from the reference time |
|
Returns a list of dataset indexes of the dataset in a specific dataset group that are between time1 and time2 from the reference time |
- class qgis.core.QgsMeshDatasetSourceInterface[source]¶
Bases:
object
- abstract addDataset(self, uri: str | None) bool [source]¶
Associate dataset with the mesh
emits dataChanged when successful
- Parameters:
uri (Optional[str])
- Return type:
bool
- abstract areFacesActive(self, index: QgsMeshDatasetIndex, faceIndex: int, count: int) QgsMeshDataBlock [source]¶
Returns whether the faces are active for particular dataset
Added in version 3.6.
- Parameters:
index (QgsMeshDatasetIndex)
faceIndex (int)
count (int)
- Return type:
- abstract dataset3dValues(self, index: QgsMeshDatasetIndex, faceIndex: int, count: int) QgsMesh3DDataBlock [source]¶
Returns N vector/scalar values from the face index from the dataset for 3d stacked meshes
See
QgsMeshDatasetMetadata.isVector()
to check if the returned value is vector or scalarreturns invalid block for DataOnFaces and DataOnVertices.
See also
Added in version 3.12.
- Parameters:
index (QgsMeshDatasetIndex)
faceIndex (int)
count (int)
- Return type:
- abstract datasetCount(self, groupIndex: int) int [source]¶
Returns number of datasets loaded in the group
- Parameters:
groupIndex (int)
- Return type:
int
- abstract datasetCount(self, index: QgsMeshDatasetIndex) int [source]
Returns number of datasets loaded in the group
- Parameters:
index (
QgsMeshDatasetIndex
)- Return type:
int
- abstract datasetGroupCount(self) int [source]¶
Returns number of datasets groups loaded
- Return type:
int
- abstract datasetGroupMetadata(self, groupIndex: int) QgsMeshDatasetGroupMetadata [source]¶
Returns dataset group metadata
- Parameters:
groupIndex (int)
- Return type:
- abstract datasetGroupMetadata(self, index: QgsMeshDatasetIndex) QgsMeshDatasetGroupMetadata [source]
Returns dataset group metadata
- Parameters:
index (
QgsMeshDatasetIndex
)- Return type:
- datasetIndexAtTime(self, referenceTime: QDateTime | datetime.datetime, groupIndex: int, time: int, method: QgsMeshDataProviderTemporalCapabilities.MatchingTemporalDatasetMethod) QgsMeshDatasetIndex [source]¶
Returns the dataset index of the dataset in a specific dataset group at
time
from thereference
time- Parameters:
referenceTime (Union[QDateTime, datetime.datetime]) – the reference time from where to find the dataset
groupIndex (int) – the index of the dataset group
time (int) – the relative time from reference time
method (QgsMeshDataProviderTemporalCapabilities.MatchingTemporalDatasetMethod) – the method used to check the time
- Return type:
- Returns:
the dataset index
- datasetIndexInTimeInterval(self, referenceTime: QDateTime | datetime.datetime, groupIndex: int, time1: int, time2: int) List[QgsMeshDatasetIndex] ¶
Returns a list of dataset indexes of the dataset in a specific dataset group that are between
time1
andtime2
from thereference
time- Parameters:
referenceTime (Union[QDateTime, datetime.datetime]) – the reference time from where to find the dataset
groupIndex (int) – the index of the dataset group
time1 (int) – the first relative time of the time intervale from reference time
time2 (int) – the second relative time of the time intervale from reference time
- Return type:
List[QgsMeshDatasetIndex]
- Returns:
the dataset index
Added in version 3.22.
- abstract datasetMetadata(self, index: QgsMeshDatasetIndex) QgsMeshDatasetMetadata [source]¶
Returns dataset metadata
- Parameters:
index (QgsMeshDatasetIndex)
- Return type:
- abstract datasetValue(self, index: QgsMeshDatasetIndex, valueIndex: int) QgsMeshDatasetValue [source]¶
Returns vector/scalar value associated with the index from the dataset To read multiple continuous values, use
datasetValues()
See
QgsMeshDatasetMetadata.isVector()
orQgsMeshDataBlock.type()
to check if the returned value is vector or scalarReturns invalid value for DataOnVolumes
See also
- Parameters:
index (QgsMeshDatasetIndex)
valueIndex (int)
- Return type:
- abstract datasetValues(self, index: QgsMeshDatasetIndex, valueIndex: int, count: int) QgsMeshDataBlock [source]¶
Returns N vector/scalar values from the index from the dataset
See
QgsMeshDatasetMetadata.isVector()
orQgsMeshDataBlock.type()
to check if the returned value is vector or scalarReturns invalid block for DataOnVolumes. Use
QgsMeshLayerUtils.datasetValues()
if you need block for any type of data typeAdded in version 3.6.
- Parameters:
index (QgsMeshDatasetIndex)
valueIndex (int)
count (int)
- Return type:
- abstract extraDatasets(self) List[str] [source]¶
Returns list of additional dataset file URIs added using
addDataset()
calls.- Return type:
List[str]
- abstract isFaceActive(self, index: QgsMeshDatasetIndex, faceIndex: int) bool [source]¶
Returns whether the face is active for particular dataset
For example to represent the situation when F1 and F3 are flooded, but F2 is dry, some solvers store water depth on vertices V1-V8 (all non-zero values) and set active flag for F2 to
False
. V1 —- V2 —- V5—–V7 | F1 | F2 | F3 | V3 —- V4 —- V6—–V8- Parameters:
index (QgsMeshDatasetIndex)
faceIndex (int)
- Return type:
bool
- abstract persistDatasetGroup(self, path: str | None, meta: QgsMeshDatasetGroupMetadata, datasetValues: Iterable[QgsMeshDataBlock], datasetActive: Iterable[QgsMeshDataBlock], times: Iterable[float]) bool [source]¶
Creates a new dataset group from a data and persists it into a destination path
On success, the mesh’s dataset group count is changed
- Parameters:
path (Optional[str]) – destination path of the stored file in form DRIVER_NAME:path
meta (
QgsMeshDatasetGroupMetadata
) – new group’s metadatadatasetValues (Iterable[QgsMeshDataBlock]) – scalar/vector values for all datasets and all faces/vertices in the group
datasetActive (Iterable[QgsMeshDataBlock]) – active flag values for all datasets in the group. Empty array represents can be used when all faces are active
times (Iterable[float]) – times in hours for all datasets in the group
- Return type:
bool
- Returns:
True
on failure,False
on success
Note
Doesn’t work if there is “:” in the path (e.g. Windows system)
Added in version 3.6.
Deprecated since version 3.12.3.
- abstract persistDatasetGroup(self, outputFilePath: str | None, outputDriver: str | None, meta: QgsMeshDatasetGroupMetadata, datasetValues: Iterable[QgsMeshDataBlock], datasetActive: Iterable[QgsMeshDataBlock], times: Iterable[float]) bool [source]
Creates a new dataset group from a data and persists it into a destination path
On success, the mesh’s dataset group count is changed
- Parameters:
outputFilePath (Optional[str]) – destination path of the stored file
outputDriver (Optional[str]) – output driver name
meta (
QgsMeshDatasetGroupMetadata
) – new group’s metadatadatasetValues (Iterable[QgsMeshDataBlock]) – scalar/vector values for all datasets and all faces/vertices in the group
datasetActive (Iterable[QgsMeshDataBlock]) – active flag values for all datasets in the group. Empty array represents can be used when all faces are active
times (Iterable[float]) – times in hours for all datasets in the group
- Return type:
bool
- Returns:
True
on failure,False
on success
Added in version 3.12.3.
- abstract persistDatasetGroup(self, outputFilePath: str | None, outputDriver: str | None, source: QgsMeshDatasetSourceInterface | None, datasetGroupIndex: int) bool [source]
Saves a an existing dataset group provided by
source
to a file with a specified driverOn success, the mesh’s dataset group count is changed
- Parameters:
outputFilePath (Optional[str]) – destination path of the stored file
outputDriver (Optional[str]) – output driver name
source (Optional[QgsMeshDatasetSourceInterface]) – source of the dataset group
datasetGroupIndex (int) – index of the dataset group in the
source
- Return type:
bool
- Returns:
True
on failure,False
on success
Added in version 3.16.