spacetime_bisquare: Space-Time Bisquare Basis

View source: R/spacetime_bisquare.R

spacetime_bisquareR 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 (\bm{u}_1,v_1), \ldots, (\bm{u}_n,v_n) to evaluate. See "Details".

knots

Spatio-temporal knots (\bm{c}_1,g_1), \ldots, (\bm{c}_r,g_r) for the basis. See "Details".

w_s

Spatial radius for the basis.

w_t

Temporal radius for the basis.

Details

Notes about arguments:

  • Both dom and knots may be provided as either sf or sfc objects, or as matrices of points.

  • If an sf or sfc object is provided for dom, n three-dimensional POINT entries are expected in st_geometry(dom). Otherwise, dom will be interpreted as an n \times 3 numeric matrix.

  • If an sf or sfc object is provided for knots, r three-dimensional POINT entries are expected in st_geometry(knots). Otherwise, knots will be interpreted as an r \times 3 numeric matrix.

  • If both dom and knots_s are given as sf or sfc 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 ith 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")


holans/ST-COS documentation built on Aug. 28, 2023, 5:50 a.m.