Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Fri 18 April 2014 10:28

Mak6
Participant occasionnel
Lieu: Paris
Date d'inscription: 1 Apr 2013
Messages: 37

Calcul des valeurs de champs à l'aide de logique avec Python

Bonjour,

Je viens vers vous car j'ai un petit soucis de requête python.

Je voudrais mettre à jour une colonne dans ma table. En gros en exemple pour commencer : "si la valeur du champ est égale à 0 retourner la valeur 1 et si la valeur du champ est égale à 3 retourner la valeur 2"


def Reclass( !LIBELONG! ):
  if (!LIBELONG! = 0):
    return 1
  elif (!LIBELONG! =3):
    return 2


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Fri 18 April 2014 11:10

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: Calcul des valeurs de champs à l'aide de logique avec Python

Bonjour,
L'opérateur de comparaison en python n'est pas "=" mais "==".
il vous faut donc doubler les "=" dans vos conditions.
De plus à l'intérieur de votre fonction def Reclass, il ne faut pas passer entre paramètre le nom de votre champ mais un nom de variable choisit par vos soins (toto par exemple) et l'utiliser ensuite dans votre fonction if toto==0 : ...

Tout ceci est très bien expliqué dans l'aide de la calculatrice arcgis.
A+
Nicolas GRANIER

Hors ligne

 

#3 Fri 18 April 2014 11:30

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 989
Site web

Re: Calcul des valeurs de champs à l'aide de logique avec Python

Bonjour,
De plus vous avez des erreurs en syntaxe, à tester :

Code:

def Reclass(LIBELONG):
  if LIBELONG == 0:
    return 1
  elif LIBELONG ==3:
    return 2

LIBELONG=
Reclass(!LIBELONG!)

Martin

Hors ligne

 

#4 Fri 18 April 2014 12:17

Mak6
Participant occasionnel
Lieu: Paris
Date d'inscription: 1 Apr 2013
Messages: 37

Re: Calcul des valeurs de champs à l'aide de logique avec Python

Merci bcp de votre réponse je sens que j'avance mais il y a toujours un blocage...
J'ai un autre exemple.

Code:

def Reclass (code_insee) :
  if code_insee == 80011:
    return 1
  elif code_insee == 80024:
    return 2

code_insee =
Reclass(!code_insee!)

comprend pas j'ai essayé plusieurs fois mais nan rien..

Hors ligne

 

#5 Fri 18 April 2014 12:20

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 989
Site web

Re: Calcul des valeurs de champs à l'aide de logique avec Python

La ligne :

Code:

Reclass(!code_insee!)

est à mettre dans la case du bas dans la calculette de champs avancée.
Votre champs !code_insee! est-il bien numérique?

Dernière modification par nitram (Fri 18 April 2014 12:21)

Hors ligne

 

#6 Wed 23 April 2014 10:46

Mak6
Participant occasionnel
Lieu: Paris
Date d'inscription: 1 Apr 2013
Messages: 37

Re: Calcul des valeurs de champs à l'aide de logique avec Python

Ca ne fonctionne toujours pas mais c'est pas grave je vais procéder en sélection par groupe. Merci beaucoup pour vos réponses smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB