Suite

Un script pour remplir un champ numérique dans Arcgis en fonction du contenu d'un champ de chaîne ?

Un script pour remplir un champ numérique dans Arcgis en fonction du contenu d'un champ de chaîne ?


J'ai un champ dans une table attributaire remplie d'expressions telles que "6S2Olch1E", "10S1B", "9B3S2Olch" et ainsi de suite. J'ai besoin de créer un champ numérique rempli uniquement de nombres associés à la lettre S de ces expressions (par exemple 6 si l'expression est "6S2Olch1E" ou 10 si c'est "10S1B"). Existe-t-il un moyen de le faire à l'aide d'un script dans Field Calculator ? Je ne suis pas programmeur.


Code autonome

def f(s): idx = s.upper().index('S') s = s[:idx] for i in reverse(range(len(s))): if s[i].isalpha() : s = s[i+1:] break if s.isdigit(): return int(s) else: return 0

Essai

imprimer f("S2Olch1E") #0 imprimer f("6S2Olch1E") #6 imprimer f("5B66S2Olch1E") #66 imprimer f("54F5456B666S2Olch1E") #666

Dans votre expression (Field Calculator), utilisez simplement :

f(!fieldName!)