Quetion #1
I have a wokspace that takes the latest version of my data and creates buffers and then merges those to one polygon.
When 2 buffer polygons are near each other and close to create a hole. I would like to find a reasonable area size and remove only the holes. If there are small polygons for one reason or another I need to keep them.
remove small hole
Another question not exactly related mentions the donuthole extractor. Do I need to extract these and then delete them?
I used the solution with a tester and WAS successfull. The part I was missing was I had to put all of this "behind" my first disolver.
It wasn't an actual donut until the two parts were together. I suppose I could get fancy and put some other locgic in front to make it that way.
The other problem I was having was it is using sq meters not hectares or acres. :)
On to the second problem which I have not had any luck with yet.


Question #2
I like the rounded version not the butt of bufferer. However would like to limit the ends (after the merge) to being only a specified distance from the end of the actual line.

OK I figured out I need to use the parameter created when I set the AreaCalculator. But I still don't see proper results.

I would like to chop off the end flat at maybe 20' offset from the actual end of the line. Can I get a direction or pointer on accomplishing this?

  • 1
    This answer is rather a compromise, so im adding it as a comment: Buffer and offset: To achieve wanted effect, set cap to: CAP_BUTT. This way buffer is not exteneded. Unfortunately, you cant specify exactly how much offset you want at the end. As for the holes, you are going in the right direction: you can remove them by using the DonutHoleExtractor and using the OUTERSHELL output. (Then theres the issue that you want to remove only small holes...). Hm.... im gonna play with my FME and see what i can come up with ;)
    – U2ros
    Commented Nov 8, 2012 at 8:13
  • 1
    Can you upload a sample dataset with a representative set of geometry you want to be able to handle?
    – blah238
    Commented Nov 8, 2012 at 9:53

1 Answer 1


I have come up with a solution to preserve only donuts below a defined area, the workbench is a bit messy as I had to hack together some shapefiles to make one with a range of donut holes in it.

The basic idea is to extract the holes using the extractor, calculate these polygon's areas and then do a test to exclude polygons above a defined size. These filtered hole polygons are then combined with the original input polygon using the Dissolver to fill in the holes that are above your defined limit.

Workbench 1

As for the second part of your question, it seems a bit more complex, but I think it should be possible with a bit of creativity. I'll have a play around and if I can come up with anything I will edit this answer.

EDIT: To solve the second part of your problem I have used two buffers, one with no end caps and one with rounded ends. The buffer with no end caps is offset using both a positive and a negative Y value to extend the buffer by the required amount you wish to trim the rounded buffer. These two offset polygons are them aggregated and dissolved into a single polygon, selecting Overlap in the parameter Overlapping Input. This polygon is the overlayed with the rounded buffer and areas with an overlap value of 2 are filtered out, giving the effect of trimming the rounded buffer by a defined amount above and below the original line.

Workbench 2

  • Thanks @sgrieve. I am a novice here. On the first part do I need to use teh same area unit my original data is in? assume yes because I don't have anything transforming that. so area evaluator will be hectares since I have meters as my unit. I already set it up that way and will update the question with a screen shot.
    – Brad Nesom
    Commented Nov 8, 2012 at 19:51
  • instead of hectares it was m2
    – Brad Nesom
    Commented Jan 3, 2013 at 20:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.