I have a high resolution elevation map and need to convert it to XYZ points. Simple conversion generates a lot of points in flat / constant slope areas which are redundant for 3D terrain generation. The goal is to reduce number of points by sampling only the points when there is a significant "break" in terrain surface. This would be equivalent to mesh simplification in other software.

I was looking into filtering points by Terrain Ruggedness Index, but from what I understand this index indicates the uneveness of the terrain, not change in gradient.

  • You are perhaps looking to Curvature, which returns second derivative. I am interested in your output, but at the same time, not sure if you are happy with it (it is sensitive to local changes, like TRI). Alternative option: (1) extract contours (2) create points at regular intervals along contour lines (3) Sample raster values at these points. You will get more readings where the contours are densely located. – Kazuhito Jul 15 '18 at 2:16
  • Thanks @kazuhito. Tried curvature - it gets close, but as you have warned it seems to take into account only local changes. Contours is what I am using at the moment, but they tend to miss important features that are slighly smaller than contour step. – kutas Jul 15 '18 at 20:38
  • Found a paper that demonstrates toolkit which is supposed to do exactly what I am looking for, but the toolkit does not seem to be publicaly available. – kutas Jul 15 '18 at 20:43
  • If you need TIN, there is a Grid to TIN (surface specific point) tool in SAGA (you may or may not have it in QGIS folder). But it requires intensive computing... probably I should not recommend it. May worth a try when you have enough time. – Kazuhito Jul 16 '18 at 13:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.