Creating a New field with Conditional Statement

Viewed 19

I'm trying to create a conditional statement and add the resulting values into the newly created field. The statement references two fields in the same attribute table. The field I need is created, but no information in the field. Code is:

layer = QgsVectorLayer(fnCa, '', 'ogr')

QgsProject.instance().addMapLayer(layer)
pv = layer.dataProvider()
pv.addAttributes([QgsField('Vulnerability', QVariant.Double)])
layer.updateFields()

fld_idx = layer.fields().lookupField('Vulnerability')

Vuln = {'joined_Dis':QgsProperty.fromValue("joined_Dis")
'Veg%': QgsProperty.fromValue("Veg%'"),\
'vulnerability':QgsProperty.fromField("vulnerability")}


features = layer.getFeatures()
for feature in features : 

  if feature["joined_Dis"]<20 and feature["Veg%"]>25:
    vulnerability = "Medium"
  elif feature["joined_Dis"]<25 and feature["Veg%"]<30 :
    vulnerability = "Low"
  elif feature["joined_Dis"]>20:
    vulnerability = "Low"
    
pv.changeAttributeValues(Vuln)*
0 Answers
Related