The KRIGE2D Procedure

Computational Resources

To generate a predicted value at a single grid point by using N data points, PROC KRIGE2D must solve the kriging system

\[ \mb{C} \blambda _\mb {0} = \mb{C_0} \]

where the dimensions of $\mathbf{C}$ are $(N+1) \times (N+1)$ and the right-hand-side $\mathbf{C_0}$ has one column.

Holding the matrix and vector associated with this system in core requires approximately $8N^2/2$ bytes. The CPU time used in solving the system is proportional to $N^3$. For large N, this time dominates the O($N^2$) time to compute the elements of the covariance matrix $\mb{C}$ from the specified covariance or semivariogram model.

For local kriging, the kriging system is set up and solved for each grid point. Part of the setup process involves determining the neighborhood of each grid point. A fast K-D tree algorithm determines neighborhoods. For G grid points, the dominant CPU time factor is setting up and solving the G kriging systems. The N in the algorithm of the section Ordinary Kriging is the number of data points in a given neighborhood, and it can differ for each grid point.

In global kriging, the entire input data set and all grid points set up and solve the single system

\[ \mb{C} \blambda _\mb {0} = \mb{C_0} \]

Again $\mathbf{C}$ has dimensions $(N+1) \times (N+1)$, but $\blambda _\mathbf {0}$ and $\mathbf{C_0}$ now have G columns, where G is the number of grid points. Memory requirements are approximately $8[(N^2/2) + GN]$ bytes. The CPU time used in solving the system is still dominated by the $N^3$ factorization of the left-hand side.