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: