#1 Fri 19 March 2021 17:50
- jeremy SERIEYE
- Participant occasionnel
- Date d'inscription: 19 Mar 2021
- Messages: 30
QGIS: Calculatrice de champs dans console python
Bonjour,
je cherche à intégrer le traitement "Calculatrice de champ" dans ma console python.
Je recherche le nom du traitement à utiliser de type :
processing.run("qgis:xxxxxxx"
Merci!
Hors ligne
#2 Fri 19 March 2021 21:54
- Olivier Pompier
- Participant occasionnel
- Date d'inscription: 8 Sep 2013
- Messages: 49
Re: QGIS: Calculatrice de champs dans console python
Bonjour,
La liste des algorithmes peut être affichée via ce script
Code:
for alg in QgsApplication.processingRegistry().algorithms(): print("{}:{} --> {}".format(alg.provider().name(), alg.name(), alg.displayName()))
Mais je pense pas que l'algorithme Calculatrice de champs existe, je me trompe peut être.
Hors ligne
#3 Fri 19 March 2021 23:59
Re: QGIS: Calculatrice de champs dans console python
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-intr … ld-values/
Cordialement
Hors ligne
#4 Mon 22 March 2021 09:39
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3946
Re: QGIS: Calculatrice de champs dans console python
Bonjour,
Je recherche le nom du traitement à utiliser de type :
processing.run("qgis:xxxxxxx"
Dans la boîte à outils traitements, amenez la souris au-dessus de l'algorithme que vous souhaitez utiliser, patientez un tout petit peu et vous verrez s'afficher son id.
Et pour info, "native" et "qgis" se valent. De mémoire, "native" sert juste (aux développeurs) à identifier que le code source de l'algorithme n'est plus en python mais a été porté en c++.
Hors ligne
#5 Mon 22 March 2021 10:59
- jeremy SERIEYE
- Participant occasionnel
- Date d'inscription: 19 Mar 2021
- Messages: 30
Re: QGIS: Calculatrice de champs dans console python
Merci à tous, j'ai bien trouvé l'ID cependant impossible de faire fonctionner ce dernier :
import processing
processing.run("qgis:fieldcalculator",{'INPUT': 'D:/couleur/test_couleur/lignes.shp','FIELD_NAME': 'toto','FIELD_TYPE': 2,'FIELD_LENGTH': 254,'FIELD_PRECISION': 3, 'NEW_FIELD': True, 'FORMULA': '$id+1','OUTPUT': 'memory' })
Vous trouverez en PJ les différents codes erreurs.
Dernière modification par jeremy SERIEYE (Mon 22 March 2021 10:59)
Hors ligne
#6 Mon 22 March 2021 14:27
- antonio.andrade
- Participant occasionnel
- Date d'inscription: 9 Feb 2021
- Messages: 17
Re: QGIS: Calculatrice de champs dans console python
Bonjour,
Après avoir testé avec QGIS 3.14, je pense qu'il manque un ":" après memory :
Code:
import processing processing.run("qgis:fieldcalculator",{'INPUT': 'D:/couleur/test_couleur/lignes.shp','FIELD_NAME': 'toto','FIELD_TYPE': 2,'FIELD_LENGTH': 254,'FIELD_PRECISION': 3, 'NEW_FIELD': True, 'FORMULA': '$id+1','OUTPUT': 'memory:' })
Je n'ai pas d'explication sur la signification des ":"...
Antonio
Hors ligne
#7 Mon 22 March 2021 14:39
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3946
Re: QGIS: Calculatrice de champs dans console python
Autre astuce: menu Traitements --> Historique vous affiche la liste des commandes Python envoyées lorsque vous utilisez l'interface graphique pour exécuter des algorithmes. Il suffirait donc d'en lancer un avec les paramètres voulus puis recopier l'expression et adapter/appliquer dans la console ou votre script...
Hors ligne
#8 Mon 22 March 2021 15:01
- jeremy SERIEYE
- Participant occasionnel
- Date d'inscription: 19 Mar 2021
- Messages: 30
Re: QGIS: Calculatrice de champs dans console python
Merci Antonio pour les ":" manquants.
Merci à toi aussi SANTANNA pour l'historique des commandes !
Hors ligne