Suite

Remplir le champ de chaîne en fonction de la valeur numérique du champ numérique dans ArcGIS Field Calculator ?


Je suis nouveau sur Python et j'essaie d'écrire une simple instruction if then dans Field Calculator dans ArcGIS 10.2.2 qui prendra les valeurs d'un champ numérique et les ajoutera à un champ de chaîne. Je n'arrive pas à savoir quelle fonction python utiliser. Lorsque j'essaie ce code, cela fonctionne mais toutes les valeurs de mon champ de texte deviennent "N/A".

Voici ce que j'ai mis dans le code de script pré-logique :

def change(Valeur): if Value == 1 : return "Développé" elif Value == 2 : return "Agriculture" elif Value == 3: return "Forested" elif Value == 4: return "Water" elif Value == 5 : retourne "Wetlands" else : return "N/A"


Votre problème était simplement que vous passiez le mauvais champ à la fonction. Pensez-y de cette façon:

Le calculateur de champs produit une nouvelle valeur pour chaque ligne d'un champ donné (le champ affiché juste au-dessus de l'expression où il est écrit "Type =") en fonction de l'expression. Dans l'expression, vous pouvez référencer d'autres champs en utilisant!Nom de domaine!. En utilisant le bloc de code, vous pouvez créer des fonctions. Vous pouvez référencer ces fonctions dans l'expression, ce qui vous donne la possibilité de transmettre des valeurs d'autres champs aux fonctions que vous avez écrites dans le bloc de code.


Votre logique de code semble correcte, il vous suffit de changer le script du bas en :

Type = changer (Valeur)

Vous obtenez un "N/A" comme valeur sur toutes vos colonnes parce que vous l'exécutez sur la colonne de données [Type] où aucune des valeurs n'est comprise entre 1 et 5 comme prévu, au lieu d'exécuter cette fonction dans la colonne [Valeur], où se trouvent ces nombres (je suppose).


Voir la vidéo: ArcGIS Pro: Field Calculator u0026 Mathematic Formulas (Octobre 2021).