Guest User

Untitled

a guest
Jun 25th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. layer1 = QgsVectorLayer('...','layer1','ogr')
  2. layer2 = QgsVectorLayer('...','layer2','ogr')
  3. layer3 = QgsVectorLayer('...','layer3','ogr')
  4. layer4 = QgsVectorLayer('...','layer4','ogr')
  5. layer5 = QgsVectorLayer('...','layer5','ogr')
  6. layer6 = QgsVectorLayer('...','layer6','ogr')
  7. layers_edit = QgsProject.instance().mapLayersByName('layer1' and 'layer2' and 'layer3')
  8.  
  9. sa = layers.dataProvider().fieldNameIndex('area_calc')
  10.  
  11. Traceback (most recent call last):
  12. File "C:PROGRA~1QGIS3~1.0appsPython36libcode.py", line 91, in runcode
  13. exec(code, self.locals)
  14. File "<input>", line 1, in <module>
  15. AttributeError: 'list' object has no attribute 'dataProvider'
  16.  
  17. layers.startEditing()
  18. Traceback (most recent call last):
  19. File "C:PROGRA~1QGIS3~1.0appsPython36libcode.py", line 91, in runcode
  20. exec(code, self.locals)
  21. File "<input>", line 1, in <module>
  22. AttributeError: 'list' object has no attribute 'startEditing'
  23.  
  24. layers.dataProvider().addAttributes([QgsField ('eur1_km2',Variant.Double),QgsField('eur1_pol', QVariant.Double)])
  25. layers.updateFields()
  26.  
  27. idx=layers.dataProvider().fieldNameIndex('eur1_km2')
  28. idx1=layers.dataProvider().fieldNameIndex('eur1_pol')
  29.  
  30. for f in layers.getFeatures():
  31. f[idx] = 6
  32. attr_sa = f.attributes()[sa]
  33. attr_idx = f.attributes()[idx]
  34. f[idx1] = (attr_sa/1000000)*attr_idx
  35. layers.updateFeature( f )
  36.  
  37. layers.commitChanges()
  38.  
  39. layer_names = ['layer1', 'layer2', 'layer3']
  40.  
  41. for layers in QgsProject.instance().mapLayers().values():
  42. if layers.name() in layer_names:
  43. sa = layers.fields().lookupField('area_calc')
  44. # do more stuff
  45.  
  46. layer_edit = ['layer1', 'layer2','layer3']
  47. price = 6.0
  48. for layers in QgsProject.instance().mapLayers().values():
  49. if layers.name() in layer_edit:
  50. layers.dataProvider().addAttributes([QgsField('eur1_km2',QVariant.Double)])
  51. layers.dataProvider().addAttributes([QgsField('eur1_pol',QVariant.Double)])
  52. layers.updateFields()
  53. idx = layers.dataProvider().fieldNameIndex('eur1_km2')
  54.  
  55. layers.startEditing()
  56. for f in layers.getFeatures():
  57. f[idx] = price
  58. layers.updateFeature(f)
  59. idx = layers.dataProvider().fieldNameIndex('eur1_km2')
  60. idx1 = layers.dataProvider().fieldNameIndex('eur1_pol')
  61. sa = layers.dataProvider().fieldNameIndex('area_calc')
  62. attr_idx = f.attributes()[idx]
  63. attr_sa = f.attributes()[sa]
  64. f[idx1]=(attr_sa/1000000*attr_idx)
  65. layers.updateFeature(f)
  66.  
  67. layers.commitChanges()
  68.  
  69. else: print('NONE')
Add Comment
Please, Sign In to add comment