How to perform a Substitution Simulation

How to use RGeostats package step-by-step.

How to perform a Substitution Simulation

To know more about the substitution model used to simulate facies, see Ch. Lantuéjoul Book "Geostatistical Simulations - Models and Algorithms" (Springer)
In the following examples, 4 facies with same probabilities are generated.
The time computing can be very long as the target grid is quite large. This even increases when going from the simple case to the heterogeneous realizations. But this choice is meant to provide esthetic and convincing simulation outcomes.

Definition of the environment, i.e.the grid (gridtest), the color scale (pal4f) and the transition probabilities (TP):
Code: Select all
`gridtest=db.create(dx=c(1,1),nx=c(600,300))pal4f=c("blue","green","orange","red")TP=matrix(c(.7,.1,.1,.1,.1,.7,.1,.1,.1,.1,.7,.1,.1,.1,.1,.7),nrow=4,ncol=4,byrow=T)x11(width=5.5,height=4)`

Isotropic simulation:
Code: Select all
`a=simsub(gridtest,nfacies=4,seed=76543,intensity=0.8,trans=TP,flag.orient=F)plot(a,facies=4,col=pal4f,asp=1,title="Substitution Isotrope")`

Oriented simulation:
Code: Select all
`a=simsub(gridtest,nfacies=4,seed=12345,intensity=0.8,trans=TP,flag.orient=T,vector=c(0,1),factor=.8)plot(a,facies=4,col=pal4f,asp=1,title="Substitution Anisotrope")`

Tests on possible parameter variations. The variabilities can concern either the desorientation factor
or the desorientation direction along X or in 2D.

Variations:
Code: Select all
`gridtest=db.add(gridtest,factlin=x1*.3/600)a=simsub(gridtest,nfacies=4,seed=12345,intensity=0.8,trans=TP,flag.orient=T,vector=c(0,1),colfac="factlin")plot(a,facies=4,col=pal4f,asp=1,title="Substitution Heterogeneous_1")gridtest=db.add(gridtest,diry=1)gridtest=db.add(gridtest,aux=(x1-150)/450)gridtest=db.add(gridtest,dirx1=-1+8*(aux*aux-aux^4))a=simsub(gridtest,nfacies=4,seed=12345,intensity=0.8,trans=TP,flag.orient=T,colax="dirx1",colay="diry",factor=.8)plot(a,facies=4,col=pal4f,asp=1,title="Substitution Heterogeneous_2")gridtest=db.add(gridtest,dirx2=-1+8*((x2/300)*aux*aux-aux^4))a=simsub(gridtest,nfacies=4,seed=12345,intensity=0.8,trans=TP,flag.orient=T,colax="dirx2",colay="diry",factor=.8)plot(a,facies=4,col=pal4f,asp=1,title="Substitution Heterogeneous_3")gridtest=db.add(gridtest,fact2D=(.2+ifelse(x1>250,.4*(x1-250)/250,0)+ifelse(x2>80,.4*(x2-80)/80,0))/2)a=simsub(gridtest,nfacies=4,seed=12345,intensity=0.8,trans=TP,flag.orient=T,vector=c(0,1),colfac="fact2D")plot(a,facies=4,col=pal4f,asp=1,title="Substitution Heterogeneous_4")`

helene beucher

Posts: 6
Joined: Fri Sep 21, 2012 3:50 pm