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.

Example of Downspouts & Edge of Pavement Shapes

  • 2
    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. – Michael Stimson Sep 27 '17 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. – mgc77 Sep 27 '17 at 21:14
  • 1
    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. – Michael Stimson Sep 27 '17 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. – Michael Stimson Sep 27 '17 at 21:49
  • 1
    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. – mgc77 Sep 28 '17 at 14:28


enter image description here


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")
arcpy.AddField_management("CON_3D", "SLOPE")
# field calculator
(!Shape!.lastPoint.Z- !Shape!.firstPoint.Z)/ !Shape!.length*100


enter image description here

  • 1
    This looks like a good solution. However, I don't know what the OP's actual requirements are, but I would assume one could not build a drain pipe through someone else's house. – Fezter Sep 28 '17 at 6:47
  • 1
    This is one of the points I tried to make. – FelixIP Sep 28 '17 at 7:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.