- using R Under development (unstable) (2025-02-15 r87723)
- using platform: x86_64-pc-linux-gnu
- R was compiled by
gcc (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)
GNU Fortran (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)
- running under: Fedora Linux 40 (Workstation Edition)
- using session charset: UTF-8
- using option ‘--no-stop-on-test-error’
- checking for file ‘gstat/DESCRIPTION’ ... OK
- this is package ‘gstat’ version ‘2.1-3’
- package encoding: UTF-8
- checking package namespace information ... OK
- checking package dependencies ... OK
- checking if this is a source package ... WARNING
Subdirectory ‘gstat/src’ contains apparent object files/libraries
block.o data.o direct.o fit.o gcdist.o getest.o gls.o glvars.o init.o
lm.o mapio.o msim.o mtrx.o nsearch.o pqueue.o reml.o s.o select.o
sem.o sim.o userio.o utils.o vario.o vario_fn.o vario_io.o
Object files/libraries should not be included in a source package.
Subdirectory ‘src’ contains:
symbols.rds
These are unlikely file names for src files.
- checking if there is a namespace ... OK
- checking for executable files ... OK
- checking for hidden files and directories ... OK
- checking for portable file names ... OK
- checking for sufficient/correct file permissions ... OK
- checking whether package ‘gstat’ can be installed ... [18s/25s] OK
See the install log for details.
- used C compiler: ‘gcc (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)’
- checking package directory ... OK
- checking ‘build’ directory ... OK
- checking DESCRIPTION meta-information ... OK
- checking top-level files ... OK
- checking for left-over files ... OK
- checking index information ... OK
- checking package subdirectories ... OK
- checking code files for non-ASCII characters ... OK
- checking R files for syntax errors ... OK
- checking whether the package can be loaded ... OK
- checking whether the package can be loaded with stated dependencies ... OK
- checking whether the package can be unloaded cleanly ... OK
- checking whether the namespace can be loaded with stated dependencies ... OK
- checking whether the namespace can be unloaded cleanly ... OK
- checking loading without being on the library search path ... OK
- checking whether startup messages can be suppressed ... OK
- checking use of S3 registration ... OK
- checking dependencies in R code ... OK
- checking S3 generic/method consistency ... OK
- checking replacement functions ... OK
- checking foreign function calls ... OK
- checking R code for possible problems ... [36s/47s] OK
- checking Rd files ... OK
- checking Rd metadata ... OK
- checking Rd line widths ... OK
- checking Rd cross-references ... OK
- checking for missing documentation entries ... OK
- checking for code/documentation mismatches ... OK
- checking Rd \usage sections ... OK
- checking Rd contents ... OK
- checking for unstated dependencies in examples ... OK
- checking contents of ‘data’ directory ... OK
- checking data for non-ASCII characters ... OK
- checking data for ASCII and uncompressed saves ... OK
- checking line endings in shell scripts ... OK
- checking line endings in C/C++/Fortran sources/headers ... OK
- checking line endings in Makefiles ... OK
- checking compilation flags in Makevars ... OK
- checking for GNU extensions in Makefiles ... OK
- checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK
- checking use of PKG_*FLAGS in Makefiles ... OK
- checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK
- checking pragmas in C/C++ headers and code ... OK
- checking compilation flags used ... OK
- checking compiled code ... OK
- checking sizes of PDF files under ‘inst/doc’ ... OK
- checking installed files from ‘inst/doc’ ... OK
- checking files in ‘vignettes’ ... OK
- checking examples ... [24s/33s] OK
- checking for unstated dependencies in ‘tests’ ... OK
- checking tests ... [64m/46m] ERROR
Running ‘allier.R’
Comparing ‘allier.Rout’ to ‘allier.Rout.save’ ... OK
Running ‘blockkr.R’
Comparing ‘blockkr.Rout’ to ‘blockkr.Rout.save’ ... OK
Running ‘covtable.R’
Comparing ‘covtable.Rout’ to ‘covtable.Rout.save’ ... OK
Running ‘cv.R’
Comparing ‘cv.Rout’ to ‘cv.Rout.save’ ... OK
Running ‘cv3d.R’
Comparing ‘cv3d.Rout’ to ‘cv3d.Rout.save’ ... OK
Running ‘fit.R’
Comparing ‘fit.Rout’ to ‘fit.Rout.save’ ... OK
Running ‘krige0.R’
Comparing ‘krige0.Rout’ to ‘krige0.Rout.save’ ... OK
Running ‘line.R’
Comparing ‘line.Rout’ to ‘line.Rout.save’ ... OK
Running ‘merge.R’
Comparing ‘merge.Rout’ to ‘merge.Rout.save’ ... OK
Running ‘na.action.R’
Comparing ‘na.action.Rout’ to ‘na.action.Rout.save’ ... OK
Running ‘rings.R’
Comparing ‘rings.Rout’ to ‘rings.Rout.save’ ... OK
Running ‘sim.R’
Comparing ‘sim.Rout’ to ‘sim.Rout.save’ ... OK
Running ‘stars.R’ [32m/22m]
Running ‘unproj.R’
Comparing ‘unproj.Rout’ to ‘unproj.Rout.save’ ... OK
Running ‘variogram.R’
Comparing ‘variogram.Rout’ to ‘variogram.Rout.save’ ... OK
Running ‘vdist.R’
Comparing ‘vdist.Rout’ to ‘vdist.Rout.save’ ... OK
Running ‘windst.R’ [32m/23m]
Running the tests in ‘tests/stars.R’ failed.
Complete output:
> Sys.setenv(TZ = "UTC")
>
> # 0. using sp:
>
> suppressPackageStartupMessages(library(sp))
> demo(meuse, ask = FALSE)
demo(meuse)
---- ~~~~~
> require(sp)
> crs = CRS("EPSG:28992")
> data("meuse")
> coordinates(meuse) <- ~x+y
> proj4string(meuse) <- crs
> data("meuse.grid")
> coordinates(meuse.grid) <- ~x+y
> gridded(meuse.grid) <- TRUE
> proj4string(meuse.grid) <- crs
> data("meuse.riv")
> meuse.riv <- SpatialPolygons(list(Polygons(list(Polygon(meuse.riv)),"meuse.riv")))
> proj4string(meuse.riv) <- crs
> data("meuse.area")
> meuse.area = SpatialPolygons(list(Polygons(list(Polygon(meuse.area)), "area")))
> proj4string(meuse.area) <- crs
> suppressPackageStartupMessages(library(gstat))
> v = variogram(log(zinc)~1, meuse)
> (v.fit = fit.variogram(v, vgm(1, "Sph", 900, 1)))
model psill range
1 Nug 0.05066243 0.0000
2 Sph 0.59060780 897.0209
> k_sp = krige(log(zinc)~1, meuse[-(1:5),], meuse[1:5,], v.fit)
[using ordinary kriging]
> k_sp_grd = krige(log(zinc)~1, meuse, meuse.grid, v.fit)
[using ordinary kriging]
>
> # 1. using sf:
> suppressPackageStartupMessages(library(sf))
> demo(meuse_sf, ask = FALSE, echo = FALSE)
> # reloads meuse as data.frame, so
> demo(meuse, ask = FALSE)
demo(meuse)
---- ~~~~~
> require(sp)
> crs = CRS("EPSG:28992")
> data("meuse")
> coordinates(meuse) <- ~x+y
> proj4string(meuse) <- crs
> data("meuse.grid")
> coordinates(meuse.grid) <- ~x+y
> gridded(meuse.grid) <- TRUE
> proj4string(meuse.grid) <- crs
> data("meuse.riv")
> meuse.riv <- SpatialPolygons(list(Polygons(list(Polygon(meuse.riv)),"meuse.riv")))
> proj4string(meuse.riv) <- crs
> data("meuse.area")
> meuse.area = SpatialPolygons(list(Polygons(list(Polygon(meuse.area)), "area")))
> proj4string(meuse.area) <- crs
>
> v = variogram(log(zinc)~1, meuse_sf)
> (v.fit = fit.variogram(v, vgm(1, "Sph", 900, 1)))
model psill range
1 Nug 0.05066243 0.0000
2 Sph 0.59060780 897.0209
> k_sf = krige(log(zinc)~1, meuse_sf[-(1:5),], meuse_sf[1:5,], v.fit)
[using ordinary kriging]
>
> all.equal(k_sp, as(k_sf, "Spatial"), check.attributes = FALSE)
[1] TRUE
> all.equal(k_sp, as(k_sf, "Spatial"), check.attributes = TRUE)
[1] "Attributes: < Component \"bbox\": Attributes: < Component \"dimnames\": Component 1: 2 string mismatches > >"
[2] "Attributes: < Component \"coords\": Attributes: < Component \"dimnames\": Component 2: 2 string mismatches > >"
[3] "Attributes: < Component \"coords.nrs\": Numeric: lengths (2, 0) differ >"
>
> # 2. using stars for grid:
>
> suppressPackageStartupMessages(library(stars))
> st = st_as_stars(meuse.grid)
> st_crs(st)
Coordinate Reference System:
User input: Amersfoort / RD New
wkt:
PROJCRS["Amersfoort / RD New",
BASEGEOGCRS["Amersfoort",
DATUM["Amersfoort",
ELLIPSOID["Bessel 1841",6377397.155,299.1528128,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4289]],
CONVERSION["RD New",
METHOD["Oblique Stereographic",
ID["EPSG",9809]],
PARAMETER["Latitude of natural origin",52.1561605555556,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8801]],
PARAMETER["Longitude of natural origin",5.38763888888889,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8802]],
PARAMETER["Scale factor at natural origin",0.9999079,
SCALEUNIT["unity",1],
ID["EPSG",8805]],
PARAMETER["False easting",155000,
LENGTHUNIT["metre",1],
ID["EPSG",8806]],
PARAMETER["False northing",463000,
LENGTHUNIT["metre",1],
ID["EPSG",8807]]],
CS[Cartesian,2],
AXIS["easting (X)",east,
ORDER[1],
LENGTHUNIT["metre",1]],
AXIS["northing (Y)",north,
ORDER[2],
LENGTHUNIT["metre",1]],
USAGE[
SCOPE["Engineering survey, topographic mapping."],
AREA["Netherlands - onshore, including Waddenzee, Dutch Wadden Islands and 12-mile offshore coastal zone."],
BBOX[50.75,3.2,53.7,7.22]],
ID["EPSG",28992]]
>
> # compare inputs:
> sp = as(st, "Spatial")
> fullgrid(meuse.grid) = TRUE
> all.equal(sp, meuse.grid["dist"], check.attributes = FALSE)
[1] "Names: Lengths (5, 1) differ (string compare on first 1)"
[2] "Names: 1 string mismatch"
> all.equal(sp, meuse.grid["dist"], check.attributes = TRUE, use.names = FALSE)
[1] "Names: Lengths (5, 1) differ (string compare on first 1)"
[2] "Names: 1 string mismatch"
[3] "Attributes: < Component 3: Names: 1 string mismatch >"
[4] "Attributes: < Component 3: Length mismatch: comparison on first 1 components >"
[5] "Attributes: < Component 3: Component 1: Mean relative difference: 1.08298 >"
[6] "Attributes: < Component 4: Attributes: < Component 2: names for current but not for target > >"
[7] "Attributes: < Component 4: Attributes: < Component 3: names for current but not for target > >"
>
> # kriging:
> st_crs(st) = st_crs(meuse_sf) = NA # GDAL roundtrip messes them up!
> k_st = if (Sys.getenv("USER") == "travis") {
+ try(krige(log(zinc)~1, meuse_sf, st, v.fit))
+ } else {
+ krige(log(zinc)~1, meuse_sf, st, v.fit)
+ }
[using ordinary kriging]
> k_st
stars object with 2 dimensions and 2 attributes
attribute(s):
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
var1.pred 4.7765547 5.2376293 5.5728839 5.7072287 6.1717619 7.4399911 5009
var1.var 0.0854949 0.1372864 0.1621838 0.1853319 0.2116152 0.5002756 5009
dimension(s):
from to offset delta x/y
x 1 78 178440 40 [x]
y 1 104 333760 -40 [y]
>
> # handle factors, when going to stars?
> k_sp_grd$cls = cut(k_sp_grd$var1.pred, c(0, 5, 6, 7, 8, 9))
> st_as_stars(k_sp_grd)
stars object with 2 dimensions and 3 attributes
attribute(s):
var1.pred var1.var cls
Min. :4.777 Min. :0.0855 (0,5]: 316
1st Qu.:5.238 1st Qu.:0.1373 (5,6]:1778
Median :5.573 Median :0.1622 (6,7]: 962
Mean :5.707 Mean :0.1853 (7,8]: 47
3rd Qu.:6.172 3rd Qu.:0.2116 (8,9]: 0
Max. :7.440 Max. :0.5003 NA's :5009
NA's :5009 NA's :5009
dimension(s):
from to offset delta refsys x/y
x 1 78 178440 40 Amersfoort / RD New [x]
y 1 104 333760 -40 Amersfoort / RD New [y]
> if (require(raster, quietly = TRUE)) {
+ print(st_as_stars(raster::stack(k_sp_grd))) # check
+ print(all.equal(st_redimension(st_as_stars(k_sp_grd)), st_as_stars(raster::stack(k_sp_grd)), check.attributes=FALSE))
+ }
stars object with 3 dimensions and 1 attribute
attribute(s):
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
var1.pred 0.0854949 0.2116778 2 2.710347 5.237542 7.439991 15027
dimension(s):
from to offset delta refsys values
x 1 78 178440 40 Amersfoort / RD New NULL
y 1 104 333760 -40 Amersfoort / RD New NULL
band 1 3 NA NA NA var1.pred, var1.var , cls
x/y
x [x]
y [y]
band
[1] TRUE
>
> suppressPackageStartupMessages(library(spacetime))
>
> tm = as.POSIXct("2019-02-25 15:37:24 CET")
> n = 4
> s = stars:::st_stars(list(foo = array(1:(n^3), rep(n,3))),
+ stars:::create_dimensions(list(
+ x = stars:::create_dimension(from = 1, to = n, offset = 10, delta = 0.5),
+ y = stars:::create_dimension(from = 1, to = n, offset = 0, delta = -0.7),
+ time = stars:::create_dimension(values = tm + 1:n)),
+ raster = stars:::get_raster(dimensions = c("x", "y")))
+ )
> s
stars object with 3 dimensions and 1 attribute
attribute(s):
Min. 1st Qu. Median Mean 3rd Qu. Max.
foo 1 16.75 32.5 32.5 48.25 64
dimension(s):
from to offset delta refsys x/y
x 1 4 10 0.5 NA [x]
y 1 4 0 -0.7 NA [y]
time 1 4 2019-02-25 15:37:25 UTC 1 secs POSIXct
>
> as.data.frame(s)
x y time foo
1 10.25 -0.35 2019-02-25 15:37:25 1
2 10.75 -0.35 2019-02-25 15:37:25 2
3 11.25 -0.35 2019-02-25 15:37:25 3
4 11.75 -0.35 2019-02-25 15:37:25 4
5 10.25 -1.05 2019-02-25 15:37:25 5
6 10.75 -1.05 2019-02-25 15:37:25 6
7 11.25 -1.05 2019-02-25 15:37:25 7
8 11.75 -1.05 2019-02-25 15:37:25 8
9 10.25 -1.75 2019-02-25 15:37:25 9
10 10.75 -1.75 2019-02-25 15:37:25 10
11 11.25 -1.75 2019-02-25 15:37:25 11
12 11.75 -1.75 2019-02-25 15:37:25 12
13 10.25 -2.45 2019-02-25 15:37:25 13
14 10.75 -2.45 2019-02-25 15:37:25 14
15 11.25 -2.45 2019-02-25 15:37:25 15
16 11.75 -2.45 2019-02-25 15:37:25 16
17 10.25 -0.35 2019-02-25 15:37:26 17
18 10.75 -0.35 2019-02-25 15:37:26 18
19 11.25 -0.35 2019-02-25 15:37:26 19
20 11.75 -0.35 2019-02-25 15:37:26 20
21 10.25 -1.05 2019-02-25 15:37:26 21
22 10.75 -1.05 2019-02-25 15:37:26 22
23 11.25 -1.05 2019-02-25 15:37:26 23
24 11.75 -1.05 2019-02-25 15:37:26 24
25 10.25 -1.75 2019-02-25 15:37:26 25
26 10.75 -1.75 2019-02-25 15:37:26 26
27 11.25 -1.75 2019-02-25 15:37:26 27
28 11.75 -1.75 2019-02-25 15:37:26 28
29 10.25 -2.45 2019-02-25 15:37:26 29
30 10.75 -2.45 2019-02-25 15:37:26 30
31 11.25 -2.45 2019-02-25 15:37:26 31
32 11.75 -2.45 2019-02-25 15:37:26 32
33 10.25 -0.35 2019-02-25 15:37:27 33
34 10.75 -0.35 2019-02-25 15:37:27 34
35 11.25 -0.35 2019-02-25 15:37:27 35
36 11.75 -0.35 2019-02-25 15:37:27 36
37 10.25 -1.05 2019-02-25 15:37:27 37
38 10.75 -1.05 2019-02-25 15:37:27 38
39 11.25 -1.05 2019-02-25 15:37:27 39
40 11.75 -1.05 2019-02-25 15:37:27 40
41 10.25 -1.75 2019-02-25 15:37:27 41
42 10.75 -1.75 2019-02-25 15:37:27 42
43 11.25 -1.75 2019-02-25 15:37:27 43
44 11.75 -1.75 2019-02-25 15:37:27 44
45 10.25 -2.45 2019-02-25 15:37:27 45
46 10.75 -2.45 2019-02-25 15:37:27 46
47 11.25 -2.45 2019-02-25 15:37:27 47
48 11.75 -2.45 2019-02-25 15:37:27 48
49 10.25 -0.35 2019-02-25 15:37:28 49
50 10.75 -0.35 2019-02-25 15:37:28 50
51 11.25 -0.35 2019-02-25 15:37:28 51
52 11.75 -0.35 2019-02-25 15:37:28 52
53 10.25 -1.05 2019-02-25 15:37:28 53
54 10.75 -1.05 2019-02-25 15:37:28 54
55 11.25 -1.05 2019-02-25 15:37:28 55
56 11.75 -1.05 2019-02-25 15:37:28 56
57 10.25 -1.75 2019-02-25 15:37:28 57
58 10.75 -1.75 2019-02-25 15:37:28 58
59 11.25 -1.75 2019-02-25 15:37:28 59
60 11.75 -1.75 2019-02-25 15:37:28 60
61 10.25 -2.45 2019-02-25 15:37:28 61
62 10.75 -2.45 2019-02-25 15:37:28 62
63 11.25 -2.45 2019-02-25 15:37:28 63
64 11.75 -2.45 2019-02-25 15:37:28 64
> plot(s, col = sf.colors(), axes = TRUE)
> (s.stfdf = as(s, "STFDF"))
An object of class "STFDF"
Slot "data":
foo
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
Slot "sp":
Object of class SpatialPixels
Grid topology:
cellcentre.offset cellsize cells.dim
x 10.25 0.5 4
y -2.45 0.7 4
SpatialPoints:
x y
[1,] 10.25 -0.35
[2,] 10.75 -0.35
[3,] 11.25 -0.35
[4,] 11.75 -0.35
[5,] 10.25 -1.05
[6,] 10.75 -1.05
[7,] 11.25 -1.05
[8,] 11.75 -1.05
[9,] 10.25 -1.75
[10,] 10.75 -1.75
[11,] 11.25 -1.75
[12,] 11.75 -1.75
[13,] 10.25 -2.45
[14,] 10.75 -2.45
[15,] 11.25 -2.45
[16,] 11.75 -2.45
Coordinate Reference System (CRS) arguments: NA
Slot "time":
timeIndex
2019-02-25 15:37:25 1
2019-02-25 15:37:26 2
2019-02-25 15:37:27 3
2019-02-25 15:37:28 4
Slot "endTime":
[1] "2019-02-25 15:37:26 UTC" "2019-02-25 15:37:27 UTC"
[3] "2019-02-25 15:37:28 UTC" "2019-02-25 15:37:29 UTC"
> stplot(s.stfdf, scales = list(draw = TRUE))
>
> (s2 = st_as_stars(s.stfdf))
stars object with 3 dimensions and 1 attribute
attribute(s):
Min. 1st Qu. Median Mean 3rd Qu. Max.
foo 1 16.75 32.5 32.5 48.25 64
dimension(s):
from to offset delta refsys x/y
x 1 4 10 0.5 NA [x]
y 1 4 -1.11e-16 -0.7 NA [y]
time 1 4 2019-02-25 15:37:25 UTC 1 secs POSIXct
> plot(s2, col = sf.colors(), axes = TRUE)
> all.equal(s, s2, check.attributes = FALSE)
[1] TRUE
>
> # multiple simulations:
> data(meuse, package = "sp")
> data(meuse.grid, package = "sp")
> coordinates(meuse.grid) <- ~x+y
> gridded(meuse.grid) <- TRUE
> meuse.grid = st_as_stars(meuse.grid)
> meuse_sf = st_as_sf(meuse, coords = c("x", "y"))
> g = gstat(NULL, "zinc", zinc~1, meuse_sf, model = vgm(1, "Exp", 300), nmax = 10)
> g = gstat(g, "lead", lead~1, meuse_sf, model = vgm(1, "Exp", 300), nmax = 10, fill.cross = TRUE)
> set.seed(123)
> ## IGNORE_RDIFF_BEGIN
> (p = predict(g, meuse.grid, nsim = 5))
drawing 5 multivariate GLS realisations of beta...
Running the tests in ‘tests/windst.R’ failed.
Complete output:
> suppressPackageStartupMessages(library(sp))
> suppressPackageStartupMessages(library(spacetime))
> suppressPackageStartupMessages(library(gstat))
> suppressPackageStartupMessages(library(stars))
>
> data(wind)
> wind.loc$y = as.numeric(char2dms(as.character(wind.loc[["Latitude"]])))
> wind.loc$x = as.numeric(char2dms(as.character(wind.loc[["Longitude"]])))
> coordinates(wind.loc) = ~x+y
> proj4string(wind.loc) = "+proj=longlat +datum=WGS84 +ellps=WGS84"
>
> wind$time = ISOdate(wind$year+1900, wind$month, wind$day)
> wind$jday = as.numeric(format(wind$time, '%j'))
> stations = 4:15
> windsqrt = sqrt(0.5148 * wind[stations]) # knots -> m/s
> Jday = 1:366
> daymeans = colMeans(
+ sapply(split(windsqrt - colMeans(windsqrt), wind$jday), colMeans))
> meanwind = lowess(daymeans ~ Jday, f = 0.1)$y[wind$jday]
> velocities = apply(windsqrt, 2, function(x) { x - meanwind })
> # match order of columns in wind to Code in wind.loc;
> # convert to utm zone 29, to be able to do interpolation in
> # proper Euclidian (projected) space:
> pts = coordinates(wind.loc[match(names(wind[4:15]), wind.loc$Code),])
> pts = SpatialPoints(pts)
> if (require(sp, quietly = TRUE) && require(maps, quietly = TRUE)) {
+ proj4string(pts) = "+proj=longlat +datum=WGS84 +ellps=WGS84"
+ utm29 = "+proj=utm +zone=29 +datum=WGS84 +ellps=WGS84"
+ pts = as(st_transform(st_as_sfc(pts), utm29), "Spatial")
+ # note the t() in:
+ w = STFDF(pts, wind$time, data.frame(values = as.vector(t(velocities))))
+
+ library(mapdata)
+ mp = map("worldHires", xlim = c(-11,-5.4), ylim = c(51,55.5), plot=FALSE)
+ sf = st_transform(st_as_sf(mp, fill = FALSE), utm29)
+ m = as(sf, "Spatial")
+
+ # setup grid
+ grd = SpatialPixels(SpatialPoints(makegrid(m, n = 300)),
+ proj4string = m@proj4string)
+ # grd$t = rep(1, nrow(grd))
+ #coordinates(grd) = ~x1+x2
+ #gridded(grd)=TRUE
+
+ # select april 1961:
+ w = w[, "1961-04"]
+
+ covfn = function(x, y = x) {
+ du = spDists(coordinates(x), coordinates(y))
+ t1 = as.numeric(index(x)) # time in seconds
+ t2 = as.numeric(index(y)) # time in seconds
+ dt = abs(outer(t1, t2, "-"))
+ # separable, product covariance model:
+ 0.6 * exp(-du/750000) * exp(-dt / (1.5 * 3600 * 24))
+ }
+
+ n = 10
+ tgrd = seq(min(index(w)), max(index(w)), length=n)
+ pred = krige0(sqrt(values)~1, w, STF(grd, tgrd), covfn)
+ layout = list(list("sp.points", pts, first=F, cex=.5),
+ list("sp.lines", m, col='grey'))
+ wind.pr0 = STFDF(grd, tgrd, data.frame(var1.pred = pred))
+
+ v = vgmST("separable",
+ space = vgm(1, "Exp", 750000),
+ time = vgm(1, "Exp", 1.5 * 3600 * 24),
+ sill = 0.6)
+ wind.ST = krigeST(sqrt(values)~1, w, STF(grd, tgrd), v)
+
+ all.equal(wind.pr0, wind.ST)
+
+ # stars:
+ df = data.frame(a = rep(NA, 324*10))
+ s = STF(grd, tgrd)
+ newd = addAttrToGeom(s, df)
+ wind.sta = krigeST(sqrt(values)~1, st_as_stars(w), st_as_stars(newd), v)
+ # 1
+ plot(stars::st_as_stars(wind.ST), breaks = "equal", col = sf.colors())
+ # 2
+ stplot(wind.ST)
+ # 3
+ plot(wind.sta, breaks = "equal", col = sf.colors())
+ st_as_stars(wind.ST)[[1]][1:3,1:3,1]
+ (wind.sta)[[1]][1:3,1:3,1]
+ st_bbox(wind.sta)
+ bbox(wind.ST)
+ all.equal(wind.sta, stars::st_as_stars(wind.ST), check.attributes = FALSE)
+
+ # 4: roundtrip wind.sta->STFDF->stars
+ rt = stars::st_as_stars(as(wind.sta, "STFDF"))
+ plot(rt, breaks = "equal", col = sf.colors())
+ # 5:
+ stplot(as(wind.sta, "STFDF"))
+ st_bbox(rt)
+
+ # 6:
+ stplot(as(st_as_stars(wind.ST), "STFDF"))
+ }
- checking for unstated dependencies in vignettes ... OK
- checking package vignettes ... OK
- checking re-building of vignette outputs ... [78s/101s] OK
- checking PDF version of manual ... [11s/16s] OK
- checking HTML version of manual ... OK
- checking for non-standard things in the check directory ... OK
- checking for detritus in the temp directory ... OK
- DONE
Status: 1 ERROR, 1 WARNING