I have a VB script used for caluculating field data, but need it in Python. Here is the VB Script:
Dim a
If ( [DA_LU_SOIL.SOIL] ="B") Then
a= [CN_Reference.B]
elseif ( [DA_LU_SOIL.SOIL] ="C") Then
a= [CN_Reference.C]
elseif ( [DA_LU_SOIL.SOIL] ="D") Then
a= [CN_Reference.D]
end if
Here are two ways- not sure what your fields are so replace them as needed:
if DA_LU_SOIL.SOIL =="B":
a = CN_Reference.B
elif DA_LU_SOIL.SOIL == "C":
a = CN_Reference.C
elif DA_LU_SOIL.SOIL == "D":
a = CN_Reference.D
# or
valDict = {"B": CN_Reference.B,
"C": CN_Reference.C,
"D": CN_Reference.D}
a = valDict.get(DA_LU_SOIL.SOIL)
You helped get me closer but now I'm getting this error, any tips?
Thanks a ton.
calculate-field-examples - Check out the Calculate fields using logic section.
In the first block (expression) you need to call the function that you define in the Code Block.
SoilsUnion.CN =
calcfunction(!Soils.Union3_HSG!, !CN_Reference.A!, !CN_Reference.B!, !CN_Reference.C!, !CN_Reference.D!)
(you may need to remove the !. Easiest way is to just double click on the field and Pro will put it in the argument with the right decoration.)
Code Block:
def calcfunction(checkField, refA, refB, refC, refD):
if checkField =="A":
return refA
elif checkField =="B":
return refB
elif checkField == "C":
return refC
elif checkField == "D":
return refD