Message posté par : Thomas Gratier (thomas.gratier(a)gmail.com)
----------------------------------------
Bonsoir,
Voici un recette sur comment mettre à jour en utilisant la calculatrice de champs mais il
ne s'agit pas d'un traitement dans le module processing.
-----------------
Code :
# En admettant que vous utilisiez la coucche que vous avez sélectionnée
vl = iface.activelayer()
# ou (décommenter ci-dessous et commenter au dessus)
# vl = QgsProject.instance().mapLayersByName('nom de votre couche')[0]
context = QgsExpressionContext()
context.appendScopes(QgsExpressionContextUtils.globalProjectLayerScopes(vl))
# Mettre votre expression
votre_expression = 'numerateur/denominateur'
expression1 = QgsExpression(votre_expression)
with edit(vl):
for f in vl.getFeatures():
context.setFeature(f)
f['new_col'] = expression1.evaluate(context)
# ou
# f['existing_col'] = expression1.evaluate(context)
vl.updateFeature(f)
-----------------
PS: j'ai repris ce tutoriel en anglais
https://anitagraser.com/pyqgis-101-introduction-to-qgis-python-programming-…
Cordialement
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=341508#p341508
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net