Suite

VB Script ou Python pour Field Calculator lors de l'utilisation de supérieur/inférieur à ?


Ce que j'ai : J'ai 4 champs pour mes plages d'adresses. L_ADD_FROM, R_ADD_FROM, L_ADD_TO & R_ADD_TO (tous dans le type de champ DOUBLE).

Ce dont j'ai besoin : La valeur moindre de L_ADD_FROM et R_ADD_FROM à remplir dans un champ appelé FROMADDRESS.

J'ai fait de nombreuses recherches, essayant Python et VB Script sans beaucoup de chance. Quelle est la meilleure méthode pour cela ?


L'approche suivante, à l'aide de l'analyseur Python, sélectionne leminvaleur à partir d'une liste de valeurs d'entrée.

min(!L_ADD_FROM!, !R_ADD_FROM!)


Cliquez avec le bouton droit sur FROMADDRESS, comme vous souhaitez le remplir, et ouvrez le calculateur de champ.

  • Vérifier la Python bouton
  • Vérifier Afficher le bloc de code

Maintenant, dans la plus grande zone, vous allez insérer cette fonction :

def findSmallest(l_add, r_add) : si l_add < r_add : retourne l_add else : retourne r_add

Et dans la plus petite partie sous le "code de script pré-logique", vous appellerez cette fonction, comme ceci :

findSmallest(!L_ADD_FROM!, !R_ADD_FROM!)

Cela va parcourir chaque ligne du tableau et mettre la valeur de R_ADD_FROM dans l_ajouter et la valeur de R_ADD_FROM dans r_ajouter, puis il comparera les deux. Si l_add est plus petit, il l'écrira dans FROMADDRESS (c'est-à-dire qu'il revenir it), et s'il ne l'est pas (c'est-à-dire s'il est plus grand), il renverra l'autre valeur.

Il n'y a pas de bien ou de mal. Vous pouvez sûrement le faire avec VB Script, mais entrer dans Python est une décision plus intelligente car c'est (devenant) la lingua franca des scripts SIG.