I have a network of streams that I need to buffer based on a basic rule set. This buffer will depend on the slope.

The slope is determined by the looking at the difference in elevation between a given point on the river and a point 100 feet away on a line perpendicular to the river at that point, in either direction.


  1. If the slope is greater than 40% (as determined above) than the buffer shall be 200'
  2. If the slope is less than or equal to 40% (as determined above) than the buffer shall be 100'

I have 2 slope layers. One is a 30-meter raster and the other is a 0.5-meter raster.

Using ArcGIS Pro, I was able to create perpendicular transects of 200' so that they are 100' on each side of the river. I also was able to create points at the intersection, midpoint and the end of each line. Now I can sample the underlying elevation, calculate the slope and then bring the lines back in and attribute them with the slope. I don't know how I would proceed from here.

Is this the best method to obtain this variable buffer? If it is a good method, how might I go about creating a buffered polygon after determining the set of points that define my buffer distance?

enter image description here

  • Without seeing the data and fully understanding what you are looking to get, I cannot give an answer. Rather some considerations. You will need to deternmine the buffer "left" and "right" of the stream to take into account the possibility for different slopes. I would look at assigning the slope categories to stream segments, in fields "L" and "R". Run the buffer tool twice using the buffer parameters "Dissolve" and Left and Right based on the buffer values for the L and R fields. A final merge to get the full buffer. It isnt pretty, I am sure there are better ways. This is where I would start Jun 26, 2019 at 22:51
  • The only other data would be the underlying DEM data. I'm not sure how having my particular data set would help understand this issue. Thanks for your response, good idea. Jun 28, 2019 at 4:35


Your Answer

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

Browse other questions tagged or ask your own question.