I've been looking through these threads, i found something similar and thought it could be the answer, but it doen't seem to work for me...
I could do this the slow way with Select By Attributes, but It's time consuming and I will have to repeat it several times for other works.
I have a field called "Kultur" (String) with different codes (DG, A, FF, ...). I want to change this information into a numeric information, so i added a new field called "Kultur_Cl" (Short Integer).
In my case if "Kultur" is DG, "Kultur_Cl" should be 1. If "Kultur" is A, "Kultur_Cl" should be 2, ...
Here is what i tried :
And here is what it looks like in ArcMap:
Once it's done i would like to do : If "Kultur_Cl" = 1 then "Kultur_Pkt" = 15, if "Kultur_Cl" = 2 then "Kultur_Pkt" = 18, ... Would this go the same way, or is it different because there would only be numeric data?
Thanks for your help !!
Answer
first you need a double == for your test, simple = is for assignment, not testing
second you forgot the indentation and a semi-colon
def MyCalc(Kultur,DG):
if (Kultur == DG):
return 1
else:
return 2
third, DG must be identified as a string
MyCalc(!Kultur!,'DG')
it would go the same way with numeric values (you don't need quotes in this case)
No comments:
Post a Comment