This content has been marked as final. Show 1 reply
This would be a real pain, but here's how my Friday brain sees it, perhaps someone else has a more efficient way, since I'm sure there is one.
Depending on the size of your area and the number of sinks, and because of the iterative stuff (10cm slices) is going to be pretty rough manually, although you can batch some of it. I'm not familiar enough with Python to know how to code it off the bat... so here are at the processes you could go through. I'm sure a pro Python person could automate this, or at least the back half. A lot of the work at the end could be accomplished with batch runs of the tools. Remember that Excel can (theoretically... sometimes there are issues) interact with the batch processing pane, so you can create the really big batch processes where you're changing slice depths and output file names by regular amounts in Excel.
You might check out the page in the ArcGIS help titled "How Sink works". It has a sample workflow that shows how you would create a raster that has the sinks and their depths, which could then be used to determine volumes as you describe.
If you work through that list of steps, and verify that it is selecting the areas you want, you could use the sink_depth grid with the Zonal Statistics tool:
Input raster or feature zone data : sink_areas Zone field : Value Input value raster : sink_depth Output raster : sink_depthmx Statistics type : MAXIMUM
This should leave you with a raster file that represents the sink areas, with each area assigned that area's maximum depth. You could use raster calculator to convert this to an integer grid from which you could convert to a polygon feature class. Each polygon would be attributed with the value from the raster, the maximum depth. Throw out all of them less than your threshold of 30cm, or whatever. From there, you could export each polygon to its own layer (for instance, using Split by Attribute in XTools Pro or something like this. )
Now, start setting up your batches. You'll want to clip your original raster to each of your polygons, so do a batch Data Management->Raster->Raster Processing->Clip using the polygons as the clip features, while keeping straight (via naming) which raster corresponds to which polygon. If your maximum depths are all unique, you're in the clear, if not, assign the polygons a unique value before splitting by attribute, and split on that new unique value. You might want to keep a table that relates the unique ID with the maximum depth.
Next you'd want to start doing the volume calculations. You'll have to do one run of the Surface Volume tool per volume slice you want. You'll be using the maximum depth for each grid to slice down by your slice interval. So if a given depth grid has a max depth of 100cm, and you want volumes at every 10cm, this will require 10 different surface volume runs, then reading each of the text files it outputs and probably compiling those values into Excel or something so that they're usable.
The rest of it is just repeating that process for all of your sinks. If you didn't have to do the slices, this would be really easy.
I welcome anyone's criticism of the above method, as I've never actually done this, but assuming it identified sinks correctly, it seems like it would work.
TLDR; Convince the person asking you to do this that you don't need to.