- Description: Automatic spatio-temporal kriging inspired by
automap
(Hiemstra et al. 2010) - Inherits most of
automap
functions, but extensively revised - Includes spatiotemporal variogram fitting and Kriging analysis
remotes::install_github('sigmafelix/autoSTK')
in R (Theremotes
package is required)- Before you install the package, please make it sure you have
gstat
,spacetime
, andautomap
packages in your machine
autofitVariogramST
: automatically fit the spatiotemporal variogramautoKrigeST
: automatically estimate the spatiotemporal variables for specified period ahead (the default value is 6 temporal units)- Currently support
STFDF
andSTSDF
class and ordinary spatiotemporal Kriging (e.g.,y~1
)
- Currently support
autoKrigeST.cv
: automatically cross-validate the spatiotemporal data by spatial, temporal, spatiotemporal, and random slicing
- Add support for
STIDF
class and universal spatiotemporal Kriging: necessitates thegstat
function fix forvariogramST.STIDF
- Transition to
sf
andsftime
in preparation of the retirement ofsp
in October 2023 - Add support for the spatiotemporal separability test (referring to
covatest
(De Iaco, 2020))
- Split data into spatial and temporal dimensions which are compatible to be fitted as components of a spatio-temporal variogram
- Find the optimal theoretical variograms with BFHS algorithm following the
autofitVariogram
function ofautomap
package; but several changes were applied
- I strongly recommend users to convert
STIDF
toSTSDF
before running functions- When the input is
sftime
, convert the input intoSTIDF
then intoSTSDF
- When the input is
- Please consult the help page of the main functions
autoKrigeST
andautoKrigeST.cv
.
library(autoSTK)
library(gstat)
library(spacetime)
library(stars)
library(sp)
data(air)
deair = STFDF(stations, dates, data.frame(PM10 = as.vector(air)))
deair_sf = st_as_stars(deair) %>%
st_transform('+proj=longlat +ellps=sphere')
deair_sf = st_transform(deair_sf, 3857)
deair_r = as(deair_sf, 'STFDF')
deair_r@sp@proj4string = CRS('+init=epsg:3857')
deair_rs = deair_r[,3701:3800]
deair_rss = as(deair_rs, 'STSDF')
## autoKrigeST
akst_stk = autoKrigeST(formula = PM10~1,
input_data = deair_rss,
cutoff = 300000, width = 30000, tlags = 0:7, cores = 8)
akst_stk_stars = st_as_stars(akst_stk[[1]])
plot(akst_stk_stars[1,])
## autoKrigeST.cv
akst_cv_t = autoKrigeST.cv(formula = PM10~1, data = deair_rs, nfold = 3, fold_dim = 'temporal',
cutoff = 300000, width = 30000, tlags = 0:7, cores = 8)
akst_cv_s = autoKrigeST.cv(formula = PM10~1, data = deair_rs, nfold = 3, fold_dim = 'spatial',
cutoff = 300000, width = 30000, tlags = 0:7, cores = 8)
akst_cv_spt = autoKrigeST.cv(formula = PM10~1, data = deair_rs, nfold = 4, fold_dim = 'spacetime',
cutoff = 300000, width = 30000, tlags = 0:7, cores = 8)
Created on 2021-07-15 by the reprex package (v2.0.0)