Subscribe to this thread
Home - General / All posts - Kriging M9 vs M8

438 post(s)
#30-Nov-18 15:54

Hi all,

I use Kriging a lot in M8. Since M9 should be much faster I decided to give it a try in M9.

The procedure is as follows:

1) Drawing with points only and a "height" value for each point

2) Run the Kriging procedure with the following parameters:

margins: 125 m

pixel size: 5 m

method kriging (model auto)

neighbours: 10

use radius (125 m)

The result (after applying some coloring) is the 1st image. As you can see in the second image the radius of 125m is respected (I have drawn a buffer of 125 m around the points to illustrate this).

In M9 I tried to use exactly the same parameters on exactly the same data. The result can be ssen in the third image. Coloring (i.e. calculated values) are fine, but the area extents too far. Far beyond the 125 m.

Is this a bug, or are the parameters not comparible with those in M8? What's going on here?




8,687 post(s)
#30-Nov-18 16:23

Exactly what parameters did you use in 9?

It would also be useful to check the output from the log window (very informative).


8,687 post(s)
#30-Nov-18 16:28

I think it is this:

The Radius and Neighbours parameters in 9 are not applied in the same way as in 8. Their logical effect, when neither, only one, or both are specified, is carefully described in the manual. (Q.v.)


8,687 post(s)
#10-Dec-18 02:25


Coming back to this, I think your original point is right, and may show a bug.

First, though, a note about what the radius parameter does (or can do). This is mainly for my own benefit, and it may need further clarification or correction. (Corrections are very welcome.)

The radius parameter has two potential effects. It primarily defines the maximum distance between pairs of neighbouring points whose values will be compared, when computing the semivariogram.

Its secondary effect is to define the radius around the known data points for which pixels will be interpolated.

Do I have that right? Only the secondary effect is described in the Manifold 8 manual, and it could be that it does not limit the number of neighbours in version 8. On the other hand, only the primary effect is described in the Manifold 9 manual, but I am fairly sure that the secondary purpose is to be assumed (where applicable--see below).

Applying this to Manifold 9:

(1) In computing the semivariogram:

(a) If radius is specified without neighbours, then all neighbours within radius are compared.

(b) If radius and neighbours are both specified, then the number of neighbours within radius is capped at that number (the number may be less), nearest taken first.

(c) If neighbours is specified without radius, then that number of nearest neighbours is compared for each point, regardless of radius, up to the total number of points.

(d) If neither radius nor neighbours is specified, then all (and only) Voronoi neighbours are compared.

(2) In setting the interpolation range:

For (a) and (b), the interpolation range is defined by the radius.

For (c), the system calculates a radius "according to the global interpolation picture" (perhaps the maximum radius for any set of the given number of neighbours?), and uses this to set the interpolation range.

For (d), pixels are interpolated over the entire convex hull of the dataset. (Not specified in the manual.)

Now the possible bug:

In 2 (a), (b) and (c), the radius used to define the interpolation range (specified in (a) and (b), calculated in (c), is being multiplied by the pixel resolution.

(In your case Chris I think this is the specified 125m radius x 5m pixel resolution = 625m. I think if you use a 1m pixel resolution you will get the expected interpolation radius.)

I doubt that this is intentional, though it might be, for a reason I can't think of. (It is worth bearing in mind that the Manifold 9 manual does not spell out the effect of the radius parameter on interpolation range, as already noted above.)

For 1 (a) and (b) (and possibly (c)?), I don't know whether the radius is likewise being multiplied by the pixel resolution. I will try to think of a way to test that.

I will report this to Tech.


8,687 post(s)
#10-Dec-18 03:42

Another way of putting it:

While the radius parameter is measured in linear units (such as metres) for the purpose of measuring distances between neighbours (for computing the semiovariogram), the same parameter (or a calculated radius) is interpreted as if measured in pixels for the purpose of setting the interpolation range.

The interpretation as pixels seems unintended.

I will test whether the same applies to the Gravity interpolation method.


8,687 post(s)
#10-Dec-18 07:30

It does apply to Gravity as well.

Bug report sent.

I have not tested that Radius is measured in linear units (not pixels) for measuring distance between neighbours, for now just assuming that it does. I forgot to add that to the bug report.

Manifold User Community Use Agreement Copyright (C) 2007-2017 Manifold Software Limited. All rights reserved.