Woolz Image Processing Version 1.4.0
|
Functions for interpolation based on kriging. More...
Functions | |
void | WlzKrigSetModelFn (WlzKrigModelFn *fn, WlzKrigModelFnType type, double c0, double c1, double a) |
Sets a kriging function data stuctures parameters and function pointer. See the kriging model function types and their implementation for the meaning of the parameters. |
Functions for interpolation based on kriging.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Kriging is an interpolation method from geo-statistics (hence some terms such as nugget), which aims to find the Best Linear Unbiased Estimate (BLUE) of a value at some point in space based on the semi-variograms of the values within some local region. The procedure is first to choose a model for the semi-variogram behavior which when plotted against the lag (distance) is assumed to have a nugget (constant or intercept variance), sill (variance at an infinite lag) and range (lag for which values have little correlation). This should be set using WlzKrigSetModelFn(). The model semi-variogram should then be computed using WlzKrigOSetModelSV2D() and then for each position to be interpolated with this model (ie all positions where the model is valid) WlzKrigOSetPosSV2D() should be called followed by WlzKrigOWeightsSolve().
For a simple system in which there are known values
at positions
(
) then we want to estimate a system of weights
such that the value
at some position
can be computed by a simple linear system of weights
with the weights computed such that . Setting
and having choosen a variance model
then
where ,
and
. In practice a slack variable
is added to the weights column vector and both the model matrix and position vector are padded using to 1. This equation is then solved for the weights.