RST Spline Surfaces
RST: Regularized Spline with Tension
Overview
Thin plate splines fit a surface to a series of points by minimizing the energy it takes to "bend" the surface. You can think of it as stretching a rubber sheet between all the points and then varying the stiffness of the sheet.
Using this method you can create raster surfaces which, as compared to a simple rasterization method like a sampled TIN, better match the true topography, work better results from groundwater flow modules, and create much nicer visualization images.
Modules
- v.surf.rst
- v.vol.rst
- r.resamp.rst
- librst
Tuning parameters
- See the module help pages
- (TODO: write user guide)
Validation
- Cross-validation
- (TODO: write How-to)
Troubleshooting
- If your input data points include a dramatic change in point density across the region of interest you may get square artifacts in the output map. This is especially visible in a slope map or in contour lines created from the elev map with r.contour.
- Solution 1: increase the npmin parameter
- Solution 2: Create the surface in multiple passes. First isolate the low density points and use v.hull to make a polygon around them. Next run v.surf.rst for those points to make a smooth surface between them. Then you can either run v.to.rast on the hull area and create new random points with the r.random module, or sample the new surface with the v.random.cover addon script. Finally use v.patch to create a new points file with a less dramatic change in point density.
- Spline surfaces do not handle hard breaks in the topography very well, such as found on a beach at the base of a cliff. "Ringing" may be introduced and the module may complain about "overshoots", as the surface is bent away from an input point further than the module is happy with. Users familiar with digital electronics may recall the similar problem of fitting a sinusoid to a square wave.