CRAN Package Check Results for Package gstat

Last updated on 2023-03-27 05:52:43 CEST.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 2.1-0 23.47 226.93 250.40 OK
r-devel-linux-x86_64-debian-gcc 2.1-0 21.83 175.08 196.91 OK
r-devel-linux-x86_64-fedora-clang 2.1-0 252.32 ERROR
r-devel-linux-x86_64-fedora-gcc 2.1-0 335.55 OK
r-patched-linux-x86_64 2.1-0 27.92 226.50 254.42 OK
r-release-linux-x86_64 2.1-0 20.03 214.10 234.13 OK
r-release-macos-arm64 2.1-0 85.00 OK
r-release-macos-x86_64 2.1-0 137.00 OK
r-release-windows-x86_64 2.1-0 111.00 346.00 457.00 OK
r-oldrel-macos-arm64 2.1-0 123.00 OK
r-oldrel-macos-x86_64 2.1-0 144.00 OK
r-oldrel-windows-ix86+x86_64 2.1-0 65.00 388.00 453.00 OK

Check Details

Version: 2.1-0
Check: tests
Result: 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’ [3s/11s]
     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’ [5s/12s]
     Comparing ‘krige0.Rout’ to ‘krige0.Rout.save’ ... OK
     Running ‘line.R’
     Comparing ‘line.Rout’ to ‘line.Rout.save’ ...57a58,59
    > Warning message:
    > In wkt(x) : CRS object has no comment
    129a132,133
    > Warning message:
    > In wkt(x) : CRS object has no comment
    190a195,196
    > Warning message:
    > In wkt(x) : CRS object has no comment
     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’ [37m/63m]
     Running ‘unproj.R’ [6s/17s]
     Comparing ‘unproj.Rout’ to ‘unproj.Rout.save’ ...58c58
    < Please note that rgdal will be retired during 2023,
    ---
    > Please note that rgdal will be retired by the end of 2023,
    61,62c61,62
    < See https://r-spatial.org/r/2022/04/12/evolution.html and https://github.com/r-spatial/evolution
    < rgdal: version: 1.6-5, (SVN revision 1199)
    ---
    >
    > rgdal: version: 1.5-31, (SVN revision 1171)
    64,66c64,65
    < Loaded GDAL runtime: GDAL 3.6.3, released 2023/03/07
    < Path to GDAL shared files: /usr/local/clang/share/gdal
    < GDAL does not use iconv for recoding strings.
    ---
    > Loaded GDAL runtime: GDAL 3.4.3, released 2022/04/22
    > Path to GDAL shared files: /usr/share/gdal
    68,69c67,68
    < Loaded PROJ runtime: Rel. 8.2.1, January 1st, 2022, [PJ_VERSION: 821]
    < Path to PROJ shared files: /data/gannet/ripley/.local/share/proj:/usr/local/share/proj:/usr/local/share/proj
    ---
    > Loaded PROJ runtime: Rel. 8.2.0, November 1st, 2021, [PJ_VERSION: 820]
    > Path to PROJ shared files: /home/edzer/.local/share/proj:/usr/share/proj
    71c70
    < Linking to sp version:1.6-0
    ---
    > Linking to sp version:1.4-7
    74c73
    < Spam version 2.9-1 (2022-08-07) is loaded.
    ---
    > Spam version 2.8-0 (2022-01-05) is loaded.
    101,102c100,104
    < Warning message:
    < PROJ support is provided by the sf and terra packages among others
    ---
    > Warning messages:
    > 1: In showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj = prefer_proj) :
    > Discarded datum Amersfoort in Proj4 definition
    > 2: In showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj = prefer_proj) :
    > Discarded datum Unknown based on WGS84 ellipsoid in Proj4 definition
     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’ [0m/26m]
    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("+init=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]
     OMP: Warning #96: Cannot form a team with 8 threads, using 2 instead.
     OMP: Hint Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set).
     > 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("+init=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 >"
     [4] "Attributes: < Component \"proj4string\": Attributes: < Component \"comment\": 1 string mismatch > >"
     >
     > # 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]],
     ID["EPSG",19914]],
     CS[Cartesian,2],
     AXIS["(E)",east,
     ORDER[1],
     LENGTHUNIT["metre",1,
     ID["EPSG",9001]]],
     AXIS["(N)",north,
     ORDER[2],
     LENGTHUNIT["metre",1,
     ID["EPSG",9001]]],
     USAGE[
     SCOPE["unknown"],
     AREA["Netherlands - onshore, including Waddenzee, Dutch Wadden Islands and 12-mile offshore coastal zone."],
     BBOX[50.75,3.2,53.7,7.22]]]
     >
     > # 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.085 (0,5]: 316
     1st Qu.:5.238 1st Qu.:0.137 (5,6]:1778
     Median :5.573 Median :0.162 (6,7]: 962
     Mean :5.707 Mean :0.185 (7,8]: 47
     3rd Qu.:6.172 3rd Qu.:0.212 (8,9]: 0
     Max. :7.440 Max. :0.500 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))
     >
     > Sys.setenv(TZ="")
     > 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.11022e-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)
     > (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(rgdal, quietly = TRUE) && require(maps, quietly = TRUE)) {
     + proj4string(pts) = "+proj=longlat +datum=WGS84 +ellps=WGS84"
     + utm29 = CRS("+proj=utm +zone=29 +datum=WGS84 +ellps=WGS84")
     + pts = spTransform(pts, utm29)
     + # note the t() in:
     + w = STFDF(pts, wind$time, data.frame(values = as.vector(t(velocities))))
     +
     + library(mapdata)
     + library(maptools)
     + m = map2SpatialLines(
     + map("worldHires", xlim = c(-11,-5.4), ylim = c(51,55.5), plot=F))
     + proj4string(m) = "+proj=longlat +datum=WGS84 +ellps=WGS84"
     + m = spTransform(m, utm29)
     +
     + # 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"))
     + }
     Please note that rgdal will be retired during 2023,
     plan transition to sf/stars/terra functions using GDAL and PROJ
     at your earliest convenience.
     See https://r-spatial.org/r/2022/04/12/evolution.html and https://github.com/r-spatial/evolution
     rgdal: version: 1.6-5, (SVN revision 1199)
     Geospatial Data Abstraction Library extensions to R successfully loaded
     Loaded GDAL runtime: GDAL 3.6.3, released 2023/03/07
     Path to GDAL shared files: /usr/local/clang/share/gdal
     GDAL does not use iconv for recoding strings.
     GDAL binary built with GEOS: TRUE
     Loaded PROJ runtime: Rel. 8.2.1, January 1st, 2022, [PJ_VERSION: 821]
     Path to PROJ shared files: /data/gannet/ripley/.local/share/proj:/usr/local/share/proj:/usr/local/share/proj
     PROJ CDN enabled: FALSE
     Linking to sp version:1.6-0
     To mute warnings of possible GDAL/OSR exportToProj4() degradation,
     use options("rgdal_show_exportToProj4_warnings"="none") before loading sp or rgdal.
     Checking rgeos availability: TRUE
     Please note that 'maptools' will be retired during 2023,
     plan transition at your earliest convenience;
     some functionality will be moved to 'sp'.
     OMP: Warning #96: Cannot form a team with 12 threads, using 2 instead.
     OMP: Hint Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set).
Flavor: r-devel-linux-x86_64-fedora-clang