Revision da8174e204c4b3c8aff0fa179a0b53656129ef8e authored by Martin Schlather on 01 March 2004, 00:00:00 UTC, committed by Gabor Csardi on 01 March 2004, 00:00:00 UTC
1 parent 3e1677b
Raw File
\title{Interactive Choice of Models and Parameters}
  \code{ShowModels} is an interactive plot for
  the selection of 
 models and their one- or two-dimensional simulations;
 it also allows for the fitting of variogram models by eye.
ShowModels(x, y=NULL,
           covx=ifelse(is.null(empirical), diff(range(x))/5,
 , method=NULL, empirical=NULL,
           model=NULL, param=NULL, all.param=NULL, PracticalRange=FALSE,   
           legends = TRUE, register=0, Mean=NULL, erase=TRUE,
           x.fraction=0.60, cex.names=1, covx.default = 100,
           link.fct=NULL, Zlim=NULL, maxstable.maxGauss=2,
           Col.rect="red","blue", Col.sep="grey",
           Col.line="red", Col.txt="black", Col.flash="red",
           Col.vario="blue", Col.main="black",
           Col.model=c("red", "black"),  vario.lty=c(1,2), 
           cex.leg =0.7,  update=TRUE,, debug=FALSE, ...)
  \item{x}{if \code{NULL} simulations are not performed; otherwise it gives the
    \eqn{x}{x} coordinates of a grid.
   \item{y}{if \code{NULL} at most one-dimensional simulations
     are performed (depending on the value of \code{x}); otherwise
     \code{y} gives
     the \eqn{y}{y} coordinates of a two-dimensional grid.}
  \item{covx}{if a single value is given, it is the largest distance
    for which the covariance functions or the
    variograms are plotted; otherwise the models are plotted for the given
    values, and the origin.}
  \item{}{if \code{TRUE} then the same random seed is used for
    all simulations.}
  \item{method}{simulation method, see \link{RFMethods}; if \code{NULL}
    then a suitable simulation method is chosen automatically.}
  \item{empirical}{empirical variogram; a list as returned by
    \code{\link{EmpiricalVariogram}}. Also empirical variograms with
    a pair number of anisotropy directions may be passed. Then the first
    and the middle one are taken.
  \item{model}{covariance model, see \code{\link{CovarianceFct}}, or
    type \code{\link{PrintModelList}()} to get all options. If given,
    this model is shown at the beginning.
    Additive or multiplicative models are not allowed.

    However, model can also be given by a simple list definition,
    see \code{\link{CovarianceFct}}. Then \code{param} must not be
    In this case also anisotropic models can be defined.
  \item{param}{parameter vector:
    \code{param=c(mean, variance, nugget, scale,...)};
    the parameters must be given
    in this order; see \code{\link{CovarianceFct}} for more details.
    Only considered if \code{model} is given.
    If given, \code{model} is initialised by \code{param}.}
  \item{all.param}{%% ## var, nugg, scale
    \code{all.param=c(mean, variance, nugget, scale)};
    the parameters must be given in this order;
    If \code{all.param} is given then the parameters of all covariance
    functions are set to the given values.  The values are overwritten
    for a specific model if \code{model} and \code{param} are given.
    Note that it is not possible to set the values of additional (form)
    of a parametrised class by means of \code{all.param}.

    In case of an anisotropic model the anisotropy matrix is by default
    diagonal with both entries equal to \eqn{1/\code{all.param[4]}}.
  \item{PracticalRange}{logical.  If \code{TRUE} the range of the
    covariance functions \eqn{C(h)}{C(h)}
    is adjusted so that the covariance function is about 0.05 for
    \code{scale==1} and distance \eqn{h=1}{h=1}.}
  \item{legends}{if \code{TRUE} then a legend is added to the
    two-dimensional plot.}
  \item{register}{register where intermediate results of the simulations
    are stored, see also \code{\link{GaussRF}}.}
  \item{Mean}{mean of the random field}
  \item{erase}{parameter of \code{\link{split.screen}}, which is called
    at the very beginning}
  \item{x.fraction}{the current screen is split into 2 x 2 screens.  
    The parameter \code{x.fraction} gives the size of the left screens in
    the x directions as part of 1. See also the Details.}
  \item{cex.names}{font size for model names}
  \item{covx.default}{if \code{length(cov.x)==1} then \eqn{[0,
      \code{cov.x}]} is covered by \code{covx.default} points of equal
  \item{link.fct}{\code{NULL} or \code{function(values)} or "MaxStable".  
    Transformation of the  Gaussian random field.
    If \code{link.fct="MaxStable"} then
    max-stable random fields are simulated for the given covariance
    function and the extremal coefficient function is given (up the
    constant -1) instead of the variogram or the covariance function
  \item{Zlim}{Vector of two elements or list of two vectors of two
    elements. Graphical limits for the Gaussian random process (and the
    transformed field).}
  \item{maxstable.maxGauss}{The simulation of the max-stable process
    based on random fields uses 
    a stopping rule that necessarily needs a finite upper endpoint
    of the marginal distribution of the random field.
    In the case of extremal Gaussian random fields,
    see \code{\link{MaxStableRF}}, the upper endpoint is
    approximated by \code{maxstable.maxGauss}. The shown
    Gaussian random field is multiplied with the largest point
    of the Poisson point process.
  \item{Col.rect}{colour for interactive plot; see \code{\link{eval.parameters}}.}
  \item{}{colour for interactive plot; see \code{\link{eval.parameters}}.}
  \item{Col.sep}{colour for interactive plot; see \code{\link{eval.parameters}}.}
  \item{Col.line}{colour for interactive plot; see \code{\link{eval.parameters}}.}
  \item{Col.txt}{colour for interactive plot; see \code{\link{eval.parameters}}.}
  \item{Col.flash}{colour for the previously chosen model}
  \item{Col.vario}{colour for the empirical variogram plot}
  \item{Col.main}{colour for the title of the random field}
  \item{Col.model}{vector of two colours for plotting the variogram of
    the Gaussian random field and the transformed field}
  \item{vario.lty}{vector of two line types for primary and secondary
    axis of the variogram}
  \item{cex.leg}{font size used in the legends}
  \item{update}{logical.  If \code{TRUE} the plots are updated after
    each interactive change of the values.  Otherwise, the bottom
    'simulate' is added in the menu.}
  \item{}{logical.  If \code{FALSE} the screen is erased
    before a simulation and completely rebuild;  otherwise the screen is
    updated.  If \code{FALSE} flickering appears during the update of the
    current screen, otherwise it may happen during the reorganisation of
    any window (and may take quite a lot of time).
  \item{debug}{logical. If \code{TRUE} then internally the
    \code{RFparameter()$PrintLevel} is set to 5.
  \item{...}{additional graphics options for the plot of the one- or
    two-dimensional simulations, see \code{\link{plot}} and
  The interactive plot consists of 3 parts:
    \item top left: graph of the covariance function or the
    variogram. In case \code{empirical} is given the empirical
    variogram is also plotted. If \code{link.fct} is given, then also
    the covariance function or the variogram is plotted. If the
    correlation model is for a non-stationary random field,
    the variogram for the transformed random field is not estimated in
    a primitive way -- this is indicated with a star in the legend
    \item bottom left: one- or two-dimensional simulation
    \item right:
    \itemize {
      list of implemented models; a specific
      model is chosen by the left mouse button, or:
      \item menu for the parameters of the chosen model.
      The list includes the variance, a nugget effect, the mean and the
      scale or the anisotropy parameters. Further, some global parameters
      can be changed. They are the \code{PracticalRange}  (see
      \code{\link{RFparameters}} for details) and the angle of the
      main variogram direction (or NA, then it follows the angle of the
      anisotropy). Finally, the user can choose between the plot of the
      covariance and the corresponding variogram.
  The interactive plot is left by clicking any mouse button different
  from the left when the top right part is active.
  list of the last model and its parameters.
\author{Martin Schlather, \email{}
\seealso{\code{\link{CovarianceFct}}, \code{\link{eval.parameters}},
  \code{\link{RFMethods}}, \code{\link{RandomFields}}.}
%library(RandomFields, lib="~/TMP"); source("~/article/R/NEW.RF/RandomFields/R/ShowModels.R");source("~/article/R/NEW.RF/RandomFields/R/rf.R")
# first example: one-dimensional simulations

# system("xset b off") ## for unix systems

x <-  seq(1,10,0.1);

# second example: two-dimensional simulations and
#                 empirical variogram
dx <- runif(300,0,8)
dy <- runif(300,0,8)
dz <- GaussRF(x=dx, y=dy, grid=FALSE, model="gaus",
ev <- EmpiricalVariogram(x=dx, y=dy, data=dz, grid=FALSE,
x <-  seq(1,5,0.1);
ShowModels(x=x, y=x, empirical=ev)

# third example: two-dimensional anistropic simulations and
#                link function
%  library(RandomFields, lib="~/TMP"); source("~/article/R/NEW.RF/RandomFields/R/ShowModels.R");RFparameters(Print=5,CE.trials=1);ShowModels(x=x, y=x, link=function(x) x^2,model=list(list(model="exp", var=1,aniso=c(1,0,0,5)))); 
x <- seq(1,10,0.05)

ShowModels(x=x, y=x, link=function(x) x^2,
          model=list(list(model="exp", var=1, aniso=c(1,0,0,5))))

x <-  seq(1,10,0.05)
ShowModels(x=x, link=function(x) x^2,
           model=list(list(model="exp",var=1, scale=1)))

%  library(RandomFields, lib="~/TMP");  source("~/article/R/NEW.RF/RandomFields/R/ShowModels.R");x <-  seq(1,10,0.05);ShowModels(x=x, link="MaxStable",,model=list(list(model="gauss",var=1, scale=1)), type="l")
x <-  seq(1,10,0.05)
RFparameters(CE.force=TRUE, CE.trials=1, CE.mmin=-4, CE.userfft=FALSE)
ShowModels(x=x, link="MaxStable",,
           model=list(list(model="gauss",var=1, scale=1)), type="l")


back to top