I am adding my message in the mail body as I found it missing from the mail 
that finally got posted on the list. 

I am trying to simulate a combination of two different random fields (yy1 and 
yy2 different mean and correlation length) with an irregular boundary. I have 
attached the picture of my expected outcome. The code is not giving such output 
consistently and I am frequently getting atleast one of the yy1 and yy2 as as 
NaN, which results in the Undesired output as shown in image. 

The key steps I used are:

1)      Created two gsat objects with different means and psill (rf1 and rf2)
2)      Created two computational grids (one for each random field) in the form 
of data frame with two variables "x" and "y" coordinates. 
3)      Predicted two random fields using unconditional simulation. 

The code is fairly small hence I am pasting in here itself. Any help in this 
regard would be highly appreciated. 

## Code starts 
===================================================================================
library(gstat)

xy <- expand.grid(1:150, 1:200) # grid is created in the form of a dataframe 
with x and y vectors
names(xy)<-c('x','y') # giving names to the variables

# Creating gsat objects

rf1<-gstat(formula=z~1,locations=~x+y,dummy = T,beta=c(1,0,0), 
model=vgm(psill=0.025, range=5, model='Exp'), nmax=20)  # dummy=T treats this 
as a unditional simulation
rf2<-gstat(formula=z~1,locations=~x+y,dummy = T,beta=c(4,0,0), 
model=vgm(psill=0.025, range=10, model='Exp'), nmax=20)  # dummy=T treats this 
as a unditional simulation

# Splitting the computational grid into two

rows<-nrow(xy)
xy_shift <- expand.grid(60:90, 75:100)
names(xy_shift)<-c('x','y')

library(dplyr) # for antijoin
xy1<-xy[1:(rows/2),]
xy1<-anti_join(xy1, xy_shift, by = c("x","y")) # creating the irregular boundary
xy2<-rbind(xy[(rows/2+1):rows,],xy_shift)

# Simulation

yy1<- predict(rf1, newdata=xy1, nsim=1) # random field 1
yy2<- predict(rf2, newdata=xy2, nsim=1) # random field 2

yy<-rbind(yy1,yy2)

# Plotting the field

library(sp)
gridded(yy) = ~x+y
spplot(obj=yy[1])

## Code 
ends=====================================================================

-----Original Message-----
From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Rathore, 
Saubhagya Singh
Sent: Wednesday, February 15, 2017 12:37 PM
To: r-help@r-project.org
Subject: [R] R version 3.3.2, Windows 10 -- gstat.predict() function often 
return NaN values (GSTAT Package)

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to