banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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 sad

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

 

Pied de page des forums

Powered by FluxBB