Dear GIS experts,

I would be very thankful to receive your help/support/suggestion for solving my following problem. I'm using ArcGIS 10.1 with Spatial Analyst and 3D Analyst(no ArcInfo license) and Arcview 3x (still for many plusses).

I have a river network - both a shape file and raster grid - generated from a DEM through Flow Direction and Flow Accumulation grid for a very big region (a country).

What I want to know/calculate is - for every river cell, what is the difference in elevation value between the elevation of that river cell and the elevation of the river cell at a given distance (say, 1 km, 2km, 5km) downstream from that river cell along that river i.e. flow direction?

I tried to do this by using the focal statistic function running over the River-DEM (using minimum as statistic) and then subtracting the resulting grid from the original River-DEM; but this dos not work completely correctly because at many places the minimum in the neighbourhood is found in the adjacent river (tributary or another parallel river at another side of the ridge) and it gives me wrong elevation difference because the minimum river cell is not in the same river downstream but in another river although within the defined search/neighbhourhood distance. How can I get this correctly- i.e. the elevation difference in the same river downstream in a given distance?

I hope that I could make this my problem sufficiently clear. What would be your suggestion to solve this?

Thanking you a lot!!

You would have to do this for each river channel, either moving upstream or down stream, branching where tributaries meet. (densify a channel polyline at a spacing of 1 cell width, convert to points, extract values to points)

Once the data set(s) are constructed, you need to perform a rolling difference, since you specify that you want the distance difference between two fixed locations, but for every location as you move upstream. (rolling anything isn't readily implemented in arcmap, but is easy in numpy and python, so you may wish to examine those options)

So basically what is you purpose in doing this since it isn't clear what the information is required for and how an elevation difference at 500m spacing at 10 m increments is going to be more useful that extracting the dem values along each stream reach and processing from there. What terrain derivatives do you need? slope? aspect? curvature? etc?

Any more insights on you final goal may spawn more suggestions.