The GLOBEC Kriging Software Package - EasyKrig2.1, May 1, 2000

 

Copyright (c) 1998, property of Dezhang Chu and Woods Hole Oceanographic Institution.  All Rights Reserved.

 

The kriging software described in this document was developed by Dezhang Chu with funding from the National Science Foundation through the U.S. GLOBEC Georges Bank Project's Program Service and Data Management Office. It was inspired by a MATLAB toolbox developed by Yves Gratton and Caroline Lafleur (INRS-Océanologie, Rimouski, Qc, Canada), and Jeff Runge (Institut Maurice-Lamontagne). This software may be reproduced for noncommercial

purposes only.

 

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. Contact Dr. Chu at dchu@whoi.edu with enhancements or suggestions for changes.

 

 

Table of Contents:

1. Introduction

1.1  General Information

1.1.1 Operating systems

1.1.2 Brief descriptions

1.2  Getting started

1.2.1 Down-load the program

1.2.2 Quick start

2. Data Processing Stages

2.1  Data preparation

2.2  Semi-variogram

2.3  Kriging

2.4  Visualization

2.5  Saving results

3. Examples

4. References

 

1. Introduction

1.1 General Information

1.1.1 Operating systems

The software was originally developed under Matlab 5.2 on a PC and intended to be computer and/or operating system platform independent. The program has been tested on various machines and performs fine. [The current version of easyKrig software is not compatible with Matlab 6. A version that is compatible will be available soon. 10/23/03] The following table shows the tested machines/OS:

 

Computer                               OS

----------------------------------------------------------------------------------------------

PC-compatible                      Windows 95/NT, Windows 98*

PC                           Linux (Red Hat 5.2)

SUN                        UNIX (Solaris)

SGI                          UNIX  (Irix)

Macintosh             OS 8.6

----------------------------------------------------------------------------------------------

* Windows98 needs to get the patch from Mathworks to fix the graphical user interface (GUI) related bugs, see instructions from Mathworks web site:

http://www.mathworks.com/

 


 

1.1.2 Brief description

The program uses a graphical user interface (GUI) to simplify the operation. It requires Matlab 5.2 or higher with or without optimization toolbox (see section 2.2) and consists of five components, or processing stages: (1) data preparation, (2) variogram computation, (3) kriging, (4) visualization and (5) saving results. It allows the user to process anisotropic data, select a list of variogram models, and a choice of kriging methods, which are also common features of the other existing software packages. One of the major advantages of this program package is that the program minimizes the users' requirements to "guess" the initial parameters and automatically generates the required default parameters. In addition, because it uses a GUI, the modifications from the initial parameter settings can be easily performed. Another feature of this program package is that it has a built-in on-line help library that allows the user to understand the use of parameter and operation buttons by just a simple click.

 

Although this software package lacks some abilities such as 3D- and Co-kriging, it does provide a convenient tool for geostatistical applications and should also help scientists from other fields.

 

1.2 Getting Started

1.2.1 Down-load the program

  You can

(a)         download the compressed file from GLOBEC web site;

ftp://globec.whoi.ed/pub/software/kriging/easy_krig/V2.1/

Windows 95/98/NT:                            easy_krig21.zip

LINUX:                                                  easy_krig21.zip

UNIX(LINUX):                                     easy_krig21.tar.Z

Macintosh:                                            easy_krig21mac.zip**

and then run

                                unzip for Windows (95/98/NT), and Linux

uncompress + untar for UNIX-based machine (including Linux)

unstuff for Macintosh (or equivalent software)

to uncompress the file. After uncompressing the file, you are ready to start and run the program.

 

or

(b) obtain the original uncompressed files (and sub-directories) directly:

ftp://globec.whoi.edu/pub/software/kriging/easy_krig/V2.1/easy_krig2.1/

(using binary  mode for UNIX, automatic for Macintosh)

 

** requires Stuffit Expander software to unstuff the compressed file. If you don't have it, you can get it free from the Internet:                 http://www.aladdinsys.com/downloads/index.html      

 

1.2.2 Quick start

Start MATLAB and go to the designated easy_krig2.1 home directory (for Macintosh users, you may need to increase your allocated memory to at least 48MB). Just type 'startkrig' in the MATLAB command window, a window will pop up. This window is the base window, called the Navigator window. The menu bar in this window contains many options you can choose. Now you are ready to move on.

 

Note: You can add the kriging home directory and run the program from other directories. However, you have to make sure that there are no functions of your own having the same name as those used for easy_krig2.1. Since the program will allow you to load and save files using a file browser, it is recommended that you run the program under the easy_krig2.1 home directory.

 

The program provides many on-line help buttons; the use of almost all of the selectable functions and parameters can be found by clicking on these help buttons (small buttons each with a question mark '?' on it). It is quite self-explanatory and easy to use.

 

2. Data Processing Stages

There are several data processing stages (tasks) that are selectable from the menu bar on the top of the main Navigator window. By selecting or clicking on any of the tasks, a window corresponding to the task will pop up. On each task window, small buttons marked with a question mark '?' provide the on-line help. By clicking on the button, a small window will pop up and provide the information about the use of the parameter or operation button. On any window, clicking on the 'Navigator' button, or selecting 'Navigator' from the menu bar and then 'Open' from the pull down sub menu will activate the navigator window.

 

2.1  Data preparation

Selecting 'Load Data' from the menu bar of any window and then 'Open' from the sub-menu leads to the data preparation window. Click on the 'Load' button to load the raw data file. The format of the data file should be a 3-column ASCII file. User(s) can provide their own m-file to load the data. This function allows the user to generate the input data directly from the raw data instead of generating an ASCII file. The required format for the input and output parameters can be found by clicking on the small square button marked with a '?' mark next to the 'Browse' button (disabled by default) associated with the 'External Program' option. One can set the other parameters before loading the file. After the file is loaded, if the user wants to change the other settings, such as data filter, click on 'Apply' after the parameters have been set. The difference between 'Load' and 'Apply' is that the latter will not re-load the data file. For example, to change the 'xlabel' or 'ylabel' after having loaded the data, one needs to re-load the data.

 

2.2  Semi-variogram

Selecting 'Variogram' from the menu bar and then 'Open' from the sub-menu leads to a popup variogram window. First, click on the 'Compute' button to generate a data-based semi-variogram (or correlogram). Then, seek a model-based semi-variogram (or correlogram) to fit the computed variogram. The relation between the semi-variogram γ(h) and the correlogram C(h) is:

 

C(h) = 1 - γ(h),

 

where h is the lag distance. An appropriate variogram (correlogram) model can be selected depending on the shape of the variogram (correlogram) computed from the data. The explanations of the parameters associated with the model can be found using the on-line help button ('?' button). Click on the 'Apply' button and the program will compute the model-based variogram/correlogram using the current settings. The parameter settings can be changed either by changing the slider position or by entering the number directly into the text edit window. If using the slider, the theoretical curve will change automatically, while if entering the number into the text edit window, the user needs to click on the 'Apply' button to re-compute the curve.

 

                If the optimization toolbox (recommended) is installed, the user can use the Least-Squares fit function to fit the data by clicking on the 'LSQ fit' button. If the optimization toolbox isn't installed, the program will automatically disable the Least-Square fit function.

 

Note that since the LSQ fit has a certain range for each parameter, different initial settings (parameters) will produce different results.

 

In some cases when the data are anisotropic, an anisotropic variogram (correlogram) model can be activated. By clicking on 'enable 2D-variogram' button, the corresponding settings are enabled. If you don't know or are not sure of the orientation and aspect ratio of the anisotropic feature of the data, you can use the default settings first and then adjust to obtain satisfactory results.

 

2.3  Kriging

Selecting 'Kriging' from the menu bar and then 'Open' from the sub-menu opens the kriging window. The parameters of the variogram (or correlogram) needed in the kriging operation are automatically passed from variogram window to kriging window, but can be changed from the kriging window. Click on the 'Refresh' button to obtained the most recent semi-variogram parameters and click on the 'Krig' button to start the kriging. There are two passes of kriging; the first one is used in producing the kriging map and the second one is used to perform a cross validation of the kriging model.

 

2.4  Visualization (Display)

Choosing 'Display' from the menu bar and then 'Open' from the sub-menu leads to the visualization window. There are three figures in this window: kriging map (upper left), kriging-variance map (upper right) and cross-validation (lower left). The first two maps are commonly used in the kriging literature while the last one is a unique approach of this program.

 

Click on the 'Show Plot' button to display the current kriging results and on 'Load' to load previously saved results (.mat file). You can also load the file by selecting 'File' from the menu bar and selecting 'Load Data'.

 

If the data have been transformed in the data preparation window, you can choose either transformed (default) or un-transformed results.

 

By choosing the single plot option, a window containing only the selected figure will pop up.

 

2.5  Saving results

Selecting 'File' from the menu bar and then choosing 'Save Data' to save the output as a .mat file with a user-defined filename and at the user-selected location. The program saves the parameters and data structures (para and data) in the file. For information on the structures, the user needs to Select 'File' from the menu bar and then 'Variable Structure' to obtain explanations for all variables (note that many variables are not important to users).

 

3. Examples

There are some sample data files included in the package. All files are in ASCII format which is required by the program. In the following two examples, the designated krig directory is assumed to be 'easy_krig2.1'.

 

Example 1:  An Aerial Image of Zooplankton Abundance Data

 

(1)         Start MATLAB; in the MATLAB command window, change directory to the home directory of EasyKrig2.1. Type 'startkrig' to launch the program.

 

(2)         Adjust the window size and position and select 'Save Window Position' option from the menu bar and then 'Save Position' from the sub-menu. Click on the 'Instruction' button to load this document into the MATLAB Editor.

 

(3)         Select 'Load Data' from the menu bar and then 'Open' from the sub-menu to bring up the data preparation window.

(a)         Select 'LATITUDE' from listbox of DataFile Col. 1 (default).

(b)         Select 'LONGITUDE' from listbox of DataFile Col. 2 (default).

(c)         Leave other parameters unchanged.

(d)         Click on the 'Load' button to bring up a file browser window, select 'data' directory, and then select 'zooplankton.dat' file in the 'data' directory to load the selected file into memory.

 

(4)     Select 'Variogram' from the menu bar and then 'Open' from the sub-menu to bring up the variogram window.

(a)         Click on the 'Compute' button to compute the semi-variogram (correlogram). This plots the semi-variogram (correlogram) as discrete open circles.

(b)         Select 'General exponential-Bessel' (default) from the variogram model listbox on the upper right. Click on the 'LSQ Fit' button. If you don't have optimization toolbox, click on the 'Apply' button, a theoretical model-based semi-variogram will be superimposed on the original data-based semi-variogram. The resultant semi-variogram parameters from the least-square fit (if you have optimization toolbox) or from the default settings (if you don't have optimization toolbox) are shown in the text edit windows within the 'Model Parameters' frame.

(c)         Clicking on the sliders associated with the variogram parameters, the theoretical curves will change accordingly to reflect the parameter changes. The parameters also can be changed by entering the values directly into the text edit windows and clicking on the 'Apply' button.

(d)         Type 0 in the 'nugget' text edit window, 1.0 in the 'sill' text edit window, 0.14 in the 'length' text edit window, 1.5 in the 'power' window, and 0 in the 'hole scl' (hole scale) text edit window. Then, click on the 'Apply' button. A revised theoretical  curve of the model-based semi-variogram will be plotted.

 

(5)     Select 'Kriging' from the menu bar and then 'Open' from the sub-menu to bring up the kriging window.

(a)     Simply click on the 'Krig' button to start kriging by accepting the default settings. A status window pops up and displays the processing progress. When the kriging is done, click on the 'Quit' button to close the status window.

 

(6)     Select 'Display' from the menu bar and then 'Open' from the sub-menu to bring up the visualization window.  

(a)         Simply click on the 'Show Plot' button to display the kriging results. Note that the station positions on the kriging map are color-coded to reflect the level of the agreement of the kriged results with the original data. The cross-validation figure (lower left) uses the double-kriging method (default).

(b)         Click on 'Track Line' from the menu bar and then select between 'Color', 'Black/White' and 'None' to observe the color change of the locations of the original data. Selecting 'Value' or 'Error', and specifying the 'Color' and 'Fontsize' allows the user to display the observed values or the difference between the observed values and those from kriging.

(c)         Type 1.0 in the 'Display Threshold' text window and click on the 'Show Plot' button. There are blank regions on the kriging map, where the normalized kriging variance (normalized by the variance) exceeds specified 'Display Threshold' 1.0. Change this number to another value to see how the kriging map changes. The maximum 'Display Threshold' is defined as 'Relative Error' in the kriging window (default value is 1.5).

(d)         Select 'Q1' from the cross-validation list box and wait until the computation is done. A vertical red line at about 0.07 in between the two black lines at about 0.5 and -0.5 indicates the model parameters are good based on Q1 criterion.

(e)         Select 'Q2' from the cross-validation list box results in another plot. A vertical red line is located within the accept region at about 0.78, which means the model parameters are likely 'good'.

 

(7)     Select 'File' from the menu bar and then select 'Save Data' to bring up the file browser window.

(a)         Select 'output' directory and any name you like (the default filename is cal83sal.mat) and click on the 'Save' button.

(b)         Click on 'Quit' from the menu bar and then 'Quit Easykrig' from the sub-menu to quit the program. Restart the program again by typing 'startkrig' in the MATLAB command window. Click on the 'Display' button and then 'Open' from the sub-menu to bring up the visualization window, and click on the 'Load' button to load the output file that has just been saved by using the file browser.

(c)         Click on the 'Show Plot' button to display the kriging results, which should be the same as before.

 

(8)   Select 'Navigator' from the menu bar and then 'Open' from the sub-menu to bring up the navigator window.

(a)       Select 'About' from the menu bar and then 'Variable Structure' from the sub-menu to open the data structure description file.

(b)       Follow the instruction and try to load and plot the output variables yourself.

 

Example 2: A Vertical Section of Salinity Data

 

(1)      Start MATLAB; in the MATLAB command window, change directory to the home directory of EasyKrig2.1. Type 'startkrig' to launch the program.

 

(2)      Select 'Load Data' from the menu bar and then 'Open' from the sub-menu to bring up the data preparation window.

(a)         Select 'X' from listbox of DataFile Col. 1.

(b)         Select 'Depth' from listbox of DataFile Col. 2.

(c)         Leave other parameters unchanged.

(d)         Click on the 'Load' button to bring up a file browser window, select 'data' directory, and then select 'salinity.dat' file in the 'data' directory to load the selected file into memory.

(e)         Select 'y-axis reverse' to reverse the y axis.

 

(3)      Select 'Variogram' from the menu bar and then 'Open' from the sub-menu to bring up the variogram window.

(a)         Click on the 'Compute' button to compute the semi-variogram (correlogram). This plots the semi-variogram (correlogram) as discrete open circles.

(b)         Select 'Linear' from the variogram model listbox on the upper right. Click on the 'LSQ Fit' button [If you don't have optimization toolbox, go to step (c).] A theoretical model-based semi-variogram (a straight line in this case) will be superimposed on the original data-based semi-variogram.

(c)         Type 0 in the 'nugget' parameter edit window, and type 1.7 in the 'sill' parameter edit window, and then click on the 'Apply' button. A revised theoretical curve of the model-based semi-variogram will be plotted.

 

(4)   Select 'Kriging' from the menu bar and then 'Open' from the sub-menu to bring up the kriging window.       

(a) Simply click on the 'Krig' button to start kriging by accepting the default settings.

 

(5)   Select 'Display' from the menu bar and then 'Open' from the sub-menu to bring up the visualization window.  

(a)         Simply click on the 'Show Plot' button to display the kriging results. Note that the ship track on kriging map is color-coded to reflect the level of the agreement of the kriged results with the original data. The cross-validation figure (lower left) uses the double-kriging method (default).

(b)         Select 'y-axis reverse' to reverse the y axis.

(c)         Select 'Q1' from the cross-validation list box and wait until the computation is done. A vertical red line in between the two black lines at about 0.1 and -0.1 indicates the model parameters are good based on Q1 criterion.

(d)         Select 'Q2' from the cross-validation list box results in another plot. A vertical red line is located beyond the accept region at about 0.22, which means the model parameters are likely not 'good' and further modifications to the parameters are needed.

 

(6)   Select 'Variogram' from the menu bar and then 'Open' from the sub-menu to bring back the variogram window.

(a)         Select 'enable 2D-variogram' to enable 2D variogram that allows 2D anisotropy.

(b)         Click on the 'computing' button within the 'enable 2-D variogram' box to compute and display the 2D variogram (image).

(c)         Since the variogram image shows an elongated pattern having an aspect ratio about 1:4 and an orientation angle about 5 degree, we enter 0.25 in the 'Aspect Ratio' edit window and 5 in the 'Angle' edit window, and then click on the 'computing' button again. A recomputed 2-D semi-variogram shows basically an isotropic pattern.

(d)         Click on the 'Compute' button on the right again to re-compute the 1D semi-variogram from the data using the automatically saved anisotropic parameters obtained in (c). This step is necessary to obtain the correct semi-variogram.

(e)         Adjust display control by clicking on the two sliders ('Lag' and 'Value') below the graphic window.

(f)          Select variogram model 'General exponential-Bessel' (model 13).

(g)         Enter 0.6 in the range edit window and click on the 'LSQ fit' button. If you don't have optimization toolbox, set 'sill' to 0.46, 'length' to 0.34, 'power' to 1.76 and 'hole scl' to 0.

(h)         Change 'nugget' to about 0.0165 by entering the number in the edit window and then click on 'Apply'. Adjust display scale by clicking on the two sliders below the 1-D semi-variogram graphic window, lag for horizontal scale and value for vertical scale.

 

(7)   Select 'Kriging' from the menu bar and then 'Open' from the sub-menu to bring back the kriging window and click on the 'Krig' button to re-compute the kriging map.

 

(8)   Select 'Display' from the menu bar to bring back the visualization window.

(a)         Click on 'Show Plot' to refresh the maps.

(b)         As in (5), select 'Q1' and 'Q2' again, we find that both Q1 and Q2 are now within the acceptable regions. Note that by using an anisotropic model, some improvements can be achieved, but the kriging map itself doesn't change much.

 

(9)   Select 'File' from the menu bar and then select 'Save Data' to bring up the file browser window.

(a)         Select 'output' directory and any name you like (the default filename is cal83sal.mat) and click on the 'Save' button.

(b)         Click on 'Quit' from the menu bar and then 'Quit Easykrig' from the sub-menu to quit the program. Restart the program again by typing 'startkrig' in the MATLAB command window. Click on the 'Display' button and then 'Open' from the sub-menu to bring up the visualization window, and click on the 'Load' button to load the output file that has just been saved by using the file browser.

(c)         Click on the 'Show Plot' button to display the kriging results, which should be the same as before.

 

Example 3:  Batch Process of Potential Density at Different Depth

 

(1)     Start MATLAB; in the MATLAB command window, change directory to the home directory of EasyKrig. Type 'startkrig' to launch the program.

 

(2)   Select 'Load Data' from the menu bar and then 'Open' from the sub-menu to bring up the data preparation window.

  (a)   Select 'LATITUDE' from listbox of DataFile Col. 1 (default).

(b)     Select 'LONGITUDE' from listbox of DataFile Col. 2 (default).

(c)   Select 'External Program', the external program browser is enabled and a filename window appears.

        (d)   Click on the file broswer, change directory to extern_program and select 'remove_nan.m', and then click 'open' enabling the program to access the program (If this external program is not chosen, the locations where the data values are NaN's will be displayed on the map). This program provides an example to write your own routine to obtain the required data format for EasyKirg from an arbitrary data file.

                (e)   Leave other parameters unchanged.

(f)    Click on the 'Load' button to bring up a file browser window, select 'data/pdensity' directory, and then select 'layer12.dat' file in the directory to load the selected file into memory.

 

(3)   Select 'Variogram' from the menu bar and then 'Open' from the sub-menu to bring up the variogram window.

(a)     Click on the 'Compute' button to compute the semi-variogram (correlogram). This plots the semi variogram (correlogram) as discrete open circles.

(b)     Select 'General exponential-Bessel' (default) from the variogram model listbox on the upper right. Click on the 'LSQ Fit' button. If you don't have optimization toolbox, click on the 'Apply' button, a theoretical model-based semi-variogram will be superimposed on the original data-based semi-variogram. The parameters from the least-square fit (if you have optimization toolbox) or from the default settings (if you don't have optimization toolbox) are shown in the text edit windows within the 'Model Parameters' frame.

                (c)   You can change the model as you want or accept the parameters by moving on to the next step.

 

(4)   Select 'Kriging' from the menu bar and then 'Open' from the sub-menu to bring up the kriging window.   

(a)     Set coordinates as:

                                                minimum horizontal to -22

                                 maximum horizontal to -12

                                                horizontal resolution to 0.4

                                                minimum vertical to -25

                                                maximum vertical to -20

                                                vertical resolution to 0.2

(b)      Select 'Batch Processing' (radio button) to enable the batch processing.

(c)     Click on the 'Browse' button next to the 'Load Filename-list file' to initiate the file browser. Change the directory to 'data' and select 'batch_file.dat' to load the filename-list file in which a list of data file names is specified.

(d)     Click on the 'Browse' button next to the 'Save batch log file' to initiate the file browser. Change the directory to 'output', or wherever you want. Type a file name for the log file, where the input/output information is saved.

(e)     Click on the 'Batch Krig' button to start batch kriging. The output files will be saved in the same directory as the batch process log file.

 

(5)   Select 'Display' from the menu bar and then 'Open' from the sub-menu to bring up the visualization window.

(a)     Click on the 'Show Plot' button to display the kriging results from the last data set: 'layer14'.

(b)     Check the output for the other layers.  To check the processing results, you need to load the output files. Click on the 'Load' button and then change the directory where your log file is saved. Load one of the output files ('layer10.dat'-'layer14.dat') and display it by click on the 'Show Plot' button.

(c)     If you are not satisfied with the kriging results, you can go back to the 'Variogram' window and/or 'Kriging' window to change the the involved parameters, and re-kriging until you are satisfied. For example, by setting nugget=0.05, sill=1.16, length=.253, power=1.5, and hole scl=0 in the variogram window and performing kriging again, you will obtain a better result, i.e., the resultant Q1 and Q2 will fall within the acceptable regions.

 

4. References. 

 

Deutsch, C. V and A. G. Journel, 1992. GSLIB: Geostatistical Software Library

and User's Guide. Oxford University Press, Oxford, 340 p.

 

Journel, A.G. & C.J. Huijbregts, 1992. Mining Geostatistics. Academic Press, New

York, 600 p.

 

Kitanidi, P.K. 1997. Introduction to Geostatistics. Applications in hydrogeology. Cambridge University Press. 249 p.

 

Marcotte, D. 1991. Cokriging with MATLAB. Computers & Geosciences. 17(9):1265-1280.