Experimenting with a workflow/tool similar to Eliminate that respects case field(s) groups

02-24-2021 06:13 PM
MVP Honored Contributor

I am experimenting with a script that I may develop into a tool that provides a fast alternative workflow to the Eliminate tool that assigns attributes from a polygon within a case field group that has a shared border.  The scenario driving the script/tool/workflow occurs when the Intersect or Union tool combines two feature classes and slivers must remain within the feature boundaries from one of the feature classes.

The typical scenario where this is needed occurs when a parcel feature class is one of the inputs to the Intersect or Union tool and the slivers or portions of a parcel created by another polygon feature class can only take on the attributes of touching features that are also inside of that parcel.  It is assumed that the parcels and the other feature class each adhere to a topology rule that does not allow overlapping features within themselves, but they have not been topologically controlled relative to each other.  They also must be in a projection that uses linear units (like meters or feet) for the area and perimeter fields and, at this point, I have only designed the script to work with feature classes contained in a file geodatabase.

So far, I have a script that deals with the most straight forward fix where the script identifies all of the parcels that have been divided into only two parts by the other feature class and if the smaller part falls below a certain thinness ratio value and area size value and touches the larger portion, it inherits the attributes of the larger portion of the parcel, meaning that the entire parcel ends up being covered by only one of the features from the other feature class.  When the Dissolve tool is applied to the ObjectID and attributes of second feature class the resulting feature boundary will conform to the parcel boundary where the tool modified the attributes.  The script has been tested on 50K+ features and based on a thinness ratio of 0.05 and maximum area of 500 sq. ft., it identified and modified 1,451 slivers that met these criteria in 4 seconds.

I could redesign the script into a tool.  It could potentially do multiple passes using a default list containing several levels of thinness ratios, area size ranges, query expressions and/or minimum/maximum feature counts within a parcel.  I need to do more tests to come up with the best recommended values for these inputs.  I may also design it to accept user inputs for these parameters or to accept a layer selection like the Eliminate tool.

I would appreciate some feedback from users to find out if they are dealing with scenarios similar to mine so I can decide if it is worth my time to make a tool interface that allow users to customize the inputs to their own needs.  If I do design this tool I will not give any assurance that the tool will give good results if the user provides inputs that do not conform to the requirements I have mentioned.  I also will most likely not enhance the tool to fit any alternative requirements.

Tags (2)
0 Kudos
0 Replies