spacetime_bisquare {stcos} | R Documentation |
Space-Time Bisquare Basis
Description
Space-time bisquare basis on point data.
Usage
spacetime_bisquare(dom, knots, w_s, w_t)
Arguments
dom |
Space-time points |
knots |
Spatio-temporal knots
|
w_s |
Spatial radius for the basis. |
w_t |
Temporal radius for the basis. |
Details
Notes about arguments:
Both
dom
andknots
may be provided as eithersf
orsfc
objects, or as matrices of points.If an
sf
orsfc
object is provided fordom
,n
three-dimensionalPOINT
entries are expected inst_geometry(dom)
. Otherwise,dom
will be interpreted as ann \times 3
numeric matrix.If an
sf
orsfc
object is provided forknots
,r
three-dimensionalPOINT
entries are expected inst_geometry(knots)
. Otherwise,knots
will be interpreted as anr \times 3
numeric matrix.If both
dom
andknots_s
are given assf
orsfc
objects, they will be checked to ensure a common coordinate system.
For each (\bm{u}_i,v_i)
, compute the basis functions
\psi_j(\bm{u},v) =
\left[ 2 - \frac{\Vert \bm{u} - \bm{c}_j \Vert^2}{w_s^2}- \frac{|v - g_j|^2}{w_t^2} \right]^2 \cdot
I(\Vert \bm{u} - \bm{c}_j \Vert \leq w_s) \cdot
I(|v - g_j| \leq w_t)
for j = 1, \ldots, r
.
Due to the treatment of \bm{u}_i
and \bm{c}_j
as points in a
Euclidean space, this basis is more suitable for coordinates from a map
projection than coordinates based on a globe representation.
Value
A sparse n \times r
matrix whose i
th row
is
\bm{s}_i^\top =
\Big(
\psi_1(\bm{u}_i,v_i), \ldots, \psi_r(\bm{u}_i,v_i)
\Big).
See Also
Other bisquare:
areal_spacetime_bisquare()
,
areal_spatial_bisquare()
,
spatial_bisquare()
Examples
set.seed(1234)
# Create knot points
seq_x = seq(0, 1, length.out = 3)
seq_y = seq(0, 1, length.out = 3)
seq_t = seq(0, 1, length.out = 3)
knots = expand.grid(x = seq_x, y = seq_y, t = seq_t)
knots_sf = st_as_sf(knots, coords = c("x","y","t"), crs = NA, dim = "XYM", agr = "constant")
# Points to evaluate
x = runif(50)
y = runif(50)
t = sample(1:3, size = 50, replace = TRUE)
pts = data.frame(x = x, y = y, t = t)
dom = st_as_sf(pts, coords = c("x","y","t"), crs = NA, dim = "XYM", agr = "constant")
rad = 0.5
spacetime_bisquare(cbind(x,y,t), knots, w_s = rad, w_t = 1)
spacetime_bisquare(dom, knots_sf, w_s = rad, w_t = 1)
# Plot the (spatial) knots and the points at which we evaluated the basis
plot(knots[,1], knots[,2], pch = 4, cex = 1.5, col = "red")
text(x, y, labels = t, cex = 0.75)
# Draw a circle representing the basis' radius around one of the knot points
tseq = seq(0, 2*pi, length=100)
coords = cbind(rad * cos(tseq) + seq_x[2], rad * sin(tseq) + seq_y[2])
lines(coords, col = "red")