如何在QGIS项目打开时自动更新Mesh图层属性值?
能否在项目打开时(通过Python宏或其他方式)执行这两项操作?是否可行?


更新内容
对于第一种方法,仅在不修改符号系统时有效(即使颜色刻度字段已失效):
layer = iface.activeLayer() layer.reload() iface.layerTreeView().refreshLayerSymbology(layer.id())
我尝试了以下代码:
layer = iface.activeLayer() for g in layer.datasetGroupsIndexes(): if layer.datasetGroupMetadata(QgsMeshDatasetIndex(g,0)).name().startswith("Total precipitation"): maxVal = layer.datasetGroupMetadata(QgsMeshDatasetIndex(g,0)).maximum() minVal = layer.datasetGroupMetadata(QgsMeshDatasetIndex(g,0)).minimum() print(maxVal, " ", minVal) mesh_renderer = layer.rendererSettings() mesh_renderer.setActiveScalarDatasetGroup(g) scalar_settings = mesh_renderer.scalarSettings(g) scalar_settings.setClassificationMinimumMaximum(minVal,maxVal) mesh_renderer.setScalarSettings(g,scalar_settings) layer.setRendererSettings(mesh_renderer) iface.layerTreeView().refreshLayerSymbology(layer.id())
该代码仅能修改最大值和最小值,无法修改其他属性。

内容的提问来源于stack exchange,提问作者Giovanni
相关产品推荐
相关产品推荐

