Utilisation du calculateur de champ avancé dans la console QGIS Python
Sep 09 2020
J'essaie de calculer la superficie à l'aide de la calculatrice de champ dans la console Python de QGIS.
Voici l'expression que j'ai écrite.
output8 = processing.runandload('qgis:advancedpythonfieldcalculator', "E:\GIS-Temp\Result\shapefile_2017\Clip1modified_2017.shp", "Area", 1, 5, 5, ' ', $geom.area(), "E:\GIS-Temp\Result\shapefile_2017\Clip2modified_2017.shp")
L'erreur est une erreur de syntaxe.
Réponses
3 BERA Sep 09 2020 at 18:55
Si vous utilisez qgis3, vous devez utiliser processing.runAndLoadResults()
something = processing.runAndLoadResults("qgis:advancedpythonfieldcalculator",
parameters={'INPUT':'C:/GIS/data/testdata/ak_riks.shp','FIELD_NAME':'areafield',
'FIELD_TYPE':1,'FIELD_LENGTH':10,'FIELD_PRECISION':3,'GLOBAL':'',
'FORMULA':'value = $geom.area()','OUTPUT':'C:/GIS/data/testdata/ak_riks_witharea2.shp'})
Notez les barres obliques dans les chemins ou utilisez la syntaxe brute, par exemple: r'C:\GIS\data\testdata\ak_riks.shp'
Une astuce consiste à exécuter l'outil manuellement puis à vérifier la syntaxe dans l'historique: