Usando calculadora de campo avançada no console QGIS Python

Sep 09 2020

Estou tentando calcular a área usando a calculadora de campo no console Python do QGIS.

Aqui está a expressão que escrevi.

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")

O erro vem como um erro de sintaxe.

Respostas

3 BERA Sep 09 2020 at 18:55

Se você estiver usando qgis3, você deve usar 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'})

Observe as barras nos caminhos ou use a sintaxe bruta, por exemplo: r'C:\GIS\data\testdata\ak_riks.shp'

Uma dica é executar a ferramenta manualmente e verificar a sintaxe no histórico: