1
$\begingroup$

I am having time issues when using ordinary kriging. I have a spatial grid of 200x300 where I want to calculate the interpolated values. For that I am using ordinary kriging. Now for each point in the grid, I calculate the variogram based upon a certain window size. So, instead of creating a variogram from the whole available dataset I use a window. I do not intend to use the whole dataset since it is of size 10,000 and even for calculating distance pairs it will consume around 10,000*9999/2 location.

So, I intended to use the windowing method. After I create a variogram, I again use another window smaller in size to define the neighbors of the point where the data is to be interpolated. Then I calculate the weights for these neighboring points using the variogram of the larger window.

I have managed to get the interpolated value. However for each cell it takes around 0.04 second so for a grid of 200x300 it takes around 200x300x.04 i.e .67.hrs. I have around 400 sets of grids. So it will take me around 268 which is not acceptable. Is there any other efficient way to accomplish this?

$\endgroup$
3
  • 1
    $\begingroup$ This automated generation of variograms within moving windows misses most of the point of kriging, which derives any advantages it might have over other interpolators from the statistical analysis that goes into variogram modeling. Automated kriging procedures like this thereby tend to be heavily computing-intensive without offering many advantages over other far more expeditious interpolators. Reasonable alternatives, depending on the data characteristics and objectives of the interpolation, include various splines and local interpolation over a Delaunay triangulation. $\endgroup$
    – whuber
    Jun 9 '12 at 16:52
  • $\begingroup$ I can use delaunay triangulation. It's much efficient. However, it only does linear interpolation but doesn't take the spatial correlation into account. So, I wanted to use the variogram approach $\endgroup$
    – user31820
    Jun 11 '12 at 0:37
  • 1
    $\begingroup$ Actually, almost any interpolator implicitly "takes spatial correlation into account." E.g., with linear interpolation on a Delaunay triangulation, the nearest neighbors get varying weights, depending on their distance to the estimation point, and all other points get zero weights. So what's at issue is how spatial correlation is accounted for. Tests have shown that--depending on the data--kriging often is not the best interpolator in practice. Also, interpolation based on a triangulation need not be linear. You can spline the data, for instance. $\endgroup$
    – whuber
    Jun 11 '12 at 12:05
1
$\begingroup$

What (within Matlab) are you using for kriging? Some standard kriging package?

Anything based on gstat should let you specify a 'cutoff' in the variogram construction so you don't end up computing the full N*(N-1)/2 matrix, as well as providing options for kriging in a neighbourhood (which is kinda what you are doing manually).

In the R package for gstat you can specify to do the kriging predictions over a neighbourhood based on distances or number of points.

There may be some interface to gstat from matlab, but if not then try doing it in R with the neighbourhood options.

$\endgroup$
1
  • $\begingroup$ I am not using an kriging package. I am writing it on my own. So it's inefficient, that's why I was looking for alternatives $\endgroup$
    – user31820
    Jun 11 '12 at 0:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.