Jean-Marie Lepioufle
2010-Aug-19 11:27 UTC
[R] 2d kriging with anisotropy on an irregular network (RandomFields Package)
Dear List I am using the RandomFields package, and I have a problem when 2d-kriging, with an anisotropy, some values from an irregular network. It works well when : - 2d-kriging, without any anisotropy, some data from an irregular network - 2d-kriging, with and without anisotropy, some data from a regular network - 3d-kriging, with and without anisotropy, some data from a regular network Here is my script highly inspired by some examples from the package. rm(list=ls()) library(RandomFields) ############### # PARAMETERS ############### Mean<-1 Variance<-4.5 Range<-1 nbRainG<-20 rPoint <- 1:nbRainG points1 <- rPoint xMax<-5 yMax<-10 ############################################################## #CREATION OF AN IRREGULAR RAINGAUGE NETWORK, DATA SIMULATION ############################################################## model="exponential" param1 <- c("mean"=Mean,"variance"=Variance,"nugget"=0,"scale"=Range) RFparameters(PracticalRange=FALSE) data <- GaussRF(points1, grid=FALSE, model=model,param=param1) data[which(data<0)]<-0 xPoint <- runif(nbRainG,0,xMax) yPoint <- runif(nbRainG,0,yMax) MatCoord<-matrix(0,nr=nbRainG,nc=2) MatCoord[,1]<-t(xPoint) MatCoord[,2]<-t(yPoint) points2<-MatCoord dim(data)<-NULL ########################### # PARAMETERS FOR KRIGING ########################### stepSpace <- 0.25 xkrig <- seq(0,xMax,stepSpace) ykrig <- seq(0,yMax,stepSpace) valuesLim <- c(0,3) colour <- rainbow(100) ############### #2D KRIGING ############### #NO ANISOTROPY->It works krige.method <- "O" values <- Kriging(krige.method=krige.method, x=xkrig,y=ykrig,grid=TRUE, model=list( list(m="exp", v=Variance,s=Range) ), given=points2,data=data) #ANISOTROPY ->doesnt work anisoMatrix<-matrix(0,2,2) AnisoS<-1 #whatever this value, it doesn't work anisoMatrix[1,1]<-1 anisoMatrix[2,2]<-AnisoS krige.method <- "O" values <- Kriging(krige.method=krige.method, x=xkrig,y=ykrig,grid=TRUE, model=list( list(m="exp", v=Variance,s=Range,a=anisoMatrix) ), given=points2,data=data) ###### #END# ###### As an error message, R writes : Error: (in PrepareModel) do not mix isotropic definitions with anisotropic ones I don't know why. - The problem comes from adding the anisotropy parameter (a=anisoMatrix, in the function Kriging). When putting the anisotropy coefficient to one (ie isotropy), it doesn't work as well. - I have tested the script for several theoritical model of structure (sph,...), but it doesn't work as well - Even if the dimension of the data set is a vector in the case of irregular network (instead of a matrix in the case of a regular network), the anisotropy matrix has to stay with the dimension 2x2 (for a spatial network), and not a scalar. Does someone has any idea about this error? Some information about my system :> sessionInfo()R version 2.11.1 (2010-05-31) i386-pc-mingw32 locale: [1] LC_COLLATE=Norwegian (Bokmål)_Norway.1252 LC_CTYPE=Norwegian (Bokmål)_Norway.1252 [3] LC_MONETARY=Norwegian (Bokmål)_Norway.1252 LC_NUMERIC=C [5] LC_TIME=Norwegian (Bokmål)_Norway.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] RandomFields_1.3.41 Thanks a lot Jean-Marie [[alternative HTML version deleted]]