Solved

How to eliminate small polygon into adjacent polygon in FME (Like Eliminate in Arcgis)?

  • 1 December 2021
  • 7 replies
  • 19 views

Badge +5

Hi all,

 

I have a polygon file. There area many small polygon like 0.00001, 0.0022,...

I want to eliminate small polygon into bigger polygon based on query area.

 

Could you tell me how to do it in FME? Thank you

icon

Best answer by hkingsbury 10 December 2021, 04:08

View original

7 replies

Badge +4

Hi @hoa_le​ ,

have you try the AreaGapAndOverlapCleaner?

 

Before:

imageAfter:

image

Badge +5

Hi @hoa_le​ ,

have you try the AreaGapAndOverlapCleaner?

 

Before:

imageAfter:

image

Yes. I have tried ​AreaGapAndOverlapCleaner but it's only using between polygons. And other polygon is not adjacent, it can't gap fill

Userlevel 5
Badge +29

If i'm understanding correctly, these small polygons touch a large polygon?

Heres a rough outline of something similar i've done...

 

  • Give each polygon a UUID (UUIDGenertor)
  • set a threshold for 'small' and 'large' polygons, split these into separate branches (Tester)
  • using a NeighborFinder feed your 'small' polgons into the Base and the 'large' polygons into the Candidate
  • Set it so you're only finding one neighbor, also enable GenerateList and select only the previously generate UUID
  • Out the matched port you will now have your 'small' polygons with a UUID (in the list) for the nearest large polygon. Extract this UUID and replace the original UUID value with the one from the list
  • Assuming that the polygons are touching, you can now feed this into a Dissolver with the Group By set to the UUID field and they will dissolve
Badge +5

If i'm understanding correctly, these small polygons touch a large polygon?

Heres a rough outline of something similar i've done...

 

  • Give each polygon a UUID (UUIDGenertor)
  • set a threshold for 'small' and 'large' polygons, split these into separate branches (Tester)
  • using a NeighborFinder feed your 'small' polgons into the Base and the 'large' polygons into the Candidate
  • Set it so you're only finding one neighbor, also enable GenerateList and select only the previously generate UUID
  • Out the matched port you will now have your 'small' polygons with a UUID (in the list) for the nearest large polygon. Extract this UUID and replace the original UUID value with the one from the list
  • Assuming that the polygons are touching, you can now feed this into a Dissolver with the Group By set to the UUID field and they will dissolve

Thank you for replying.

In the step 5, I'm not understanding. I attached a demo model that I tried to step 5.

  • Could you explain more the step 5 (Out the matched port you will now have your 'small' polygons with a UUID (in the list) for the nearest large polygon. Extract this UUID and replace the original UUID value with the one from the list

Thank you so much!

 

Userlevel 5
Badge +29

Thank you for replying.

In the step 5, I'm not understanding. I attached a demo model that I tried to step 5.

  • Could you explain more the step 5 (Out the matched port you will now have your 'small' polygons with a UUID (in the list) for the nearest large polygon. Extract this UUID and replace the original UUID value with the one from the list

Thank you so much!

 

Almost there, have a look below

image

Badge +5

Thank you for replying.

In the step 5, I'm not understanding. I attached a demo model that I tried to step 5.

  • Could you explain more the step 5 (Out the matched port you will now have your 'small' polygons with a UUID (in the list) for the nearest large polygon. Extract this UUID and replace the original UUID value with the one from the list

Thank you so much!

 

Thank you so much. I do it :)

Badge +5

Thank you for replying.

In the step 5, I'm not understanding. I attached a demo model that I tried to step 5.

  • Could you explain more the step 5 (Out the matched port you will now have your 'small' polygons with a UUID (in the list) for the nearest large polygon. Extract this UUID and replace the original UUID value with the one from the list

Thank you so much!

 

Hi @hkingsbury​ ,

 

In my case, I have fields: plot_uuid, area.

I want to dissolve area <0.03 into the same plot_uuid. I tried but it does not dissolve. I attached my model in the below.

That I want:

imgCould you tell me how to make it the same photo? thank you

Reply