Skip to main content
Solved

Automatically group polygons based on overlap

  • April 8, 2019
  • 3 replies
  • 98 views

Forum|alt.badge.img
  • 12 replies

I have a large polygon dataset on which I want to run an AreaOnAreaOverlayer. The transformer take a very long time to run because there are ~100,000 polygons and I don't have any way to group the polygons.

It's occurred to me that I could enable parallel processing if I could group the polygons into subgroups that actually overlap each other. I can do this manually by lassoing the polygon groups by eye in ArcGIS and adding a unique value to a new field for each subgroup but I wondered if there was a clever way to automate this in FME?

Below is the layer of polygons on which I want to run an AreaOnAreaOverlayer (I'm hoping to create a layer with no overlaps of all of the polygons intersected and attributed with a count of how many overlaps there are in each polygon)

I imagine it will run faster if I can group them into layers that don't overlap at all, and then use that field in the "Group By" parameter.

 

I'd be really grateful for any advice about any stage of the workflow. At the moment, the workspace is running prohibitively slowly. Thanks a lot in advance!

Best answer by erik_jan

I would try this:

Use a Dissolver to create polygons from the overlapping polygons.

Use a Counter to give each dissolved group an id.

Then take the original polygons and do a Spatial query (SpatialFilter) to add the group id to the polygons.

Then you can use the AreaonAreaOverlayer with the group id.

Hope this helps.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

3 replies

erik_jan
Contributor
Forum|alt.badge.img+22
  • Contributor
  • 2179 replies
  • Best Answer
  • April 8, 2019

I would try this:

Use a Dissolver to create polygons from the overlapping polygons.

Use a Counter to give each dissolved group an id.

Then take the original polygons and do a Spatial query (SpatialFilter) to add the group id to the polygons.

Then you can use the AreaonAreaOverlayer with the group id.

Hope this helps.


jdh
Contributor
Forum|alt.badge.img+36
  • Contributor
  • 2001 replies
  • April 8, 2019

If you dissolve your inputs (no group-by) and then add a counter to create a uniqueID, you can then use a spatialFilter/Relator to assign that uniqueID back to the original features.


Forum|alt.badge.img+2
  • 1891 replies
  • April 18, 2019

If you can, upgrade to FME 2019.0 Huge speed improvements in Dissolver that will help with the workflow @erik_jan suggested You can have multiple installs of FME desktop - just use a different install folder, i.e. c:\\apps\\fme2019