I want to get the area from the DEM which is below 5000 and 3000. Actually I need those two areas for my Regression Model to calculate the discharge. In that case, how can I find out using python. I need to calculate in each cell of the stream segment. I have tried with Surface Volume tool but it is taking too long time as i need to calculate for all the cells along the stream segments. Is there any easy and fast way to get this information.


To extract cells below 5000 meters/any unit, you should use Con.

Write the SQL expression like "Value < 5000" (or change value to what you need).

This function can also be used in Python scripts.

  • Yes I have tried with that also but the problem in my case is I need to have watershed for each cell and use Con for that derived watershed which is taking too much time for whole stream... Can't I make it faster.. Is there a way to make those processes faster using Python. – Ja Geo Aug 6 '13 at 9:53
  • Well, not exactly sure what you mean with "a watershed for each cell", you can hardly delineate catchment areas for every cell. Also, calling a function from Python doesn't make it run faster (at least not to any significant level). However, you can automate a >workflow< so you wont have to call each function manually. In some cases there are tricks to make a function compute faster, like using in-memory workspace, but if you have a large DEM that might not be feasible. – Martin Aug 6 '13 at 10:30
  • I need to calculate discharge at each cell of the stream using data of area which is below 5000 and 3000. In order to do so, I am creating watershed at each cell and after that I am using Con() function to calculate area. This is taking too much time and crashes frequently what can be solution for this. – Ja Geo Aug 6 '13 at 11:07

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