File: RFgetModelNames.Rd

package info (click to toggle)
r-cran-randomfields 3.3.14-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 4,916 kB
  • sloc: cpp: 52,159; ansic: 3,015; makefile: 2; sh: 1
file content (282 lines) | stat: -rw-r--r-- 10,914 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
\name{RFgetModelNames}
\alias{RFgetModelNames}
%\alias{PrintModelList}
\title{Names of implemented covariance and variogram models}
\description{Displays the names of covariance and
  variogram models (see \command{\link{RMmodel}}) and returns them as a
  list. The user may
  specify and group the models according to the following properties:
  \itemize{
    \item type of function (\code{"positive definite"},
    \code{"variogram"}, etc.)
    \item whether the function depends on two arguments
    (\code{"kernel"}) or on one argument only (\code{"single variable"}) 
    \item types of isotropy
    \item whether the model is an operator
    \item whether the model is a normal scale mixture
    \item whether the model has a finite range covariance
    \item validity in certain dimensions of the coordinate space 
    \item maximal possible dimension of the coordinate space
    \item uni- or multivariety
  }
  See \command{Details} for an explanation and
  \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}
  for possible states (values) of these properties.
}

\usage{

RFgetModelNames(type = RC_TYPE_NAMES, domain = RC_DOMAIN_NAMES,
                isotropy = RC_ISO_NAMES, operator = c(TRUE, FALSE),
                monotone = RC_MONOTONE_NAMES,
                implied_monotonicities = length(monotone) == 1,
                finiterange = c(TRUE, FALSE, NA),
                valid.in.dim = c(1, Inf), 
                vdim = c(1, 5),
                group.by,
                exact.match = !missing(group.by),
                simpleArguments = FALSE,
                internal, newnames)
}

\arguments{
  \item{type, domain, isotropy, operator, monotone, finiterange, vdim}{
    see \link{constants} for the definition of \code{RC_TYPE_NAMES},
    \code{RC_DOMAIN_NAMES}, etc.
    See also \code{\link[=RMmodelgenerator-class]{RMmodelgenerator}}.
  }
  \item{implied_monotonicities}{logical. If \code{TRUE} then 
    all the models with a stronger monotonocity than the required one
    are also shown.
  }
  \item{valid.in.dim}{an optional integer indicating the dimension of
  the space where the model is valid}
\item{group.by}{an optional character string or \code{NULL}; must be one of
  \code{'type'},
    \code{'domain'}, \code{'isotropy'}, \code{'operator'},
    \code{'monotone'},
    \code{'finiterange'},\code{'maxdim'},\code{'vdim'}.
    If \code{group.by} is not given, the result is grouped by
    \code{'type'} if more than one type is given.    
  }
  \item{exact.match}{logical. If not \code{TRUE}, then
    all categories that are subclasses or might match are
    show as well.
  }
  \item{simpleArguments}{logical. If \code{TRUE}, only models
    are considered whose arguments are all integer or real valued.
    }
  \item{internal, newnames}{both logical;
    \code{internal} might be also integer valued.
    If any of them are given,
    \command{\link{RFgetModelNames}} behaves very differently.
    See the Notes below.
  }
}

\note{
  In case \code{internal} or \code{newnames} is given,
  only the values of \code{internal},
  \code{newnames} and \code{operator} are considered.
  All the other arguments are ignored and
  \command{\link{RFgetModelNames}} prints a table of the currently
  implemented covariance functions and the matching methods:
  \itemize{
    \item \code{internal}:\cr
    if \code{TRUE} also \code{\link{RMmodels}} are listed that are
    internal, hence invisible to the user. Default: \code{FALSE}.
    \item \code{newnames}:\cr
    The model names of version 2 of \pkg{RandomFields} and earlier
    can still be used in the model definitions. Namely when the
    list notation is chosen; see  \link{Advanced RMmodels} for the
    latter. If \code{internal} or \code{newnames} is given, then
    these old names are shown; if \code{newnames=TRUE} then also the
    usual names are shown.
    Default: \code{FALSE}.

    In fact, both internal and public
    models can have different variants implemented.
    These variants are also shown if
    \code{internal} has a value greater than or equal to \code{2},
    \item \code{operator}:\cr
    see above.
  }
  Here, also an indication is given, which method for simulating
  Gaussian random fields matches the model.
}

\details{ 
 The plain call \code{\link{RFgetModelNames}()} simply gives back a
 vector of
 the names of all implemented covariance and variogram models and operators,
 i.e. members of the class
 \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}.

 The following arguments can be specified.
 In general, only exact matches are returned. One exception exists:
 If the length of \code{type} equals 1 and if \code{group.by} is not
 given, then  types included in \code{type} are also returned.
 E.g. if \code{type="variogram"}  and  \code{group.by} is not given
 then only models are returned that are negative definite.
 However, also positive definite functions and tail correlaton
 functions are returned if \code{"type"} is included in \code{group.by}.
 
 \describe{
   \item{\code{type}}{specifies the class of functions; for
     the meaning of the possible values see
     \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}
   }
   
   \item{\code{stationarity}}{specifies the type of stationarity; for
     the meaning of the possible values see
     \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}
   }
   
   \item{\code{isotropy}}{specifies the type of isotropy; for
     the meaning of the possible values see
     \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}
   }
   
   \item{\code{operator}}{indicates whether the model is an operator, 
     i.e. it requires at least one submodel, 
     e.g. \command{\link[=RMplus]{+}} or
     \command{\link{RMdelay}} are operators; see
     \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}
   }
   
   \item{\code{monotone}}{indicates what kind of monotonicity is known,
     e.g., whether the model is a normal
     scale mixture, the latter including \command{\link{RMexp}} or
     \command{\link{RMcauchy}}; see
     \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}
   }
   
   \item{\code{finiterange}}{indicates whether the covariance of the
     model has finite range, e.g. \command{\link{RMcircular}} or
     \command{\link{RMnugget}} have covariances with finite range; see
     \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}.
     \code{NA} is used if the finiteness depends on the submodel. 
   }
   
   \item{\code{valid.in.dim}}{If \code{valid.in.dim=n} is
     passed, all models which are valid in dimension \eqn{n} are
     displayed. Otherwise \code{valid.in.dim} should be a bivariate vector
     giving the range of requested dimensions.
   }
   
   \item{\code{maxdim}}{if a positive integer, it specifies the maximal
     possible dimension of the coordinate space;
     note that a model which is valid in dimension
     \eqn{n} is also valid in dimension \eqn{n-1};
     \code{maxdim=-1} means that the maximal possible dimension depends
     on the parameters of the \command{\link{RMmodel}} object;
     \code{maxdim=-2} means that the maximal possible dimension is
     adopted from the called submodels;
     see also
     \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}
   }
 
   \item{\code{vdim}}{if a positive integer, vdim specifies, whether
     the model is \eqn{vdim}-variate; 
     \code{vdim=-1} means that being multivariate
     in a certain dimension depends on the parameters of the
     \command{\link{RMmodel}} object;
     \code{vdim=-2} means that being multivariate
     in a certain dimension is adopted from the called submodels;
     see also
     \command{\link[=RMmodelgenerator-class]{RMmodelgenerator}}

     If \code{vdim} is bivariate then a range is given.
   }
   
   \item{\code{group.by}}{If \code{group.by="propertyname"} is
     passed, the displayed models are grouped according to
     \code{propertyname}.
   }
 }

 All arguments allow also for vectors of values. In case of
 \code{valid.in.dim} the smallest value is taken.
 The interpretation is canonical.
 
 
 Note that the arguments \code{stationarity}, \code{isotropy},
 \code{operator}, \code{monotone}, \code{finiterange},
 \code{maxdim}, \code{vdim}
 are also slots (attributes) of the SP4-class
 \code{\link[=RMmodelgenerator-class]{RMmodelgenerator}}.
}

\value{
  Either a vector of model names if the argument
 \code{group.by} is not used;
 or a list of vectors of model names if the argument \code{group.by} is
 used
 (with list elements specified by the categories of the grouping
 argument).

 In case \code{internal} or \code{newnames} is given,
 \command{\link{RFgetModelNames}} prints a table of the currently
 implemented covariance functions and the matching methods.
 \command{\link{RFgetModelNames}} returns \code{NULL}.
}

%\references{
%}

\me

\seealso{
  \link{constants},
 \code{\link[=RMmodelgenerator-class]{RMmodelgenerator}},
 \code{\link{RMmodel}},
 \code{\link[=RandomFields-package]{RandomFields}},
 \link{RC_DOMAIN_NAMES}, \link{RC_ISO_NAMES}
}

\examples{\dontshow{StartExample()}
RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set
##                   RFoptions(seed=NA) to make them all random again

# get list of names of all functions
RFgetModelNames()

# any kind of positive definite functions
RFgetModelNames(type="positive definite", exact.match=TRUE)
\dontrun{RFgetModelNames(type="positive definite")}

# get a list of names of all stationary models
RFgetModelNames(type="positive definite", domain="single variable",
                 exact.match=TRUE)
\dontrun{RFgetModelNames(type="positive definite", domain="single variable")}

# get a vector of all model names
RFgetModelNames(group.by=NULL)


\dontshow{\dontrun{


# get list of all univariate stationary models
# additionally grouped by the isotropy attribute
str(RFgetModelNames(type="positive definite", domain="single variable",
                    vdim=1, group.by="isotropy"))

# get vector of all models which are operators
# and valid in the two-dimensional coordinate space
RFgetModelNames(type=c("tail correlation function",
                       "positive definite",
                       "variogram",
                       "undefined"),
                operator=TRUE, valid.in.dim=2)

# processes and covariance function grouped by the stationarity
# argument and subsequently grouped by the isotropy argument

str(RFgetModelNames(type=c("positive definite", "variogram", "process"),
                    group.by=c("type", "domain", "isotropy")))
}}

\dontshow{FinalizeExample()}}

\keyword{spatial}