[QGIS-Developer] Mesh layer
Jorge Almerio
jorgealmerio at yahoo.com.br
Sat Apr 25 08:32:20 PDT 2020
Hi everyone,
Sometimes I got "NaN" return when trying to get scalar value to a point from a Mesh layer. I guess the reason is that it was not rendered previously as said in the documentation.
<https://qgis.org/api/classQgsMeshLayer.html#a07cb62f04b64979500d3873afb580216>
QgsMeshDatasetValue:
"Note:
It uses previously cached and indexed triangular mesh and so if the layer has not been rendered previously (e.g. when used in a script) it returns NaN value"
When I turn ON and OFF the loaded mesh layer in the active project it Works!
I would like to know if there is a proper way to render the mesh layer, before get values.
Below is my code:
proj = QgsProject.instance()
layerPto = iface.activeLayer() # a Point layer
layer = proj.mapLayersByName("mesh01")[0] # a Mesh layer
dataset = QgsMeshDatasetIndex(0,0)
for feat in layerPto.getSelectedFeatures():
ptoGeo = feat.geometry()
pt = ptoGeo.asPoint()
value = layer.datasetValue(dataset, pt).scalar()
print('elevation={}'.format(value))
More information about the QGIS-Developer
mailing list