Question

Best way to generalise contours

  • 18 January 2022
  • 2 replies
  • 36 views

Badge +3

Hello,

 

I have an issue with generalising contours inside a tiling system. All contours need to match at tile edges, hence a surface tolerance of 0 is required. When this happens, vertices are added in what seems to be every 0.1m. Therefore i need to generalise.

 

The standard generalizer causes overlaps between different elevations, so the only option is sherbendgeneraliser but it takes an age with the amount of vertices. I have tried adding a generaliser with 0.1 tolerance before the sherbend generaliser but this also causes overlaps.

 

I want vertices roughly every 5m or so in the output.

 

Question:

  1. How do i fix these generalised overlaps?
  2. is there a quicker way to speed up sherbendgeneraliser?

2 replies

Badge +2

@od10​ One approach to generalizing contours is to use the CurveFitter transformer that will convert many of the lines to arcs. You can use this if your target format can support the arcs. You'll need to play around with the parameters a little. Curvefitter doesn't have overlap constraints.

SherbendGeneralizer has to work hard to preserve spatial integrity which is why it takes a while.

When contouring tiled data, it's often helpful to include the neighouring tiles in the contour and then clip back to the single tile. This helps reduce edge effects, so you'd contour nine tiles and then clip back to the centre tile.

If you can include some data and your current contour workspace someone might take a deeper dive.

Userlevel 5
Badge +29

I'm assuming you are working with already generated contours?

If you were generating the contours from a surface/DEM I would suggest resampling them to a lower resolution (eg resample a 1m DEM to 5m)

Reply