I have a landuse classification raster file (6 classes) of a large area. But I need it in vector polygons so I vectorised it. No problem so far, but the result is - of course - that every pixel is exactly vertorised with all its egdes :) But I need it smooth like contours. So, okay, I could generalize it with Boyle's Algorithm for instance, but its just too much for my computer to calculate that...

So what could I do? Thanks! Martin

enter image description here

2 Answers 2


Use GRASS with the native GUI or with the QGIS plugin or with the Sextante plugin and use the v.generalize tool, choosing the "Chaikens" algorithm.

  • Thanks, this is just working, wow! I never tried to do that from gis with Sextante, I always did it with grass directly (and it did not work)!
    – MartinMap
    Aug 31, 2012 at 15:15
  • The v.generalize tool as available through QGIS facilitates for a host of generalization tools of which "chaikens" algoritm is just one of them. The other ones are: douglas, douglas_reduction, lang, reduction, reumann, remove_small, boyle, sliding_averaging, distance_weighting, hermite, snakes, network and displacement.
    – ragnvald
    Aug 20, 2014 at 12:07

You can also use ArcGIS with (ET GeoWizards) to do this:

1- Use "Smooth Polygon" from ArcToolbox>Cartography Tools> Generalization

2- then you might get some gaps according to the Smoothing Tolerance you set.

3-if yes, then you can use either "Eliminate Polygon Part" ArcToolbox or use "Fill Holes" from ET GeoWizards Tools and set the 'Maximum area of holes to be removed' to the areas you want to fill.


  • 3
    Note OP is looking for QGIS, Grass, SAGA solutions. Smooth polygon and eliminate are both memory intensive--perhaps a better solution would be to generalize the raster prior to vector operations.
    – Aaron
    Aug 30, 2012 at 4:40

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.