rm(list=ls())
library(gstlearn)
library(ggplot2)
library(ggpubr)
library(ggnewscale)
flagInternetAvailable=TRUE
## Data points
fileNF = "Scotland_Temperatures.NF"
if(flagInternetAvailable){
download.file(paste0("https://soft.minesparis.psl.eu/gstlearn/data/Scotland/",fileNF), fileNF, quiet=TRUE)
}
dat = Db_createFromNF(fileNF)
## Target grid
fileNF = "Scotland_Elevations.NF"
if(flagInternetAvailable){
download.file(paste0("https://soft.minesparis.psl.eu/gstlearn/data/Scotland/",fileNF), fileNF, quiet=TRUE)
}
grid = DbGrid_createFromNF(fileNF)
p = ggplot()
p = p + plot.hist(dat,"January*")
p = p + plot.decoration(title="Temperatures")
ggPrint(p)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
anam = AnamHermite(30)
err = anam$fitFromLocator(dat)
err = anam$rawToGaussian(dat, "January_temp")
anam
##
## Hermitian Anamorphosis
## ----------------------
## Minimum absolute value for Y = -2.8
## Maximum absolute value for Y = 2.7
## Minimum absolute value for Z = 0.62599
## Maximum absolute value for Z = 5.24756
## Minimum practical value for Y = -2.8
## Maximum practical value for Y = 2.7
## Minimum practical value for Z = 0.62599
## Maximum practical value for Z = 5.24756
## Mean = 2.81457
## Variance = 1.01677
## Number of Hermite polynomials = 30
## Normalized coefficients for Hermite polynomials (punctual variable)
## [, 0] [, 1] [, 2] [, 3] [, 4] [, 5] [, 6]
## [ 0,] 2.815 -1.003 0.010 0.067 0.005 0.030 -0.007
## [ 7,] -0.035 0.009 0.027 -0.011 -0.019 0.014 0.013
## [ 14,] -0.017 -0.008 0.019 0.004 -0.020 -0.001 0.020
## [ 21,] -0.002 -0.018 0.004 0.016 -0.005 -0.014 0.006
## [ 28,] 0.011 -0.005
p = ggplot()
p = p + plot.XY(dat["Y.January_temp"], dat["January_temp"], flagLine=FALSE, flagPoint=TRUE)
p = p + plot.decoration(xlab="Gaussian", ylab="Raw")
ggPrint(p)
p = ggplot()
p = p + plot.hist(dat,"Y.January*")
p = p + plot.decoration(title="Temperatures (Gaussian scale)")
ggPrint(p)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
We calculate the experimental directional variogram of the gaussian scores and fit the Model (with the constraints that sill should be 1)
varioparam = VarioParam_createMultiple(ndir=2, npas=40, dpas=10)
vario_gauss2dir = Vario_create(varioparam, dat)
err = vario_gauss2dir$compute()
fitmodgauss = Model()
err = fitmodgauss$fit(vario_gauss2dir,
types=ECov_fromKeys(c("NUGGET", "SPHERICAL","CUBIC")),
constraints = Constraints(1))
ggplot() + plot.varmod(vario_gauss2dir, fitmodgauss)
neighU = NeighUnique_create()
err = kriging(dat, grid, fitmodgauss, neighU)
p = ggDefaultGeographic()
p = p + plot(grid,"*estim")
p = p + plot(dat)
p = p + plot.decoration(title="Kriging of Gaussian scores")
ggPrint(p)
p = ggDefaultGeographic()
p = p + plot(grid,"*stdev")
p = p + plot(dat, flagCst=TRUE)
p = p + plot.decoration(title="St. Dev. of Gaussian scores")
ggPrint(p)
Use the Turning Bands method with 1000 simulations
selectivity = Selectivity_createByKeys(c("Z"), flag_est=TRUE, flag_std=TRUE)
err = ConditionalExpectation(grid, anam, selectivity, "K*.estim", "K*.stdev",
nbsimu=100,
namconv=NamingConvention("CE",FALSE,TRUE,FALSE))
p = ggDefaultGeographic()
p = p + plot(grid,"CE*estim")
p = p + plot(dat)
p = p + plot.decoration(title = "Conditional Expectation")
ggPrint(p)
p = ggDefaultGeographic()
p = p + plot(grid, "CE*stdev")
p = p + plot(dat, flagCst=TRUE)
p = p + plot.decoration(title="Conditional Standard Deviation")
ggPrint(p)
selectivity = Selectivity_createByKeys(c("PROP"), zcuts=c(0),
flag_est=TRUE, flag_std=TRUE)
err = ConditionalExpectation(grid, anam, selectivity,
"K*.estim", "K*.stdev",
namconv=NamingConvention("CE",FALSE,TRUE,FALSE))
p = ggDefaultGeographic()
p = p + plot(grid,"CE.Proba*estim")
p = p + plot(dat)
p = p + plot.decoration(title = "Conditional Probability below 0")
ggPrint(p)
selectivity = Selectivity_createByKeys(c("T"), zcuts=c(1),
flag_est=TRUE, flag_std=TRUE)
err = ConditionalExpectation(grid, anam, selectivity, "K*.estim", "K*.stdev",
namconv=NamingConvention("CE",FALSE,TRUE,FALSE))
p = ggDefaultGeographic()
p = p + plot(grid,"CE.T*estim-1")
p = p + plot(dat)
p = p + plot.decoration(title = "Conditional Probability above 1")
ggPrint(p)
p = ggDefaultGeographic()
p = p + plot(grid, "CE.T*stdev-1")
p = p + plot(dat, flagCst=TRUE)
p = p + plot.decoration(title = "Conditional probability (Standard Deviation)")
ggPrint(p)