Question

DonutBuilder error


Userlevel 1
Badge +22

Hi.

I have a dataset of polygons, which I don't trust entirely. It has a lot of smaller polygons (wind mills?) on top of property polygons.

Most small polygons have been cut out of the property polygons, but not all. So I run the data thru the DonutBuilder, just in case.

But I've found an error in the output, where a small polygon inside a larger polygon with a cut-out matching the smaller polygon, replaces the former small polygon with a new with the values from the surrounding polygon.

I.e., the smaller polygon is inside the outer boundary of the larger polygon, but has already been cut-out of it. In this case a replacement wasn't warranted, but something happened anyway, resulting in the described error.

Does DonutBuilder only use "entirely within" the outer boundary for its matching, or ?

Cheers.


5 replies

Userlevel 4

Would it be possible to post a small ffs file with a workspace to reproduce? That would make it easier.

Userlevel 1
Badge +22

Would it be possible to post a small ffs file with a workspace to reproduce? That would make it easier.

I'll do that asap, but it might take a little while.

Userlevel 1
Badge +21

I'm not sure if this is quite the same issue but the donut builder does not correctly output incoming polygons if one happens to match exactly with the hole of a donut input.

donuts.fmw

Userlevel 1
Badge +22

I'll do that asap, but it might take a little while.

TEST DonutBuilder.fmwt

Userlevel 1
Badge +21

It's not quite the same issue, as in your cases the polygons aren't exact matches (but very close) and are being output but minus their attributes. You can see that the donut polygons that surround the erroneous polygons have slightly changed geometry and a list added, however if you change drop holes to no, no holes are output for these polygons. There's definitely something not quite right going on.

You can probably work round it by using a DonutHoleExtractor to get all the outershells, followed by a DonutBuilder to rebuild the donuts, and output the holes

 

Reply