Points Contain Attributes for Connected Lines

629
7
Jump to solution
05-30-2018 10:21 AM
RogerDunn
Occasional Contributor II

A point layer feature class, representing sewer manholes, was incorrectly designed.  Each one has attributes for the pipes north, south, west, and east of it.  This is fine for a human looking at individual features, but is a nightmare to do analysis at scale.  I need to transfer these attributes to the actual pipes that are north, south, west, and east of each manhole.  Note that these terms might not mean the pipe is at exactly 0°, 90°, 180°, and 270° from it.

One idea I had was for each manhole to be the center of four 90° wedges, like a circle with an X through it.  The wedges would have all the attributes of the manhole.  A spatial join could help me transfer the attributes in the manhole layer to the pipe layer where they belong.  I can take it from there, and I do realize that each pipe can have multiple manholes connected to it.

But how shall I proceed to make a wedge layer from points?  Sure I can buffer the points, but I don't know how to cut an X through those circles' centers.  Any ideas?  I'm semi-comfortable with Python and Model Builder if that's part of the solution.

Thanks in advance, GIS experts!

0 Kudos
1 Solution

Accepted Solutions
RogerDunn
Occasional Contributor II

With more thought, I think the best way to transfer this information is NOT to have the manholes give it to the lines, but for the lines to take the information from the manholes.  Using some geoprocessing, I have been able to find out which cardinal direction a line flows.  Therefore, if a line is categorized as "West" then I can infer that the manhole at the starting point is "east" of it, and I can take that manhole's "West" attribute and copy it to the line.  The manhole at the end point is "west" of it, and I can take that manhole's "East" attribute and copy it to the line.

A map of sewer lines and manholes.  The sewer lines are symbolized according to the cardinal direction in which they flow (North, South, East, or West)

View solution in original post

7 Replies
DanPatterson_Retired
MVP Esteemed Contributor

There are several ways to create points around other points at specified angles

https://community.esri.com/blogs/dan_patterson/2017/02/21/circling-the-point

https://community.esri.com/thread/190568-creating-location-points-in-multiple-polygons

As well as producing sectors, rings etc around points.

Maybe a visual of your scenario might provide a quick solution, assuming you have some coding experience

DanPatterson_Retired
MVP Esteemed Contributor

I knew that I had done some of this before.

This shows points at 45 degrees around existing points. 

If you have PRO, you are in luck.

Point tools for pro

RogerDunn
Occasional Contributor II

First of all, thank you for taking the time to read my post.  I am greatly impressed by your posts about points, and the submissions to Geonet and ArcGIS.com in general.  Your work with geometry looks really cool, crisp, and clean.  As I read those posts, though, I couldn't figure how they apply to my situation.  I think a sample graphic would be good to include.  I show here a screen shot from my manholes and sewer lines feature classes:

A screen shot of sewer lines and labeled manholes in ArcMap

Remember that each manhole has four attributes it doesn't really need...attributes which really belong to the sewerlines north, south, east, and west of each one.  It was created this way by a waste water professional who cleans the lines through the manholes.  Here are some example attribute transfers.

Manhole #120 needs to transfer three of these attributes to the lines west, north, and east of it, even though the line north of it doesn't go directly north.  The north attribute should not be transferred to the line between #175 and #034 since it doesn't share a vertex with #120.

The west, north, and east attributes of manhole #175 need to be transferred to the lines connected to it.  However, the north line immediately bends west and should not get the west attribute.  The fact that the line starts out north is what makes it a north pipe.

Lastly, manhole #035 has a line which is coming out of it to the southwest.  If there is a non-NULL value in the west attribute, that should be transferred to the line.  If there is a non-NULL value in the south attribute, that should be transferred to the line.

This is what I need a script to solve.

0 Kudos
DanPatterson_Retired
MVP Esteemed Contributor

Ahh, I misread, I thought you needed to create the cardinal points.  I will rethink in light of the image

0 Kudos
RogerDunn
Occasional Contributor II

With more thought, I think the best way to transfer this information is NOT to have the manholes give it to the lines, but for the lines to take the information from the manholes.  Using some geoprocessing, I have been able to find out which cardinal direction a line flows.  Therefore, if a line is categorized as "West" then I can infer that the manhole at the starting point is "east" of it, and I can take that manhole's "West" attribute and copy it to the line.  The manhole at the end point is "west" of it, and I can take that manhole's "East" attribute and copy it to the line.

A map of sewer lines and manholes.  The sewer lines are symbolized according to the cardinal direction in which they flow (North, South, East, or West)

RogerDunn
Occasional Contributor II

I was able to figure out using this helpful post which actually also talks about sewer lines and manholes:

https://community.esri.com/message/286484?commentID=286484#comment-286484 

Now I have a completely connected network dataset where the lines know their slope.  Combine that with their length and width I should be able to do a lot of great analysis.

DanPatterson_Retired
MVP Esteemed Contributor

Looks good Roger, glad you worked it out

0 Kudos