Select to view content in your preferred language

Eliminating overlap in Feature Class based on Field Value

66
2
8 hours ago
Labels (1)
wnh
by
New Contributor

I am curious if there is a way to complete this task for use within ModelBuilder- for a feature class with thousands of records.

I have a polygon feature class filled with buffered points, so many circle features of the same size. Many of these features overlap with each other in some way. The feature class has an attribute table of fields, one of which is 'Priority', which is an integer type ranging from 1-100.

The goal is to identify and isolate any given overlap areas (sometimes more than 2 features overlapping), and based the value in the 'Priority' field, to only keep the polygon with the highest value. The output layer should have the same area footprint, though only one layer features that does not overlap. All attribute fields should be kept intact for the features that are preserved.

Using the below graphic as an example, the four new '90' value features in the output would have matching attributes to the original '90' feature within the input (aside from the default geometric fields), and have no overlapping features underneath it.

overlap_figure.png

If possible, would it be feasible to do so with 'Basic' analysis tools?

Thank you! Please feel free to ask questions if needed.

Additional context:
I was able to make this work through scripting, which unfortunately isn't feasible for this use-case as it will be used as a shared tool for non-programming folks. They need to be able to troubleshoot within ModelBuilder if something goes wrong.

0 Kudos
2 Replies
Pukawai
Occasional Contributor

I don't think this is possible in Model Builder, but should be possible in python. If you generate a separate, temporary featureclasses for each unique priority value (or multiple layers of the same featureclass  with a  defquery) and then union all these together and you will get a featureclass with a separate priority attribute from each input all split at the overlap boundaries. Then iterate through each polygon, determine the highest priority found, and write that to the first priority attribute. When done, just delete all the other priority attributes. If I remember correctly, you need an advanced license to union more than 2 featureclasses, but can get around it by doing the union iteratively.

wnh
by
New Contributor

Thanks for the response! Yes, I was able to make this work through scripting, which unfortunately isn't feasible for this use-case as it will be used as a shared tool for non-programming folks. They need to be able to troubleshoot within ModelBuilder if something goes wrong.

 

0 Kudos