5

I am using ArcGIS 10.2.2. From a DEM, I have created a new raster showing slope using the slope tool. The color scheme was automatically classified into 9 tiers. What I want to do is query this raster to identify zones above and below 9 degrees to get a Boolean, true/false result. When I use the raster calculator to do this (by inputting "slope" >= 9) this does happen - but the entire area is defined as 1 (true) with no areas defined as false. Other times, the result is a raster with a color ramp representing values from high (1) to low (0) rather than classes.

Is there any way to get a true/false outcome that doesn't count everything as true?

What I intend to do is convert the zones with slope of over 9 degrees to vector polygons and then execute Euclidean distance from these polygons to define areas further away from the slopes as being less under their influence.

I'm somewhat new to GIS. Also, my knowledge of programming languages is non-existent at the minute.


  1. All layers in the data frame are projected using the TM65_Irish_Grid PCS.
  2. No z factor was included when deriving the slope from the DTM.
  3. The slope is measured in degrees.
  4. The slope values range from 0 to 41.29286575 (it has been rounded up a bit in the ToC; under properties the max. is longer - 41.29286575317383).

Screenshot of the DTM extract Screenshot of the slope raster Screenshot of raster calculator results

Screenshot of the DTM extract/ Screenshot of the slope raster/ Screenshot of raster calculator results

3
  • If you're using "slope" >= 90 all values should be false (0) not true (1) as your max slope is less than 90 (41.3). Are you actually using "slope" >= 90 as your expression? Do you mean "slope" >= 9?
    – user2856
    Commented Dec 29, 2014 at 11:24
  • Yes, sorry, it's the latter ("slope" >= 9). I'll go change that in the question now.
    – Milo
    Commented Dec 29, 2014 at 11:28
  • Everything looks fine in the screenshot: the final raster looks binary (black=0, white=1 according to the legend) and the true (=1) values appear to correspond closely to the slopes exceeding 9, according to your slope map. So what is the problem?
    – whuber
    Commented Dec 29, 2014 at 22:10

2 Answers 2

5

Based on your screenshots, everything is working properly and that's the result that you should be getting. Notice how all of the white areas in your 'steep_slopes' layer correspond with the red/orange areas (slopes > 9) in the slope layer.

The issue is that your result is not displayed correctly. To fix this, right click on your 'steep_slopes' layer, click properties, go to the symbology tab, and on the left side underneath 'Show:' click on 'Unique Values' (as opposed to Stretched). There should only be the two unique values, 0 and 1, so here you can assign colours and labels to each value.

So, the layer is correct, and you will be able to proceed with whatever you need to do next. It is not necessary to change the symbology to proceed, but doing so will allow you to visualize things better.

5
  • Thanks loads, I seem to be getting somewhere now. The only way the raster will let me change its symbology is through reclassification, which strangely seems to work sometimes and decide not to other times. Anyway, what I did after this was relaxed the slopes to six degrees, extracted these zones as polygons and used them to calculate Euclidean distance. One last question, if you don't mind: what if I want the lower values (closest to the slopes) to be the highest weighted for an MCE (so in effect the E. distance results to be flipped)? Thanks again!
    – Milo
    Commented Dec 29, 2014 at 22:18
  • It depends what tools you are using to do the MCE...If you are reclassifying all of the rasters in the MCE then running the raster calculator to generate the MCE layer, then you would simply reclassify your slope or steep_slopes layer.
    – ge0m3try
    Commented Dec 29, 2014 at 22:23
  • No, the other raster has been normalized from 0 to 1 with 1 being the most at-risk areas so that's how I'm trying to define this slope factor. Not sure what you mean by reclassifying the slope but I'll look into that, thank you. :)
    – Milo
    Commented Dec 29, 2014 at 22:54
  • 1
    What I mean is with your layer that has 0 and 1 values, you could run the reclassify tool on it and change 0 to 1 and 1 to 0.
    – ge0m3try
    Commented Dec 29, 2014 at 22:57
  • I get what you mean now, I'll try that. Thanks for the help!
    – Milo
    Commented Dec 29, 2014 at 23:56
2

I find that the raster calculator in newer versions of Arc has gotten very picky with formulas/syntax, and sometimes it just refuses to co-operate. First, try double checking your formula/syntax...if it's correct, try running the tool again.

You could also try using the reclassify tool on the raster and set ranges to receive a new value of 0 or 1. You could also use the Extract tool to separate certain values. Either of those options should isolate the areas with your desired slope for later conversion using the Raster to Polygon tool.

9
  • 1
    I'm confident enough that the formula "slope" >= 9 is correct, the same format worked fine with the DTM itself and came back with sensible true/false results. I just tried reclassify there now and it's doing nearly the same thing: almost all the raster is coming up as false with only tiny miniscule patches of 'true' showing. I'll try extract now. However, since it worked for the original DTM, I'm beginning to think the difference is in the data. If I open the attribute table for the DTM pixel values are shown but on the slope raster there is no att. table. Should this be causing the problem?
    – Milo
    Commented Dec 28, 2014 at 23:23
  • I'm not sure what could be causing the issue considering that the same thing happens with other methods. I could be wrong but I thought slope was expressed as a percentage...maybe try 0.09 as opposed to 9?
    – ge0m3try
    Commented Dec 29, 2014 at 16:20
  • 1
    The slope was originally measured in degrees but I tried modifying the query to 0.09 and it's still coming up with a raster that is almost entirely at the 0 value with only tiny patches of high (1) values and rather than having two classes, it's still expressed as a high-low range. So I tried creating the raster again in percent but got the same result. I've been using the spatial analyst tool. After trying to run an MCE and convert it to polygons and failing, I'm beginning to think there is something up with the raster itself. The DTM it was derived from worked fine though. Though the DTM...
    – Milo
    Commented Dec 29, 2014 at 18:28
  • 1
    The extracted DTM is 84.279222299, while the slope raster's pixel size is 50. I'm doing it on County Kilkenny in the south of Ireland. I've just uploaded the screenshots, couldn't get the descriptions for each right next to them but they are under the three screenshots. Also, on trying to classify the values, the program tells me that the classify renderer cannot initialize...possibly as there are too many unique values.
    – Milo
    Commented Dec 29, 2014 at 21:17
  • 1
    Looking at the DTM again, maybe there just are not that many instances of slopes over 9 degrees, I might relax the criteria and lower the slope because I was hoping for larger areas for results. Really, what I'm looking for is where steepness begins so that I can convert those blocks to polygons and then calculate Euclidean distance from them so that more level ground near steeper slopes gets a higher value than flat ground further away.
    – Milo
    Commented Dec 29, 2014 at 21:31

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.