I have a network of polylines making up a stream network (from the National Hydrology Dataset). I also have 2 point files: one of areas of interest and another of locations of dams within the network. I'd like to find a way to calculate 1) the distance to the closest upstream dam for each of the areas of interest and 2) the distance to the closest downstream dam.

I would prefer to find a way to do this in ArcGIS but have also been looking into using R or Python script.

  • You might want to add the ArcGIS tag to this. Commented Jul 12, 2017 at 18:02

1 Answer 1

  1. Use Split Line at Point with the polylines as the line file and the dam point file as the points. Hang on to that shapefile, as you'll need it for subsequent points.
  2. Select the polyline from that file that intersects an Area of Interest point and use that point to split the line again.
  3. Calculate the length of the resulting two polylines
  4. You now have your distance to upstream and downstream dams from your Point of Interest
  5. Repeat steps 2-4 on each subsequent Point of Interest until you have all the answers you need. Just make sure to use a clean copy of the split-by-dams polylines, as the presence of 2 Points of Interest between 2 dams would mess up your calculations (you'd get the distance to a dam and the distance to the previously used Point of Interest, instead of the distance to two dams)

Get Steps 1-4 to run in ModelBuilder and you can just slap an iterator in between steps 1 and 2 (Iterate Feature Selection is likely the way to go) to go through the entire list of Areas of Interest.

You'll need to check to make sure that forks in streams and whatnot are handled properly so you don't get nonsensical results


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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