https://github.com/cran/fields
Tip revision: e6e2dec9c9cc857b2226614aaf6c6642000af53c authored by Doug Nychka on 06 February 2009, 00:00:00 UTC
version 5.02
version 5.02
Tip revision: e6e2dec
Krig.make.W.R
# fields, Tools for spatial data
# Copyright 2004-2007, Institute for Mathematics Applied Geosciences
# University Corporation for Atmospheric Research
# Licensed under the GPL -- www.gpl.org/licenses/gpl.html
Krig.make.W<- function( out, verbose=FALSE){
if( verbose) { cat( "W", fill=TRUE) ; print( out$W)}
if( out$nondiag.W) {
#
# create W from scratch or grab it from passed object
if( is.null(out$W)){
if( verbose){ print( out$wght.function.name)}
W<- do.call( out$wght.function.name,
c( list( x=out$xM), out$wght.args ))
# adjust W based on diagonal weight terms
#
W<- sqrt( out$weightsM)* t( sqrt(out$weightsM)*W) }
else{
W<- out$W}
#
# symmetric square root
eigen( W, symmetric=TRUE)-> temp
W2<- temp$vectors%*% diag( sqrt( temp$values))%*% t( temp$vectors)
return( list( W=W, W2=W2)) }
else{
#
# These are created only for use with default method to stay
# consistent with nondiagonal elements.
if(out$fixed.model){
return(list( W=NULL, W2=NULL))}
else{
return(
list( W=diag(out$weightsM), W2=diag(sqrt(out$weightsM)))) }
}
}