Interpolation of input data

PISM includes a basic implementation of bilinear and trilinear interpolation. This code assumes that source and target grids[1] use the same projection. (This is interpolation in the projected Cartesian coordinate system.) It works best if source and target grids use similar grid resolution. It suffers from signal aliasing when the source grid resolution is significantly (e.g. 10 times) higher than the target grid resolution.[2]

One way to avoid aliasing issues is by pre-processing PISM’s inputs, e.g. conservatively re-projecting and interpolating a data set from its original grid to the grid that will be used by PISM. See CDO (specifically, cdo remapcon) and GDAL (gdalwarp -r average and similar), for example. The downside of this approach is that one has to store and archive pre-processed inputs.

It is possible to avoid these issues and perform re-projection and interpolation “on the fly” by compiling PISM with PROJ and YAC; see section Enabling flexible interpolation using YAC and PROJ. (Note that YAC performs interpolation on a sphere using longitudes and latitudes of cell centers and corners.)

To use this code, make sure that

PISM will automatically choose the interpolation method depending of the interpolation direction:

  • fine to coarse: first order conservative

  • coarse to fine: distance-weighted sum of neighbors (similar to bilinear).

Footnotes


Previous Up Next