#1 Thu 22 February 2018 12:12
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
QGIS: Script Python - Nom Fichier dans Champ
Bonjour,
je cherche à automatiser l’écriture du nom de la couche dans un champ, je sais le faire sous Arcgis, je voudrais pouvoir le faire sous QGIS.
Autrement dit, ce script (version Arcgis) en version QGIS:
import arcpy
mxd = arcpy.mapping.MapDocument ('current') #le mxd ouvert
df = arcpy.mapping.ListDataFrames(mxd, "Couches")[0] # le nom du bloc de donnée
for layer in arcpy.mapping.ListLayers(mxd): # liste les tables
cur = arcpy.UpdateCursor (layer)
for row in cur:
row.name = layer.name
cur.updateRow (row) # mise a jour du nom de la table dans un champ
Merci,
Aurélien.
Hors ligne
#2 Thu 22 February 2018 16:44
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: Script Python - Nom Fichier dans Champ
Bonjour,
peux-tu nous en dire plus ?
Le champs dont tu parles c'est le champs d'une couche en particulier ? Ou c'est un champs commun à l'ensemble des couches de ton projet ?
Cordialement,
Hors ligne
#3 Wed 28 February 2018 17:44
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
Re: QGIS: Script Python - Nom Fichier dans Champ
chaque couche a ce même champ
Hors ligne
#4 Fri 02 March 2018 17:12
Re: QGIS: Script Python - Nom Fichier dans Champ
Bonjour,
Voici une possibilité :
Code:
# -*- coding: utf-8 -* # A changer : le nom du champ nomChamp='leNomDuChamp' # Itération sur la liste des couches ouvertes for nom, couche in QgsMapLayerRegistry.instance().mapLayers().iteritems(): # récupération de l'index du champ dans la table attributaire IDChamp = couche.fieldNameIndex(nomChamp) # Mise en édition de la couche couche.startEditing() # itération sur les enregistrements de la couche for ligne in couche.getFeatures(): # Création de la nouvelle valeur à inscrire dans la table attribut = { IDChamp : couche.name() } # Écriture dans la couche couche.dataProvider().changeAttributeValues({ ligne.id() : attribut }) # Enregistrements des modifications couche.commitChanges()
J'ai volontairement mis des noms de variables explicites et commenté allègrement, mais n'hésite pas si tu as besoin de plus d'informations.
Bonne journée,
S.
Dernière modification par Sylther (Fri 02 March 2018 17:16)
Hors ligne
#5 Tue 06 March 2018 09:02
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
Re: QGIS: Script Python - Nom Fichier dans Champ
Super merci bcp Sylther !
Hors ligne