Suite

Utiliser Python pour la calculatrice de champ ?


J'ai un problème avec Field Calculator, en utilisant ArcGIS 10.2. J'ai essayé d'écrire une déclaration mais je ne sais pas ce qui ne va pas.

J'ai deux colonnes :

Le premier contient un code numérique. Chaque code représente des données textuelles. Par exemple : « 1 » signifie « arbres, etc. »

La deuxième colonne (chaîne) est vide et doit contenir des données textuelles. Pourriez-vous m'aider avec Python ?


Votre code n'est pas du code Python correctement formaté :

  1. L'indentation est importante en Python, car elle définit le début et la fin des fonctions et des conditions.
  2. Tu as besoin d'un:après la définition de la fonction
  3. L'opérateur correct pour la comparaison d'égalité est le==et pas simplement=qui attribue une valeur à une variable.

De plus, en ce qui concerne le calculateur de champ dans ArcGIS, si vous utilisez une fonction pour calculer votre valeur, vous devrez également cocher la case "Afficher le bloc de code".

Dans votre cas, vous avez deux possibilités :

  1. Votre instruction if/else est très simple, vous pouvez donc la réécrire en une seule ligne Python, et il n'y a pas besoin d'un bloc de code :

    "SampleText" si !Coded! == 1 sinon "SampleText_2"
  2. En utilisant un bloc de code, avec la case à cocher du bloc de code activée, le bloc de code doit être :

    def Text_d(Coded): if Coded == 1: return "SampleText" else: return "SampleText_2"

    puis dans la case "Coded=" ci-dessous, vous devrez écrire :

    Text_d(!Codé!)

    Cette deuxième méthode vous donne la possibilité d'utiliser de nombreuses fonctionnalités Python telles que les conditions imbriquées :

    def Text_d(Coded): if Coded == 1 : retourne "SampleText" elif Coded == 2: retourne "SampleText_2" else : retourne "SampleText_3"