2

I have two columns in my shape file with text values called GP and Z which contain abbreviations and a third column called UpOrDown which is meant to hold the binary 0-1 generated from the if-then statement.

I am struggling in a few areas that likely are impeding my own research and resolution of this issue.

What is the highlighted area called? I may be using the wrong syntax here but I'm not sure how to find this out because you don't know what you don't know!

enter image description here

Next, I want to use the GP and Z columns only when they are both specific values. For example, if GP is DT and Z is CG I want to output a 1 into the UpOrDown column but if GP is CIC and Z is A I want to output a zero. The categories are extensive and I'm not sure if there is a way to make a library of all the GP and Z pairs that would be 1 or 0 due to my limited python understanding.

Is there any clarity on this that anyone might provide (for a novice)?

PolyGeo
65.5k29 gold badges115 silver badges349 bronze badges
asked May 20, 2020 at 15:24

1 Answer 1

3

Code Block is where you will define your reclass function. It should look something like this:

def reclass(GP, Z):
 if (GP == "DT" and Z == "CG"):
 UpOrDown = 1
 elif (GP == "CIC" and Z == "A"):
 UpOrDown = 0
 return UpOrDown

A good resource on how to use If-Then statements in Python can be found at the Python If ... Else page of w3schools.com.

A good resource on how to use the Code Block in ArcGIS Pro can be found at the Calculate Field Python examples page of its Online Help.

Some terms for the highlighted part of your screenshot include column name or field name. If you want a mathematical term for UpOrDown, it would be a Dependent Variable, because the value assigned to that cell on each row calculated depends on what happens on the right side of the equation.

PolyGeo
65.5k29 gold badges115 silver badges349 bronze badges
answered May 20, 2020 at 16:20
5
  • 1
    Keep in mind that as written in my answer, the code will only calculate a 0 or 1 value for those two scenarios. If CP and Z combinations equal anything else (such as GP == "DT" and Z == "DT", or CP == "NOPE" and Z == "ALSO NOPE"), the code will skip that row and not change the value in UpOrDown. So, if UpOrDown was null, it will stay null. If UpOrDown was 256, it will stay 256. Commented May 20, 2020 at 16:25
  • Which means I have 136 nested elif statements to make I think. Do you happen to know what the highlighted area in the screenshot is called? Commented May 20, 2020 at 16:59
  • That is simply the column name, field name, or if we want to use mathematical terms, it's the dependent variable. Commented May 20, 2020 at 17:19
  • UpOrDown = reclass(!UpOrDown!) ... def reclass(Z,GP): ... if (GP == "DT" and Z == "CG"): UpOrDown = 1 ... this isn't working to change the UpOrDown Column at all -- all values are still NULL. Thoughts? Commented May 20, 2020 at 18:57
  • @Therow, did you manage to get this to work? If not, we can move to chat where it'll be easier to share screenshots of the steps you're taking. Commented May 21, 2020 at 16:29

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.