Drawing perpendicular line between point and line layer using ArcMap?

I have downspout points that are currently emptying at the foundation. We need to redirect those into the roadway to be collected by the storm sewer. However we need to check that there is enough vertical elevation change between the base of the house and the curb to slope the pipe appropriately (e.g. if the downspout is 50ft away and the elevation at the foundation is 700ft and at the curb 699ft and I need 18" of cover then this will not work). So I need to construct a line from every single downspout point that connects to the edge of pavement line and get the elevation at each end. This line also needs to meet the edge of pavement line at a 90-degree angle. I have over 4000 downspouts so I'm looking for a way to automate the generation of the line segment between the two in such a way that when I calculate the start and end elevation using my DEM I will know my grade change.

• Do you know any python? Do you have an advanced license? I don't know about 90 degree but the near tool will give you the closest point on your curb by location, from there it would be a simple (ish) thing in python to create a polyline from the source to destination locaton... from here I think you could work out the angle of intersection (advanced) and manually check the intersections that are not near enough to 90 degrees; that should reduce your manual intervention to only a fraction of the 4k source features. Sep 27, 2017 at 21:05
• I do have an advanced license and have applied the nearest tool. I was thinking the same thing that I could somehow use that info to generate a line but wasn't sure how to generate a line from two x y coordinates. Unfortunately, I don't have experience with python. Sep 27, 2017 at 21:14
• Without python your only chance is Points file To Line resources.arcgis.com/en/help/main/10.2/index.html#//… just make sure that each pair has the same unique ID and if directional is important use a sort field (0 for from, 1 for to ends). If you have 3d analyst you can get the Z values from your DEM to the points with Add Surface Information resources.arcgis.com/en/help/main/10.2/index.html#//… hint: you can create an XY point file from the table using an event layer or feature class from XY locations in catalog. Sep 27, 2017 at 21:37
• When you get a result (or at least as close as you can get to a result) can you please post an answer to your own question with working methodology and screen grabs, I think that a non-python solution to this problem would be interesting to future users with a similar problem. Sep 27, 2017 at 21:49
• I did use the addin manager. GIS crashed everytime it ran. I eventually figured out that though the readme says that having the same spatial reference can provide more accurate results it also seems to be a requirement for it to not crash. My point feature class was NAD 1983 State Plane and line feature class was NAD 1983 (2011) State Plane which once changed to the same projected system it ran without a problem. It created perpendicular points for over 3000 records in one run. Sep 28, 2017 at 14:28

INPUT:

PROCESS:

``````arcpy.Near_analysis("CON_POINT", "Kerblines", "LOCATION")
arcpy.TableToTable_conversion("CON_POINT","../SCRATCH.gdb", "XYtable")
arcpy.MakeXYEventLayer_management("XYtable", "NEAR_X", "NEAR_Y","XYtable_Layer")
arcpy.Merge_management("CON_POINT;XYtable_Layer", "../merged.shp")
arcpy.PointsToLine_management("merged","../connections.shp", Line_Field="PAR_ID")
arcpy.InterpolateShape_3d("DEM", "connections", "../CON_3D.shp")