I have a contour line file that covers the most part of north italy (shape is 0,6 gb) and I want to use v.generalize (snakes algorithm) on it. Because of the large file size, if I use Grass 6.4.3 I saturate all my memory and after 1,5 days of work nothing appends (the progress bar does not increase). I tried to use Grass 7.0 and I got this error "ERROR: G_calloc: impossibile allocare 11777 * 8 bytes di memoria a matrix.c:37"

For a good generalization I can't devide the layer... Someone have a suggestion for doing that?

Thanks in advance.

  • Why can't you divide your data in smallest dataset? Sep 25, 2014 at 13:32
  • Because after generalization I can't merge them again (lines don't snap anymore)
    – Sergio
    Sep 25, 2014 at 13:50
  • 1
    Can't you divide your data based on the elevation property so you wont have to snap after the generalization? Sep 25, 2014 at 15:10
  • Maybe yes... I had not thought. I'll try! Thanks for your suggestion.
    – Sergio
    Sep 26, 2014 at 7:06

2 Answers 2


Consider to try GRASS GIS 7 for that which comes with a more efficient memory management for vector data. I have generalized the Austrian OpenStreetMap roads in one step, a reasonably big dataset, no problem on a normal desktop.


Also consider using an algorithm other than the snakes algorithm under v.generalize or try and adjust the parameters to improve the tradeoff between efficiency and smoothness. It is the most computationally expensive smoothing algorithms in GRASS. I would recommend making a smaller test subdataset, and try a range of parameters for several different algorithms and see if there is a faster alternative that produces similar results.

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.