Skip to main content
Question

Clipping a series of overlapping elipses


Forum|alt.badge.img

Does anyone know a way of clipping a series of overlapping polygons that are in a time sequenced order like you see when a cyclone moves across the land and they are shown as a series of wind area circles. I am trying to remove the overlapping areas from all polygons as well as keep the order of the polygons. The first polygon would have to clip any other polygon that overlaps it then what's left of the second polygon would have to clip the third etc. I have attached a sample shape file as an example.

7 replies

takashi
Contributor
Forum|alt.badge.img+19
  • Contributor
  • June 17, 2017

Hi @johnm, I found two possible ways. Assuming that the attribute called "Name" stores sequential number of the cyclone in the time ascending order.

A:

B:

Hope this helps.


takashi
Contributor
Forum|alt.badge.img+19
  • Contributor
  • June 17, 2017
takashi wrote:

Hi @johnm, I found two possible ways. Assuming that the attribute called "Name" stores sequential number of the cyclone in the time ascending order.

A:

B:

Hope this helps.

Probably the clipping priority was wrong. Correct these transformer parameters in the previous workflows.

 

 


Forum|alt.badge.img
  • Author
  • June 18, 2017

Hi @takashi ,Thanks for this I will give it a go. The name attribute is just a substitute for the ascending timestamp attribute which is what you normally get for a cyclone. I had also worked out a rough solution that involved the AreaOnAreaOverlayer then a Dissolver(Group by Name) into a DonutHoleExtractor, but your solution looks much more elegant. Cheers, John


takashi
Contributor
Forum|alt.badge.img+19
  • Contributor
  • June 18, 2017
johnm wrote:

Hi @takashi ,Thanks for this I will give it a go. The name attribute is just a substitute for the ascending timestamp attribute which is what you normally get for a cyclone. I had also worked out a rough solution that involved the AreaOnAreaOverlayer then a Dissolver(Group by Name) into a DonutHoleExtractor, but your solution looks much more elegant. Cheers, John

The AreaOnAreaOverlayer can also be used in this workflow and it might be more elegant.

 


mark2atsafe
Safer
Forum|alt.badge.img+43

Hi @johnm

The other way I would try is the SliverRemover transformer. A SliverRemover takes the overlap and assigns it to one of the overlapping features (I'm assuming you don't just want to cut it out completely).

Here is my workspace:

I use a SliverRemover with a priority attribute, which for your data is name. However, the result is the reverse of what I think you want. So first I create Name2, which is Name in the reverse order (it's not a great method here - hard coded at 5 features - but let's see if the SliverRemover is giving what you want before we worry too much).

The results:

I hope this helps. The SliverRemover isn't well known - and this isn't really what it's intended for - but I think it does a good job. If it's not correct, could you post a screenshot of what a correct output would look like?

Cheers

Mark


Forum|alt.badge.img
  • Author
  • June 19, 2017

cyclone-graphics.zipHi @Mark2AtSafe Thanks for your reply. The second solution by takashi seems to be the best for me which I have reproduced below. I have attached a more realistic example where in this case the attribute to order is FCASTTIME which is actually a timestamp attribute for a specific Cyclone. Cheers, John


gio
Contributor
Forum|alt.badge.img+15
  • Contributor
  • June 20, 2017

@johnm

There is a more direct way to do it.

reates the "moonlets"


Reply


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