I am working on temperature data, and I want to interpolate the data to any location that I specify.

My programming language is asp.net4 C#. I don't know how can I determine the sill, range, nugget for experimental variogram or theoretical variogram.

I make the following code to calculate these variables in experimental variogram:

public void Calculate_EmpericalVari_nugget_sill_range()
double H=0,VaiogramValue;
int N = KnownPoints.Count;
for (int j = 0; j < N; j++)//calculate the emperical variogram
for (int i = 0; i < N; i++)
H = AucledianDistance(KnownPoints[i].X, KnownPoints[i].Y, 
KnownPoints[j].X,     KnownPoints[j].Y);
VaiogramValue = 0.5 * Math.Pow((KnownPoints[i].Z - KnownPoints[j].Z), 2);
Emper_Variogram[i][j] = VaiogramValue;
if (H==0) nugget = VaiogramValue;
if (sill < VaiogramValue)
sill = VaiogramValue;
range = H;

I work according to the following that sill is the maximum value and range is the distance when I get the sill and nugget is the value at distance equal zero?

Is this right? And do they remain constants when I calculate the theoretical semivariogram?

closed as unclear what you're asking by PolyGeo, Fezter, Curlew, BradHards, Paul Feb 18 '14 at 22:24

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Are you using the ArcGIS Platform to try and do this? I ask because your string of arcgis-* tags suggests yes but your Question title and tags make no mention of it? – PolyGeo Feb 18 '14 at 8:17
  • i programming the ordinary kriging in asp.net c# ,i tag it in arcgis to know how the values calculated in that software? i need to learn some information – The_programmer Feb 18 '14 at 8:39
  • 1
    I hate to say this, but it's important: if you are unsure how to estimate the parameters of a variogram, then you probably should not be kriging at all. The results will not have any of the statistical properties for which you selected the procedure in the first place and it will be far more complicated to carry out than simpler interpolators. There do exist reasonably good automated variogram fitting procedures using weighted least squares or maximum likelihood techniques. It makes no sense to code these yourself: if you must krige the temperature, use a good kriging package. – whuber Feb 18 '14 at 19:50

I would rather take the problem from the other point of view. Your experimental variogram should be used to fit a model (e.g. a spherical model), and then you can precisely derive the range and the sill.

from the definition, the range is the distance where the model levels out. At this distance, the model therefore reach its maximum. However, you will often find out that your experimental variogram has many local maxima, so that it is quite unsafe to define your sill and ranges by looking at the maximum of your experimental variogram.

The nugget is the intercept of the model with the Y-Axis. Again, I would rather evaluate it from the fitted model and not from the value at zero. It is also a good practice to think about its meaning in the "real world": the nugget reflect the absence of spatial correlation between to measurement at the same place. There are two cases :

  • your spatial correlation is very low (if you are lucky enough to find a gold nugget, your chances to find another just next to it are not larger than finding another one 100 m away). This is obviously not the case for temperature, so for this component it should be zero.

  • you have some measurement errors. This depends on the precision of the tools used to measure the temperature, so for this component the nugget could be , e.g., 0.5°C

As you see, the total nugget should be in the range of 0.5°C, you could fix it without looking at your data if you know the precision of your measurement.

Because temperature varies smoothly, I recommend the use of the Gaussian model.

  • do you mean that i must determine new value for sill,range,nugget at each a tempt until the theoratical(spherical,gaussian..) fitted with experimental variogram – The_programmer Feb 18 '14 at 8:52
  • I would use always the same value for nugget (based on the measurement error) and fit a Gaussian model (least square adjustment) on the experimental variogram. – radouxju Feb 18 '14 at 9:26
  • radouxju, the nugget value its often set to zero or increased .but i still not understand how to calculate the sill,range ..most researches use goodness fit R2 to fit the model ..this mean i will iterate several times until reach best fit ..does this reasonable ? – The_programmer Feb 18 '14 at 10:57

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