I'm trying to automate the process of adding a point to the downstream end of each polygon in a layer in ArcGIS Pro (Running V3.2.0 on Windows 11). I have a layer with the stream network along with a DEM, flow direction, and flow accumulation raster in the project. My eventual goal is to delineate the watershed above each one of my polygon features, but to do that I need to create pour points at the downstream end of each polygon. I've tried a few things, to no avail:

  1. Converting the polygon layer to points (Feature to Polygon tool) - the resulting center point layer doesn't overlap the stream network/flow accumulation paths because it's just the geometric center of each polygon - all polygons overlap the flow accumulation paths, but their centroids don't necessarily.
  2. Intersecting the polygon layer and stream network layer - this creates a multipoint feature class with points at each intersection between a polygon and the stream network, which is close to what I need, but I only want one point per polygon at the downstream end, not every intersection between the polygon and the stream network.
  3. Converting the multipoint layer described above into a point layer (Multipart to singlepart tool) and then deleting entries with duplicate polygon info (Delete Identical tool). This produces one point per polygon, but not always at the downstream end of the polygon - see the screenshot below for an example. The circled example on the left is what I'm going for, the one on the right is an example of a point not at the downstream end of the polygon.

Screenshot showing polygon/stream network intersection points. Lefthand example is what I'm going for, righthand example shows why #3 above doesn't work.

  1. Manually adding pour points for each polygon - this works, but is very time consuming as there are ~75 polygons in the project, so I'd like to avoid doing this if possible.

How do I automate this process so that I don't have to go through and create pour points for each polygon individually?

  • You had a tag for Arc Hydro but do not appear to be using it so I've removed it.
    – PolyGeo
    Dec 11, 2023 at 20:49
  • Convert polygon to raster and compute their watersheds. This will catch all flow to polygon, not just a single cell inside it.
    – FelixIP
    Dec 11, 2023 at 22:51

2 Answers 2


Explore using the Flow Length tool then use the Extract Values to Points on your SINGLE PART points, sort by distance, take lowest value (nearest to river mouth).


I found a workaround for this issue with a bit more troubleshooting:

  1. Create a flow accumulation raster for the area of interest.
  2. Run the Zonal Statistics tool with the polygon layer as the "Input Feature Zone Data", the flow accumulation raster as the "Input Value Raster", and "Maximum" as the Statistics Type.
  3. Extract the cell with the maximum value from the resulting raster using the raster calculator. The expression to do this is: Con("Flow Accumulation Raster Name" == "Maximum Values Raster Name", "Flow Accumulation Raster Name")
  4. Convert the resulting raster layer to a point layer using the Raster to Point tool.

This process creates a point for each polygon with the highest flow accumulation value, which is by definition the downstream end of the polygon. Hopefully that's helpful for anyone else trying to do something similar!

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.