Variable Buffer on Street Centerline

889
3
09-19-2019 02:45 PM
DanSeidensticker
Occasional Contributor

Hi all,

I have a street centerline file where all road segments have a functional class of Arterial (A), Collector (C), Local (L). I also have a point file of each intersection.

I would like to do a crash analysis using 150' buffers at each intersection. The trick is that the buffer I want is not just a uniform 150' buffer off the intersection point.  I want to buffer the centerlines for a specified length from the intersection point based on the functional class: A = 400', C = 250', L = 150'.

For example where an Arterial (A) intersects a Collector (C), I want a 150' buffer of a 400' line segment from the intersection point for the Arterial roadway and a 150' buffer of a 150' segment for the Local Roadway.  The image shows what I am trying to get at.

I'm thinking I need to first find a way to create a feature of lines generated with the specified length. That's where I'm stuck.Then it would be just a simple matter of buffering that result.

Anyone have any thoughts?

0 Kudos
3 Replies
JimNoble
New Contributor III

Hi Dan, I am trying to do a similar task. Did you ever figure out how to do this?

0 Kudos
DanSeidensticker
Occasional Contributor

Hi Jim,

I have a thread on Stack Exchnage about this: Variable Buffer on Street Centerline using ArcGIS - Geographic Information Systems Stack Exchange.  I used a python script posted by Emil.  My user name in the forum is Mercator.

 

I was able to get it to work for about 90% of my intersections, but have not been able to figure out why the script is ignoring the others. I don't think my centerline data is the issue because there is no difference between the road segments that it works on and those that it does not.  Would be interested in hearing how it works for you. Thanks.

JimNoble
New Contributor III

Wonderful. I'll read your thread and look your methods. I'm working with telecom lines (your roads) and internet sources (your intersections). I believe your method will give me the results I am looking for. I'll def let you know how it works and if I applied any changes. Thanks for the reply!

0 Kudos