I'm trying to create buffers with a 10 meter radius around points (springs). The problem is that the buffer should not cross lines (rivers) and not overlap each other. This should be done automatic with Python, because of the big dataset I have.

Here an image how the buffers should look like in the end.

Buffers cut by lines.

One possible solution would be this. If i try to use arcpy.management.FeatureToPolygon(), as an iteration over each Buffer and the Lines, there would be two Problems:

  1. Not all the lines does cross the whole buffer.
  2. How to select the Features, which should be deleted.

The solution for the first Problem would be to extend the lines, that they extent over the buffer. This is an easy fix with a bit of trigonometry and Python.

The second issues is there I have my Problems.

enter image description here

The Features outside of my regular buffer I can easily select and delete, but how to delete the features behind the lines?

I thought about trying to create buffers on only one side of a line, and with this I can select the features I like to delete. But these buffers can also overlap with another feature I don't want to delete.

After I would have deleted the unwanted Features I would dissolve the rest and then merge every buffer into one feature class. After that I would use arcpy.analysis.RemoveOverlapMultiple() to remove the overlap of the overlapping Buffers

So my questions are, is there way to create a buffer with the lines directly as a border and if not is there a way to easily select the features I would like to delete automatically or is there another solution?

2 Answers 2


A possible solution which may not meet your needs is to use the Euclidean Allocation tool and set your river network to be the barrier layer. Below is an example of some points where maximum distance has been set to 100m and cell size is 10m, the resulting raster is then converted to simplified polygons (the red lines)


The smaller the output cell size the smoother the edge will be. Note the conversion to polygon introduces a slight overlap of polygon with source polyline for the orange pixels.

  • I will try to use this as a tool to select the features i want to keep. The only problem i had was that nearly every point is a start of a line and if a barrier layer is exactly on a point the tool is not working.
    – Tim
    Commented Jun 29, 2022 at 7:28

First split your buffers into groups, inside which buffers do not overlap: enter image description here

Work with each color at a time:

arcpy.FeatureToPolygon_management(in_features="buffers;STREAMS", out_feature_class="in_memory/features", cluster_tolerance="", attributes="ATTRIBUTES", label_features="POINTS")

Note "label" option! Features that are labelled is what you need. Picture below shows output for 1st group (COLOR) of polygons:

enter image description here

  • This will not work in every situation. If two points are close to each other and a line is only partially between them, FeatureToPolygon will not track it. As an example see the first picture i posted. If i would use FeatureToPolygon with the upper left buffer, then with the upper right one and then to use RemoveOverlapMultiple, the border of the two buffers would go right through my lines. But i want that the border of the buffers are exactly on the line.
    – Tim
    Commented Jun 29, 2022 at 7:21
  • If river doesn't split buffer, former can't stop at river. Your objective clear as mud.
    – FelixIP
    Commented Jun 29, 2022 at 9:57

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.