Skip to main content
Question

Detecting and creating new polygons where parts of A do not overlap parts of B


scarter
Contributor
Forum|alt.badge.img+9

Hello Forum.

 

I have two polygon datasets (see attached image). I'd like to create a third polygon dataset showing me the sections of A that do not overlap with B. So, it would create me the polygons as highlighted in C in attached image.

I could do this via a few steps in a desktop GIS but I need to include it as part of a larger automated data flow in FME Desktop (Form).

 

Thanks,Swk_clip_polygons

7 replies

ebygomm
Influencer
Forum|alt.badge.img+38
  • Influencer
  • June 8, 2023

Clip polygon A with Polygon B and keep the output from the Outside Port, followed by a deaggregator


dustin
Influencer
Forum|alt.badge.img+31
  • Influencer
  • June 8, 2023

I would use an AreaOnAreaOverlayer, generating a list on the attribute that uniquely identifies if the area is A or B (this could be the fme_basename format attribute, if they are from different datasets). Then, feed those results into a Tester or TestFilter where the condition would be _overlaps = 1, AND _list{0}.identifier = A.


scarter
Contributor
Forum|alt.badge.img+9
  • Author
  • Contributor
  • June 8, 2023
dustin wrote:

I would use an AreaOnAreaOverlayer, generating a list on the attribute that uniquely identifies if the area is A or B (this could be the fme_basename format attribute, if they are from different datasets). Then, feed those results into a Tester or TestFilter where the condition would be _overlaps = 1, AND _list{0}.identifier = A.

Thanks for that, ddb. I’ve added the areaOnAreaOverlayer and a TestFilter. I’ve added the first test condition into TestFilter of @value(_overlaps_) = 1. However I cannot see a value called _list{0}. Where does that come from? Thanks, Stuart

dustin
Influencer
Forum|alt.badge.img+31
  • Influencer
  • June 8, 2023
scarter wrote:
Thanks for that, ddb. I’ve added the areaOnAreaOverlayer and a TestFilter. I’ve added the first test condition into TestFilter of @value(_overlaps_) = 1. However I cannot see a value called _list{0}. Where does that come from? Thanks, Stuart

You'll need to make sure you set it up in the transformer. _list is the List Name that you give it.image


scarter
Contributor
Forum|alt.badge.img+9
  • Author
  • Contributor
  • June 8, 2023
scarter wrote:
Thanks for that, ddb. I’ve added the areaOnAreaOverlayer and a TestFilter. I’ve added the first test condition into TestFilter of @value(_overlaps_) = 1. However I cannot see a value called _list{0}. Where does that come from? Thanks, Stuart
Thanks. “You'll need to make sure you set it up in the transformer” In the Test Filter of AreaOnAreaOverlayer?

dustin
Influencer
Forum|alt.badge.img+31
  • Influencer
  • June 8, 2023
scarter wrote:
Thanks for that, ddb. I’ve added the areaOnAreaOverlayer and a TestFilter. I’ve added the first test condition into TestFilter of @value(_overlaps_) = 1. However I cannot see a value called _list{0}. Where does that come from? Thanks, Stuart

In the AreaOnAreaOverlayer. Although, the solution from @ebygomm​ is a really good one as well. I'm used to working with extremely dense data, and sometimes the Clipper can struggle with it. So I usually default to the AreaOnAreaOverlayer method.


scarter
Contributor
Forum|alt.badge.img+9
  • Author
  • Contributor
  • June 8, 2023
scarter wrote:
Thanks for that, ddb. I’ve added the areaOnAreaOverlayer and a TestFilter. I’ve added the first test condition into TestFilter of @value(_overlaps_) = 1. However I cannot see a value called _list{0}. Where does that come from? Thanks, Stuart
Thanks.

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings