python - 如何使用 QGIS/Python 更改具有特定值的 Shapefile 中的属性

标签 python gis shapefile qgis

我想使用 QGIS 中的 Python Console 将 Shapefile 中的所有属性更改为某个值。 我有一个名为“ANB”的字段,我想更改例如“3”中的值“2”。

我知道如何访问图层并选择我想要的值:

layer=QgsVectorLayer("C:.../Briefkasten.shp","briefkasten","ogr")

selection=layer.getFeatures(QgsFeatureRequest().setFilterExpression(u' "ANB"=2'))

但我不知道如何进行。

有人可以帮助我吗? 非常感谢!

问候罗伯特

最佳答案

在 Tom 的帮助下我找出了正确的代码(德语评论,抱歉)

#####Vektorlayer (Shape) in QGIS laden:

layer=QgsVectorLayer("C:/Users/robert 2/Documents/QGIS_Python/Briefkasten.shp","briefkasten","ogr")
QgsMapLayerRegistry.instance().addMapLayers([layer])


#####Attribut aus Shape abfragen

layer=QgsVectorLayer("C:/Users/.../QGIS_Python/Briefkasten.shp","briefkasten","ogr")
features=layer.getFeatures()
f=features.next()
f.attributes()

##Index von bestimmten Spaltennamen finden um den später ansprechen zu können (ANB beinhaltet dann Index als Zahl) 
ANB=f.fields().indexFromName('ANB')

## nur ein bestimmtes Attribut aus einer Spalte auswählen und anzeigen lassen
selection=layer.getFeatures(QgsFeatureRequest().setFilterExpression(u' "ANB"=2'))

## selektierte Werte updaten:

layer.startEditing()
for feat in selection:
  layer.changeAttributeValue(feat.id(), ANB, 3)

layer.commitChanges()

关于python - 如何使用 QGIS/Python 更改具有特定值的 Shapefile 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48121126/

相关文章:

python - 使用Python的_winreg写入DWORD值?

python - Pandas 分组计数并填充无计数为0

一流属性访问的 Python 自定义初始化

python - 在 Python/GeoPandas 中组合 shapefile

javascript - 如何在传单 map 上制作动画形状

mysql - 查找两个纬度/经度点之间距离的最快方法

r - 如何使用 R 获取距离点最近的关联多边形的信息?

python - 读取目录和子目录中的所有 json 文件和文件内容

r - 打开shapefile时出错

python - 使用 python 在国家 map 上绘制数据的最简单方法