Ask A Cartographer


November 15 2010 | 2 comments
Categories: ArcGIS Methods, Map Data


I am trying in Arc 9.3 to intersect two line features (stream and road), retain some of the attribution information in them and then output a point file where these two intersect.

How do i do this in Arc 9.3? Do i intersect first and then is there a tool to create points from the intersections?


Mapping Center Answer:

As Unintuitive as it may sound you will start with the Feature to Line tool, with your roads and streams as the input feature classes. 

With the result of the Feature to Line tool, do the following to derive points at the intersections:

1.  From the Selection menu choose Select by Attributes, and select features with this where clause:  "FID_Roads" = -1 (this will select the streams in the output of the Feature to Line tool.  Use whatever attribute that actually refers to the FIDs for your roads, given the feature class name.)

2.  From the Selection Menu choose Select by Location:  Change the Selection Method to "add to the currently selected features in", and choose the output from the feature to line tool in the "select features in" list.  The selection operation is intersect, and you will be intersecting to the same layer.

3.  To Get the points at your intersections, right click in the Table of Contents on your output from the Feature to line tool with the selection, and choose Data, and then Export to save the selected features to a new feature class.  You must save these in a geodatabase, in a feature dataset (you will need to prepare this in advance so it uses the same coordinate system as your data). 

4.  Once your selected features are saved, you can use ArcCatalog to create a geometric network with the features you saved in step 3. Use the default settings for the Create Geometric Network wizard. A by-product of a geometric network is a set of points for the junctions--copy the junctions feature class to a location and different name outside of the feature dataset that contains the geometric network (you cannot edit or use the Junctions feature class that is associated with a geometric network).  The only issue with the junctions is there will be junction points at the ends of lines (I don't think you want these, so step 5 addresses that).

5.  Once you have a copy of the junction points add them to ArcMap, and use the spatial join tool with the copy of your junctions as the Target Features, and the output from step 3 (selected lines saved to feature class) as the join features.  This will product a point layer with an attribute called Join_Count.  Set a definition query for "Join_Count" > 1. This will give you a layer with points at the locations where roads and streams intersect.  You can save this or use it as is.

Sorry, that was a bit of a lengthy procedure to get the result you so simply asked for.  If anyone figures out a faster/easier way, please post it as a comment.



Alternative to Step 4 posted by Charlie Frye on Nov 16 2010 8:50AM
Using the Output from Step three you can use the Feature Vertices to Point tool. The input is the output of Step 3 (though a geodatabase is no longer required); and the Point Type option should be set to BOTH_ENDS.

Then run the Collect Events tool (in Spatial Statistics Tools in the Utilities toolset), which will give you one point at each junction (instead of multiple points where more than one line connected).

It's the same number of steps, but this can be done without going to ArcCatalog to create geometric network.
fast/easier way posted by Rajinder Nagi on Nov 19 2010 11:25AM
You can achieve this by using Intersect (Analysis) tool (Analysis toolbox > Overlay toolset > Intersect). Specify Join attribute as ‘All’ and Output type as ‘Point’ in the tool. This tool will generate points at intersections with all the attributes from the two inputs.

Online tool help link:

If you would like to post a comment, please login.

Contact Us | Legal | Privacy |