I am looking at accumulating values of data along a stream network to determine likely points of stress. I am aware that I can weight flow accumulation but am interested in an accumulated average value for slope much like a flow accumulation grid. In addition I would like to accumulate forest canopy as well. I already have a DEM, canopy and slope grid. I would also like to know if there is a way of capping the accumulation. For example can I limit the accumulation to the upstream nearest 5000 cells?
Question 1) How can I create an "flow" accumulation grid of other grid data? Question 2) Can I set limits on the number of upstream cells to accumulate?
You may want to consider further defining what you want. You need to decide if you want the accumulation to be at every cell in the raster (not likely what you want), every cell on the stream, at regular intervals along the stream, specific points of your choosing, or at confluences.
If you want to do the latter, you could use the number of cells variable in the Stream Definition step to "granularize" the number of points/confluence you get along the streams. You could use the stream order function to eliminate minor streams if you don't want points on every little tributary.
If you come up with a way to do this from a point, then you can convert your stream raster to points and geoprocess this for every point on the stream.
Using existing Arc Map/Arc Hydro/HEC-GeoHMS tools, I can see how to do it, but it seems it would take an immense amount of processing time. I can't quite picture is how to limit the aggregation to the nearest upstream 5000 cells. I think maybe some python script would be needed to make that happen. Maybe some special third party tool has already been created to do this.
Here's what process I can envision for doing this without the 5000 upstream cell limit:
Convert str (stream) raster to points. This results in one point per cell of the str raster.
Import the created points to BatchPoint layer (for Arc Hydro processing). You need to have processed the terrain and created all the Arc Hydro layers/rasters. (a tool in GeoHMS will import points to the BatchPoint layer by creating the layer with all the required fields)
Process the watershed delineation using the batch points. This makes one watershed polygon per point and they will overlap. This would take a very long time and may tax the memory limits of the processing. Processing this on the local machine and not over a network would be a must.
Use GeoHMS tools to aggregate the watershed parameters to the polygons.
Use relate tools to bring aggregated parameters back to the points.
Convert the points back to a raster using the parameter.
To get to the "nearest upstream 5000 cells" you might be able to perform the above steps and then find a way to select a watershed and then find a watershed upstream that you could extract that would provide a value base on limited upstream proximity. Again, python or other programming might in order to do this.
I tried my suggested method and am having problems with step 4. To get there I let the thing run past work hours. As I was cleaning up the bazillion temp files/folders, I noticed on folder was time stamped near midnight. There was over 700,000 MB of temp files to delete.
The GeoHMS "Parameters from Raster" function for step 4 only calculated the aggregate value for 1 or 2 out of 5 of the watersheds. Same problem with Zonal Statistic trials.
However, I just found this recent post and downloaded the script (the one posted at 08-09-2011 08:59 AM by Jaimie - I edited the script to look for the OID instead of the FID since my feature class did not have an FID): http://forums.arcgis.com/threads/36799-Zonal-Statistics-as-Table-Overlapping-Polygons-Solution-Requi.... It seems to be working as it is supposed to, but I suspect it will take a while since I had nearly 6000 grid points on the stm layer => nearly 6000 polygons in the watershed layer. Will report back when it finishes (or not).