我已经在pyqgis中编写了下面的python代码,该代码在一个~30MB的形状文件中循环。它添加一个属性,该属性包含基于另一个属性计算的特征。完全执行代码大约需要10分钟,这是否正常?有时它根本不执行它——QGIS只是永远加载(等待了30多分钟),直到我关闭它
shapefile获得了约130000个特征和27个属性
我的笔记本电脑有16GB内存和一个Intel Core i5-1135G7
代码:
from qgis.PyQt.QtCore import QVariant
from qgis.core import QgsProject
layer = QgsProject.instance().mapLayersByName("677_5334")[0]
iface.setActiveLayer(layer)
caps = layer.dataProvider().capabilities()
if caps & QgsVectorDataProvider.AddAttributes:
res = layer.dataProvider().addAttributes([QgsField("Stockwerke", QVariant.Double)])
layer.updateFields()
exp1 = QgsExpression('"HOEHEGEB"/3.5')
context = QgsExpressionContext()
context.appendScopes(\
QgsExpressionContextUtils.globalProjectLayerScopes(layer))
with edit(layer):
for f in layer.getFeatures():
context.setFeature(f)
f["Stockwerke"] = exp1.evaluate(context)
layer.updateFeature(f)
目前没有回答
相关问题 更多 >
编程相关推荐