[GRASS-user] new addon for multivariate surface interpolation from sparse points with smoothing

The new addon v.surf.tps performs multivariate thin plate spline
interpolation of sparse points with smoothing. If you ever wondered
why worldclim data (http://worldclim.org) follow so nicely elevation,
the reason is multivariate thin plate spline interpolation of
meteorological station data with elevation as a covariate. The module
can also be used for gap filling of remote sensing data, e.g. MODIS
LST reconstruction of cloud-covered areas, after fine-tuning the
module's parameters. The module works only with GRASS 7.2+.

Markus M

Hi Markus

Thank you for this excellent addon.

I was testing it with some trmm data, and getting this error with default “thin” value of 1.5.

ERROR: knn: inserting duplicate

Then if I increase the thinning factor, it works, but the algorithm thinned out quite a lot of points.

Any lead would be helpful, thanks

Regards

Sajid

···

On Thu, Aug 25, 2016 at 9:02 PM, Markus Metz <markus.metz.giswork@gmail.com> wrote:

The new addon v.surf.tps performs multivariate thin plate spline
interpolation of sparse points with smoothing. If you ever wondered
why worldclim data (http://worldclim.org) follow so nicely elevation,
the reason is multivariate thin plate spline interpolation of
meteorological station data with elevation as a covariate. The module
can also be used for gap filling of remote sensing data, e.g. MODIS
LST reconstruction of cloud-covered areas, after fine-tuning the
module’s parameters. The module works only with GRASS 7.2+.

Markus M


grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Hi Markus,

On Thu, Aug 25, 2016 at 3:02 PM, Markus Metz <markus.metz.giswork@gmail.com> wrote:

The new addon v.surf.tps performs multivariate thin plate spline
interpolation of sparse points with smoothing.

really interesting. I did some preliminary tests and I might provide some feedback later. For now I updated the examples in the manual in r69259, so please update your svn copy.

If you ever wondered
why worldclim data (http://worldclim.org) follow so nicely elevation,
the reason is multivariate thin plate spline interpolation of
meteorological station data with elevation as a covariate.
[…] The module works only with GRASS 7.2+.

It may be useful to note that you can preform similar operation with any version of GRASS GIS using v.vol.rst (3D interpolation using regularized spline with tension). The trick is using cross_* parameters to extract the desired 2D raster. Here is an example from [2]:

g.region raster=elev_state_500m -p
g.region t=2000 b=0 tbres=2000 res3=500 -p3
v.vol.rst input=precip_30ynormals_3d
cross_input=elev_state_500m cross_output=precip_anntopo_500m
maskmap=elev_state_500m wcolumn=annual zscale=90 segmax=700

Thanks!

Vaclav

[1] https://trac.osgeo.org/grass/changeset/69259
[2] http://ncsu-geoforall-lab.github.io/geospatial-modeling-course/grass/interpolation_2.html

On Fri, Aug 26, 2016 at 1:24 AM, Sajid Pareeth <spareeth@gmail.com> wrote:

Hi Markus

Thank you for this excellent addon.

I was testing it with some trmm data, and getting this error with default
"thin" value of 1.5.

ERROR: knn: inserting duplicate

This has been fixed in r69117,8 in relbr7, trunk, you need to update
your local copy of GRASS

Then if I increase the thinning factor, it works, but the algorithm thinned
out quite a lot of points.

That could be desired.

Markus M

Any lead would be helpful, thanks

Regards

Sajid

On Thu, Aug 25, 2016 at 9:02 PM, Markus Metz <markus.metz.giswork@gmail.com>
wrote:

The new addon v.surf.tps performs multivariate thin plate spline
interpolation of sparse points with smoothing. If you ever wondered
why worldclim data (http://worldclim.org) follow so nicely elevation,
the reason is multivariate thin plate spline interpolation of
meteorological station data with elevation as a covariate. The module
can also be used for gap filling of remote sensing data, e.g. MODIS
LST reconstruction of cloud-covered areas, after fine-tuning the
module's parameters. The module works only with GRASS 7.2+.

Markus M
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

On Fri, Aug 26, 2016 at 5:28 AM, Vaclav Petras <wenzeslaus@gmail.com> wrote:

Hi Markus,

On Thu, Aug 25, 2016 at 3:02 PM, Markus Metz <markus.metz.giswork@gmail.com>
wrote:

The new addon v.surf.tps performs multivariate thin plate spline
interpolation of sparse points with smoothing.

really interesting. I did some preliminary tests and I might provide some
feedback later. For now I updated the examples in the manual in r69259, so
please update your svn copy.

If you ever wondered
why worldclim data (http://worldclim.org) follow so nicely elevation,
the reason is multivariate thin plate spline interpolation of
meteorological station data with elevation as a covariate.
[...] The module works only with GRASS 7.2+.

It may be useful to note that you can preform similar operation with any
version of GRASS GIS using v.vol.rst (3D interpolation using regularized
spline with tension). The trick is using cross_* parameters to extract the
desired 2D raster.

For one covariable, yes, but not for more covariables. E.g. worldclim
has been interpolated using elevation, latitude and longitude as
covariables. And v.vol.rst is rather slow.

Markus M

Here is an example from [2]:

g.region raster=elev_state_500m -p
g.region t=2000 b=0 tbres=2000 res3=500 -p3
v.vol.rst input=precip_30ynormals_3d \
    cross_input=elev_state_500m cross_output=precip_anntopo_500m \
    maskmap=elev_state_500m wcolumn=annual zscale=90 segmax=700

Thanks!
Vaclav

[1] https://trac.osgeo.org/grass/changeset/69259
[2]
http://ncsu-geoforall-lab.github.io/geospatial-modeling-course/grass/interpolation_2.html

On Fri, Aug 26, 2016 at 12:32 AM, Markus Metz <markus.metz.giswork@gmail.com

wrote:

>> If you ever wondered
>> why worldclim data (http://worldclim.org) follow so nicely elevation,
>> the reason is multivariate thin plate spline interpolation of
>> meteorological station data with elevation as a covariate.
>> [...] The module works only with GRASS 7.2+.
>
> It may be useful to note that you can preform similar operation with any
> version of GRASS GIS using v.vol.rst (3D interpolation using regularized
> spline with tension). The trick is using cross_* parameters to extract
the
> desired 2D raster.

For one covariable, yes, but not for more covariables. E.g. worldclim
has been interpolated using elevation, latitude and longitude as
covariables.

...and the results from v.vol.rst are different from v.surf.rst with one
variable (well, the logic/model behind is different). I actually missed
that v.surf.tps can handle multiple covariables, so that's good to know.

And v.vol.rst is rather slow.

I didn't want to post this just yet, but yes, my preliminary tests showed
that v.surf.tps is much faster than v.vol.rst.