1

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? – Below the Radar Sep 25 '14 at 13:32
  • Because after generalization I can't merge them again (lines don't snap anymore) – Sergio Sep 25 '14 at 13:50
  • 1
    Can't you divide your data based on the elevation property so you wont have to snap after the generalization? – Below the Radar Sep 25 '14 at 15:10
  • Maybe yes... I had not thought. I'll try! Thanks for your suggestion. – Sergio Sep 26 '14 at 7:06
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.

1

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, privacy policy and cookie policy

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