Suite

Le script python du calculateur de champ Arcmap ne renvoie aucune donnée


J'exécute ArcMap 10.2 J'ai 4 champs avec lesquels je travaille. beaucoup ont des entrées en double. afin de trouver la seule entrée correcte parmi tous les doublons, j'essaie de calculer les erreurs. Mon script s'exécute, mais je ne reçois aucune donnée renvoyée dans le champ GeoloCode. Pourquoi?

bloc de code :

def cal(GeoloCode) : if ((House_Num >= FROM_ADDR) et (House_Num <= TO_ADDR)) : return 88 else : return 1

Expression

cal(!GeolocCode!)

vous devez transmettre les champs que vous utilisez dans votre bloc de code en tant qu'arguments à la fonction, plutôt que le champ que vous calculez. Donc votre code pourrait ressembler à ceci :

def cal(House_Num, FROM_ADDR, TO_ADDR) : if ((House_Num >= FROM_ADDR) et (House_Num <= TO_ADDR)) : return 88 else : return 1

Expression:

cal(!House_Num!, !FROM_ADDR!, !TO_ADDR!)

Si vous ne voulez pas utiliser le bloc de code, vous pouvez en fait accomplir le tout à l'intérieur du bloc d'expression avec une expression conditionnelle et le fait que

x >= y et x <= zest équivalent ày <= x <= z.

88 si !FROM_ADDR! <= !House_Num! <= !TO_ADDR! autre 1

Certaines personnes n'aiment pas les ternaires en python, alors si cela ne vous semble pas logique à première vue, rejoignez le club ! j'aime l'utiliser dansCalculer le champpuisque vous n'avez pas à vous soucier du bloc de code.


Voir la vidéo: 1 Basic Arcmap Field Calculations Using Python (Octobre 2021).