Simulating geostatistical data


Initial instructions

Check the guidelines for usage of the computational resources during the practical sesions.


Simulating geostatistical data

#####################################
##
## Simulando dados com a funcao grf()
## (simulacao nao-condicional)
##
#####################################
##
## 1. Preparativos iniciais
## ------------------------
##
##
## 1.1 Carregando o pacote geoR
##
## se necessario atualize a versao do geoR com o comando:
#install.packages("geoR", contrib="http://www.leg.ufpr.br/~paulojus/geoR/windows")
#
require(geoR)
##
## 1.2 Iniciando a ajuda no formato html (opcional)
##
options(htmlhelp=TRUE)
help.start()
##
## 1.3 Salvando padroes graficos iniciais e inicializando o gerador de numeros aleatorios 
##
par.ori <- par(no.readonly = TRUE)
if(!exists(".Random.seed")) set.seed(123)
##
## 1.4 Inspecionando os argumentos da funcao grf()
##
args(grf)
help(grf)
##
## 2. Uma primeira simulacao com argumentos minimos usando diversas opcoes "default"
## ---------------------------------------------------------------------------------
##
## 2.1 simula dados:
##
sim01 <- grf(50, cov.pars=c(1, .25))
##
## 2.2 inspeciona objeto com dados simulados:
##
sim01
##
## 2.3 inspeciona variogramas teorico e empirico
##
plot(sim01)
##
## 2.4 visualizando as localizaoes simuladas
##
## pode-se ainda visualizar as localizacoes dos dados simulados
plot(sim01, plot.loc=T)
## ou usar funcoes padrao de visualizacao de dados
plot.geodata(sim01)
points.geodata(sim01)
##
## Nota: veja ainda opcoes destas funcoes com:
##        args(plot.geodata)
##        args(points.geodata)
##
##
## 3. Uma segunda simulacao em grid regular
## ----------------------------------------
##
## 3.1 Simulando dados
##
sim02 <- grf(256, cov.pars=c(1, .3), grid="reg") 
##
## 3.2 Visualizando as simulacoes em grid regular
##
image(sim02)
persp(sim02)
## e, se desejar mude o angulo de visualizacao 
persp(sim02, theta=30, phi=20)
##
## Exercicio 01: Explorando as opcoes graficas
##
##  - inspecione outras opcoes em help(image.grf) e help(persp.grf)
##    e use estas opcoes para midoficar os graficos
##
##  - use as outras funcoes de visualizacao mencionadas anteriormente
##    (plot, plot.geodata, points.geodata)
##
##
## Exercicio 02: Explorando outros argumentos da funcao grf()
##
##  - gere novas simulacoes usando os argumentos: nx, ny, xlims e ylims
##
##
## 4. Usando simulacoes em 1D para compreender o modelo e seus parametros
## ----------------------------------------------------------------
##
## 4.1 Simulando com diferentes alcances ("range") definidos pelo parametro $\phi$ 
##
sim11 <- grf(100, ylims=c(0,0), cov.pars=c(1, 0.25))
image(sim11)
image(sim11, type="l")
image(sim11, type="b", cex=0.5)
##
sim12 <- grf(100, ylims=c(0,0), cov.pars=c(1, 0.0))
image(sim12, type="l")
##
sim13 <- grf(100, ylims=c(0,0), cov.pars=c(1, 0.5))
image(sim13, type="l")
##
par(mfrow=c(3,1), mar=c(2,2,1,1))
yl <- range(c(sim11$data, sim12$data, sim13$data))
image(sim11, type="l", ylim=yl)
image(sim12, type="l", ylim=yl)
image(sim13, type="l", ylim=yl)
par(par.ori)
##
## Exercicio 03: 
##
##  - gere diferentes simulacoes variando o parametro $\sigma^2$ no argumento cov.pars
##    e discuta os resultados
##
##
## 4.2 Simulacoes com diferentes modelos de variograma
##
sim21 <- grf(100, ylims=c(0,0), cov.pars=c(1, 0.75), cov.model="sph")
image(sim21, type="l")
##
sim22 <- grf(50, ylims=c(0,0), cov.pars=c(1, 0.75/sqrt(3)), cov.model="mat", kappa=2)
image(sim22, type="l")
##
par(mfrow=c(3,1), mar=c(2,2,1,1))
yl <- range(c(sim11$data, sim21$data, sim22$data))
image(sim11, type="l", ylim=yl)
image(sim21, type="l", ylim=yl)
image(sim22, type="l", ylim=yl)
par(par.ori)
##
##
## Exercicio 04: Explorando os modelos de variograma
##
##  - gere e compare simulacoes com o modelo de Matern
##    (cov.model="mat") com diferentes valores
##    no argumento kappa (tente, por exemplo valores 0.5, 2 e 5)
##
##  - tente tambem com cov.model="gau" e observe se ha'
##    mensagens de alerta
##
##  - gere e compare simulacoes com outros modelos de variogramas
##
##
## 4.3 Simulacoes com ruido
##
sim31 <- grf(50, ylims=c(0,0), cov.pars=c(1, 0.75/sqrt(3)), nugget = 0.1, cov.model="gau")
##
## repare novamente se ha' alguma mensagem de alerta (warning) !
##
image(sim31, type="l")
##
## Agora gerando simulacoes com a mesma "semente" e com
## diferentes  niveis de ruido
##
sim32 <- grf(100, ylims=c(0,0), cov.pars=c(1, 0.25))
sim32 <- grf(100, ny=1, cov.pars=c(1, 0.25))
##
sim33 <- grf(100, ylims=c(0,0), cov.pars=c(0.75, 0.25), nug=0.25)
##
sim34 <- grf(100, ylims=c(0,0), cov.pars=c(0.5, 0.25), nug=0.5)
##
par(mfrow=c(3,1), mar=c(2,2,1,1))
yl <- range(c(sim32$data, sim33$data, sim34$data))
image(sim32, type="l", ylim=yl)
image(sim33, type="l", ylim=yl)
image(sim34, type="l", ylim=yl)
par(par.ori)
##
##
## Exercicio 05: Simulacoes com ruido
##
##  - gere em compare mais simulacoes com differentes valores no argumento nugget
##
##
## 4.4 Modelos com anisotropia
##
sim41 <- grf(961, grid="reg", cov.pars=c(1, .15), aniso.pars=c(pi/4, 3))
image(sim41)
##
## Exercicio 06: Simulacoes com anisotropia
##
##  - gere em compare simulacoes com differentes valores no argumento aniso.pars
##
##
## Exercicio 07: Simulacoes de variaveis nao-Gaussianas
##
##  - gere, explore e compare simulacoes com differentes valores no argumento lambda
##
##
## 5. Gerando simulacoes em grids muito finos (com muitos pontos)
##
sim51 <- grf(40401, grid = "reg", cov.pars = c(10, .2), met = "circ") 
image(sim51)
      
NOTE: We strongly recommend the the package RandomFields (by Martin Schlather) for more on simulation of geostatistical data.