create point shapefile of street intersections from polyline - ArcEditor

50657
36
02-09-2011 02:22 PM
MichaelCatsos
New Contributor
I'm trying to create a point shapefile of street intersections in downtown Phoenix, somehow deriving the points from a lone street centerline layer. I have tried extracting polyline nodes to points, but nodes do not exist at all of the necessary intersections. Intersect-related solutions don't seem to be any help since I am only working with one layer.

I'm not experienced enough to understand most scripting. Is there any procedure to split polyline features into segments between each intersection? After that I could extract the nodes, then turn them into points.

Another option I have explored is creating a small buffer around the polyline features. Theoretically, the points where the buffers around each segment overlap represent the intersections. This method is more inclusive, including all the potential intersections, but I can not figure out how to "overlay" the buffer with itself. Is there some way to use overlay to extract the small polygons where the individual buffered segments overlap, even though they are all in the same layer?
Tags (2)
36 Replies
DarrenWiens2
MVP Honored Contributor
So, does anyone have a suggestion on how I can strip individual streets from a field containing something like MAIN ST & 1ST ST & B ST ?


In Python, you'd read the field values, using a SearchCursor, into a string variable. Then, use the Python .split method. For example:
array = yourstring.split("&")
firststreetname = array[0]
secondstreetname = array[1]
thirdstreetname = array[2]
0 Kudos
MikeHargreaves
New Contributor III
Thanks - that looks like just what I need.  Will there be any problems when I try thirdstreetname = array[2] if there is not a third street?
0 Kudos
DarrenWiens2
MVP Honored Contributor
Yes, there will be problems. I think you can tackle this with:
for i in range(0,len(array))
    streetname = array

...it may be len(array)-1
0 Kudos
EmanuelDjurasinovic
New Contributor
i have a other problem, i need to extract Adresspoits from Polyline, in the Table i have Leftfrom,Leftto,Rightfrom,Rightto...Adresspoints and i want to make points in radius of x meters, we have in one County 1,5 Mio. Adresspoints and i can not extract it...thanx for Help,best regards...Emil
0 Kudos
lesterking
New Contributor
so how exactly would I be able to build a point shapefile of all the intersections in an entire city without selecting the cul-d-sacs as points as well? Only using the Real Nodes that is no End Nodes.
0 Kudos
HannaYounan
New Contributor II
I just wanted to point out that you absolutely can run the intersection tool with only one input, select point as output type, and get the intersections.


That what i was looking for thanks
0 Kudos
JoeDiStefano
New Contributor
so how exactly would I be able to build a point shapefile of all the intersections in an entire city without selecting the cul-d-sacs as points as well? Only using the Real Nodes that is no End Nodes.


That's a great question. In theory, Network Analyst has the capability to give you the answer, but there are definitely not any tools built to just do that.

Mike from Sonoma County said that he did this through "cleanup"... Mike, did you mean manual cleanup, or did you develop an automated way to clean out cul-de-sacs and other dead-end streets, driveways, etc.?
0 Kudos
RichardFairhurst
MVP Honored Contributor
so how exactly would I be able to build a point shapefile of all the intersections in an entire city without selecting the cul-d-sacs as points as well? Only using the Real Nodes that is no End Nodes.


I use the Collect Events tool (all license levels) to collapse many overlapping points derived from the Featrue Vertices to Points tool with the Both Ends option (ArcInfo license required) into a single point with a Count value.  The Collect Events tool does not preserve links to the original points, so I have to create a field in the origin and output to hold a text representation of the point XY values to join.  I use State Plane points and find that 4 digit precision is more than sufficient, so my field is 28 characters long and encloses the X and Y coordinates in brackets.  My formula for calculating the point value is done in Python and is:

Parser:  Python

Pre-Logic Code:
def Output(FirstPoint):
  FPX = round(float(FirstPoint.split() [0]), 4)
  FPY = round(float(FirstPoint.split() [1]), 4)
  return "{%(FX)012.4f}{%(FY)012.4f}" % {'FX': FPX, 'FY': FPY}


Expression:  Output(!SHAPE.FIRSTPOINT!)

By summariizing and pivoting (ArcInfor license required) the origin point street names and frequencies and then joining the summaries to the Collected Event points on the field I have calculated I can keep track of nodes that are made up of one point, multiple points but only one road, or multiple points and multiple roads (including how many points make up each road, so I know where T intersections occur and which road is the base of the T).  My true intersection layer is an extraction of all of the points that came from multiple points and that have multiple road names (excluding points where only one of the two roads is a named road).

Everything in the Collect Events output with a Count of 1 is either a Cul-de-sac (which I divided into real constructed cul-de-sacs and legal paper road cul-de-sacs), a stub road that has no bulb and that concievably could be extended, or a topological error.  I extract these sets of points out into their own layer and classify them accordingly.  Joined with other jurisdictional maintenance information from my Centerlines this cul-de-sac layer allows me to automate the mapping of all cul-de-sac symbols that my jurisdiction maintains on our maintained road book maps directly from information entered on the Centerlines.

Topology and geoprocessing environmental settings helps avoid quantum shifting of the street lines, so I recommend using topology and geoprocessing enviromental settings for feature class extents and XY precision if you want to use stationary road end points that you can track and join by their XY positions.
0 Kudos
JoeDiStefano
New Contributor
so how exactly would I be able to build a point shapefile of all the intersections in an entire city without selecting the cul-d-sacs as points as well? Only using the Real Nodes that is no End Nodes.


Update: We're testing a post-process to our points, based on the Trim Lines command to get rid of dead-end lines, combined with a selection and erase on corresponding points. This seems to get rid of intersection points that lead only to dead-end streets; however, it does not work on cul-de-sacs that are actually described using a circular bulb at the end of the line. We're still working on a post-process to knock out the intersection corresponding to the street ending in that bulb...

cheers,
~Garlynn
0 Kudos
LeeAllen
Occasional Contributor
Thanks mhargreaves, your work here saved me hours of figuring this out!!
0 Kudos