Message posté par : arnaudp
----------------------------------------
Bonjour Conejo,
Nous mettre à jour le champ avec un script python :
On ajoute les à une liste les identifiants rencontrés pour les compter. Et nous éditons un
champ durant le traitement.
-----------------
Code :
pyloneID = [] # On défini un liste qui va contenir les identifants des pylones et nous
permettre des les compter.
layer = iface.activeLayer() # On récupère la couche active.
if layer.isEditable() : # On s'assure qu'elle soit en mode Édition
# on créer un champ 'firstOccur' qui va contenir le 0 ou le 1 en fonction
layer.dataProvider().addAttributes([QgsField('firstOccur',QVariant.Int)])
layer.updateFields()
# Toutes les valeurs du champs sont NULL
features = layer.getFeatures()
for feature in features:
print('Identifiant du pylône : '+str(feature['Pylone']))
pyloneID.append(feature['Pylone']) # On ajoute l'identifiant à notre
liste temporaire
print('Nombre d\'occurrence dans la liste :
'+str(pyloneID.count(feature['Pylone']))) # On contre le nombre de fois que
l'identifiant courrant apparait dans la liste
if pyloneID.count(feature['Pylone']) = 1 :
feature['firstOccur'] = 1 # Si on rencontre l'identifiant pour la
première fois on défini le champ à 1
else:
feature['firstOccur'] = 0 # Sinon nous le mettons à 0
layer.updateFeature(feature) # Nous mettons à jour l'entité
else :
print('La couche n\'est pas éditable. On abandonne.')
print('bye-bye')
-----------------
https://imgur.com/a/SBwqzdD
J'espère que ça résous le problème.
Arnaud
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=368711#p368711
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