#1 Thu 18 January 2024 16:31
- felixd
- Participant occasionnel
- Date d'inscription: 20 Jun 2017
- Messages: 46
[ARCMAP] Etiquette conditionnelle en python
Bonjour et meilleur voeux à tous,
Je souhaite rédiger un programme pyhton dans les expressions avancées des étiquettes.
Je dispose de champs 'logique' (0 ou 1) que j'aimerais faire ressortir en etiquette avec le nom du champ si la valeur du champ est à 1
Ci-dessous ce que j'ai renseigné:
Code:
def FindLabel ( [photo], [video] , [mnt] , [thermographie] , [photogrammetrie] , [modelisation3d] ): d={'Photo': [photo] ,'Video': [video] ,'MNT': [mnt] ,'Thermographie': [thermographie] ,'Photogrammétrie': [photogrammetrie] ,'Modelisation 3D': [modelisation3d] } dc={k: v for k, v in d.items() if v==1} listOfKeys = dc.keys() listOfKeys = list(listOfKeys) for key in listOfKeys: return(key)
Je passe pour un dictionnaire, que je convertis en list si la v==1
La vérification ARCMAP ne me renvoie pas d'erreur, mais rien ne s'affiche sur ma carte.
J'ai testé ce programme sur Python tutor qui est correct.
Help please.
Merci par avance.
Félix
Dernière modification par felixd (Thu 18 January 2024 16:34)
Hors ligne
#2 Fri 19 January 2024 09:02
- felixd
- Participant occasionnel
- Date d'inscription: 20 Jun 2017
- Messages: 46
Re: [ARCMAP] Etiquette conditionnelle en python
Bonjour,
Voici ci dessous un autre code qui genere une liste mais qui ne fonctionne toujours pas
Code:
def FindLabel ( [photo] , [video], [mnt] , [thermographie] , [photogrammetrie] , [modelisation3d] ): liste=[] if [photo] ==1: liste.append('Photo') if [video] ==1: liste.append('Video') if [mnt] ==1: liste.append('Relevé topo') if [thermographie] ==1: liste.append('Thermographie') if [photogrammetrie] ==1: liste.append('Photogrammétrie') if [modelisation3d] ==1: liste.append('Modélisation 3D') return('\n'.join(liste))
Merci pour votre aide
Hors ligne
#3 Fri 19 January 2024 14:20
- Olive 71
- Participant actif
- Date d'inscription: 10 Feb 2010
- Messages: 59
Re: [ARCMAP] Etiquette conditionnelle en python
Bonjour,
Je me demande si ArcMap est capable d'afficher directement une liste.
Peut-être essayer en passant par une chaine de caractères et non une liste ?
Olivier
Hors ligne