[GRASS-user] Interpolation of regular gridded continous data

Hello,

I want to interpolate a regular 1° x 1° temperature (°K) data vector
point grid to a higher resolution, say a regular 0.1° x 0.1° raster grid.

I assume that the temperature data is continous and the data between the
cells should be interpolated as if they were on a straight gradient
line/plane between the given 1° points, by keeping the originial input
value for the given points (on the 1° x 1° grid).

What would be the best interpolation method in GRASS to get this result?

I assume, a simple bilinear interpolation would be fine? Is that
correct? Which tool does this from vector points (r.bilin only takes
raster)?

Thanks and best regards,
Christian

--
Christian Willmes (Public-Key ID: 0x2FA87ED4)
AG GIS & Fernerkundung | GIS & RS Group
Geographisches Institut | Institute of Geography
Universität zu Köln | University of Cologne
Tel.: +49 (0)221 470 6234
Fax.: +49 (0)221 470 2280
http://www.geographie.uni-koeln.de/willmes-christian.695.en.html
http://www.sfb806.de
http://crc806db.uni-koeln.de
http://cwillmes.de

On Mon, Mar 31, 2014 at 11:16 AM, Christian Willmes
<c.willmes@uni-koeln.de> wrote:

Hello,

I want to interpolate a regular 1° x 1° temperature (°K) data vector
point grid to a higher resolution, say a regular 0.1° x 0.1° raster grid.

I assume that the temperature data is continous and the data between the
cells should be interpolated as if they were on a straight gradient
line/plane between the given 1° points, by keeping the originial input
value for the given points (on the 1° x 1° grid).

What would be the best interpolation method in GRASS to get this result?

I assume, a simple bilinear interpolation would be fine? Is that
correct?

Yes, I think so: you should just be aware that a "lot" of increase
needs to be supported by information, otherwise it is pure cosmetics.

see
http://grasswiki.osgeo.org/wiki/Interpolation#Resampling_of_raster_maps_to_finer_resolution

Which tool does this from vector points (r.bilin only takes
raster)?

Be sure to use a fresh GRASS version.

If you have points, you can use the fast module
* Interpolating from vector points with B-splines (v.surf.bspline)

Best
Markus

Hello,

Am 31.03.2014 12:38, schrieb Markus Neteler:

Yes, I think so: you should just be aware that a "lot" of increase
needs to be supported by information, otherwise it is pure cosmetics.
see
http://grasswiki.osgeo.org/wiki/Interpolation#Resampling_of_raster_maps_to_finer_resolution

Thanks for the advice, but I don't think its cosmetics in this case,
because I assume when I have 280 °K at 51° N 7° E, and say 285 °K at 50
° N and 7 °E, that it follows 50.5° N and 7 E will have 282.5 °K.
As If I would draw a straight line between the data points z-values and
get the correct interpolated z-values (at any resolution) from this line.

I have the data as GTiff rasters as well as a Shapfile representing the
point grid (sampled at cell centers), with the values in the attrubute
table.

For rasters I tryed the following:

r.resample, which is nearst neighbour and not suitable because it does
not increase the resulution of the data but of the grid.

r.resamp.interp is maybe what I want, but the results of my tests are
way to smooth (the original input values are not persisted, they are
shrinked or increased to fit the interpolation surface), and I don't see
parameters to adjust that.

And I am not able to use r.resamp.rst, I do not know what the tool
wants for ewres and nwres. At least not the values I get from g.region
for the variables with the same name. And also not the integers for Cols
and Rows of the grid. From the description r.resamp.rst looks good, as
if this is maybe what I want...

Which tool does this from vector points (r.bilin only takes
raster)?

Be sure to use a fresh GRASS version.

I use the 6.4.3 from the ubuntu-gis packages.

If you have points, you can use the fast module
* Interpolating from vector points with B-splines (v.surf.bspline)

I did this, with quite nice results, even though I don't want to have
splines, because I want the values on a straight plane/line. I do not
want to smooth the values or draw a curve between the values.

I came up with this parameters:
v.surf.bspline input=$sp raster=$out column=$varmon layer=1 sie=1 sin=1
lambda_i=1 method=bilinear

I am unsure about the sie, sin and lambda_i parameters, so I set them to
1, can you advice for right input parameters, to get what I try to do?

Thanks very much and regards,

Christian

Best
Markus

--
Christian Willmes (Public-Key ID: 0x2FA87ED4)
AG GIS & Fernerkundung | GIS & RS Group
Geographisches Institut | Institute of Geography
Universität zu Köln | University of Cologne
Tel.: +49 (0)221 470 6234
Fax.: +49 (0)221 470 2280
http://www.geographie.uni-koeln.de/willmes-christian.695.en.html
http://www.sfb806.de
http://crc806db.uni-koeln.de
http://cwillmes.de