Calculate Spatio-Temporal Sample Variogram
variogramST.Rd
Calculates the sample variogram from spatio-temporal data.
Usage
variogramST(formula, locations, data, ..., tlags = 0:15, cutoff,
width = cutoff/15, boundaries = seq(0, cutoff, width),
progress = interactive(), pseudo = TRUE, assumeRegular = FALSE,
na.omit = FALSE, cores = 1)
Arguments
- formula
formula, specifying the dependent variable.
- locations
A STFDF or STSDF containing the variable; kept for compatibility reasons with variogram, either
locations
ordata
must be provided.- data
- ...
any other arguments that will be passed to the underlying
variogram
function. In case of using data of typeSTIDF
, the argumenttunit
is recommended (and only used in the case of STIDF) to set the temporal unit of thetlags
. Additionally,twindow
can be passed to control the temporal window used for temporal distance calculations. This builds on the property of xts being ordered and only the nexttwindow
instances are considered. This avoids the need of huge temporal distance matrices. The default uses twice the number as the average difference goes into the temporal cutoff.- tlags
integer; time lags to consider or in case
data
is of classSTIDF
the actual temporal boundaries with time unit given bytunit
otherwise the same unit asdiff
on the index of the time slot will generate is assumed.- cutoff
spatial separation distance up to which point pairs are included in semivariance estimates; as a default, the length of the diagonal of the box spanning the data is divided by three.
- width
the width of subsequent distance intervals into which data point pairs are grouped for semivariance estimates, by default the
cutoff
is divided into 15 equal lags.- boundaries
numerical vector with distance interval upper boundaries; values should be strictly increasing
- progress
logical; if TRUE, show text progress bar
- pseudo
integer; use pseudo cross variogram for computing time-lagged spatial variograms? -1: find out from coordinates – if they are equal then yes, else no; 0: no; 1: yes.
- assumeRegular
logical; whether the time series should be assumed regular. The first time step is assumed to be representative for the whole series. Note, that temporal lags are considered by index, and no check is made whether pairs actually have the desired separating distance.
- na.omit
shall all
NA
values in the spatio-temporal variogram be dropped? In case where complete rows or columns in the variogram consists ofNA
only,plot
might produce a distorted picture.- cores
number of cores to use in parallel
Value
The spatio-temporal sample variogram contains besides the fields
np
, dist
and gamma
the spatio-temporal fields,
timelag
, spacelag
and avgDist
, the first of which indicates the time lag
used, the second and third different spatial lags. spacelag
is the midpoint in the spatial
lag intervals as passed by the parameter boundaries
, whereas avgDist
is the average
distance between the point pairs found in a distance interval over all temporal lags (i.e. the
averages of the values dist
per temporal lag.) To compute variograms for space lag \(h\) and
time lag \(t\), the pseudo cross variogram \((Z_i(s)-Z_{i+t}(s+h))^2\) is averaged over all time
lagged observation sets \(Z_i\) and \(Z_{i+t}\) available (weighted by the number of pairs involved).
References
Cressie, N.A.C., 1993, Statistics for Spatial Data, Wiley.
Cressie, N., C. Wikle, 2011, Statistics for Spatio-temporal Data, Wiley.
Pebesma, E.J., 2004. Multivariable geostatistics in S: the gstat package. Computers and Geosciences, 30: 683-691.
See also
plot.StVariogram
,
for variogram models: vgmST
,
to fit a spatio-temporal variogram model to a spatio-temporal sample variogram:
fit.StVariogram
Examples
# The following spatio-temporal variogram has been calcualted through
# vv = variogram(PM10~1, r5to10, width=20, cutoff = 200, tlags=0:5)
# in the vignette "st".
data(vv)
str(vv)
#> Classes ‘StVariogram’ and 'data.frame': 66 obs. of 7 variables:
#> $ np : num 0 3456 16554 21257 33547 ...
#> $ dist : num NA 13.8 29.5 49.1 70.4 ...
#> $ gamma : num NA 11 23.4 29.6 31.2 ...
#> $ id : chr "lag0" "lag0" "lag0" "lag0" ...
#> $ timelag : num 0 0 0 0 0 0 0 0 0 0 ...
#> ..- attr(*, "units")= chr "days"
#> $ spacelag: num 0 10 30 50 70 90 110 130 150 170 ...
#> ..- attr(*, "units")= chr "km"
#> $ avgDist : num 0 13.8 29.5 49.1 70.4 ...
#> - attr(*, "boundaries")= num [1:11] 0 20 40 60 80 100 120 140 160 180 ...
plot(vv)