Skip to main content
Released

Clipper - Duplicate the Clippee

Related products:FME Form
  • November 19, 2016
  • 11 replies
  • 89 views

fmelizard
Safer
Forum|alt.badge.img+22

Clipper: Have an option for overlapping clippers to duplicate the clippee in the overlap region.

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.

11 replies

fmelizard
Safer
Forum|alt.badge.img+22
  • Author
  • Safer
  • November 20, 2016

To be clear, right now we chop up the clippee so that whatever part was inside the first clipper is taken away and not even considered when we look at the second clipper. WIth the option proposed, we'd just look at the original clippee against each clipper, which would result potentially in some overlapping parts of the clippee being output. I think this would be a very simple change, in fact, it is simpler in the processing than what we do today.


jdh
Contributor
Forum|alt.badge.img+40
  • Contributor
  • November 22, 2016
One of our main use cases for this is when splitting our data into regions we need an overlap buffer between regions.

 

Current workaround

 

Counter to create a uniqueID on the Region Polygons (all other attributes removed)

 

SpatialRelator with the Regions as Supplier and the Data as Requestor.

 

ListExploder on _relationships{} -- one copy of each feature per intersecting feature

 

Clipper with GroupBy set to uniqueID

 

 


erik_jan
Contributor
Forum|alt.badge.img+26
  • Contributor
  • November 22, 2016

I would suggest adding this as an option in the Clipper transformer. I can see situations when you do want duplicate clippees, and situations when you don't (as is the case at this moment).


jdh
Contributor
Forum|alt.badge.img+40
  • Contributor
  • November 22, 2016
Agreed, this should be a parameter on the transformer.

 

 


Forum|alt.badge.img
  • January 24, 2020

Is there any chance of implementing this. I have need this behaviour to output all the clippees in each clipper. I use a fanout on the writer to separate the outputs of the transformation by clipper (each clipper is given a unique ID and the attributes merged by the transformer.)


Forum|alt.badge.img
  • January 24, 2020

A solution in keeping with other transformers would be to allow a list of clipper attributes to be generated. A ListExploder could then be used to create a feature per clipper.


xiaomengatsafe
Safer
Forum|alt.badge.img+11

We are in the processing of overhauling the experience and functionality of Clipper. This request is being considered. To make sure our design will meet your need, I'd really like to better understand the related use cases.

'>

The top left part of this illustration shows a simple example where the two rectangle-shaped clipper areas have overlap, and we want to use them to clip the triangle feature. If I understand correctly, what's requested here is the outcome shown in the "Requested" box on the top right. In comparison, the "Current" box shows what the Clipper currently produces.

@erik_jan and @jdh, You both agreed that there should be a parameter that allows users to choose between the "Current" and the "Requested" behavior. In cases where the clipper features overlap, I'm failing to imagine a scenario where the "Current" behavior is more useful. Could you please share some examples where the "Current" behavior is preferred? (Clipper features could be either areas or solids)

@ianashley, you suggested that the clipper should be able to generate a list that includes attributes from all the clipper features. This way you can then use a ListExploder to achieve the outcome you need. If we go with either the "Requested" or the "Current" approach (or both), each "Inside" port output feature would be the result of intersecting a clippee with only one clipper feature. The only type of output that could have a feature with attributes from multiple clippers is what's illustrated on the "List" box above. There would need to be 3 features output, and the middle one would have a list with attributes from both Clipper 1 and Clipper 2. I'm wondering, in your use case, would the output illustrated in the "Requested" box be sufficient? If you do require a list to be generated, would the outcome of the AreaOnAreaOverlayer be closer to what you need?


tomf
Supporter
Forum|alt.badge.img+23
  • Supporter
  • March 8, 2021

Like @jdh, I wrote a custom transformer (unpublished) with a very similar methodology 6-7 years ago to get around this. It would be very handy to have natively.


erik_jan
Contributor
Forum|alt.badge.img+26
  • Contributor
  • March 9, 2021

Looking at the potential output, I would prefer the option with the list.

That would allow (with a bit of postprocessing) to get both the "Current" and "Requested" situations.

Is the most flexible option.


arnold_bijlsma
Enthusiast
Forum|alt.badge.img+16

I definitely support this, as I had this issue right this week! My preferred output would be the "Requested" one, although could easily work with the "List" option as well.

(I can share workbench if desired (but not publicly))


jdh
Contributor
Forum|alt.badge.img+40
  • Contributor
  • September 8, 2021

@xiaomeng keeping the current behaviour as a parameter would allow backward compatibility with existing workflows and the situation where there should be no overlaps in the clipped results.

I have one or two workflows where the clippers are sorted to allow for a first one wins, usually because the first clipper boundary is more precise than the later clipper.

 

If we move to a requested only behaviour, then the above can be accomplished by the use of two clippers in sequence, so that is not a show stopper.