spatial_bisquare: Spatial Bisquare Basis

View source: R/spatial_bisquare.R

spatial_bisquareR Documentation

Spatial Bisquare Basis

Description

Spatial bisquare basis on point data.

Usage

spatial_bisquare(dom, knots, w)

Arguments

dom

Points \bm{u}_1, \ldots, \bm{u}_n to evaluate. See "Details".

knots

Knots \bm{c}_1, \ldots, \bm{c}_r for the basis. See "Details".

w

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 two-dimensional POINT entries are expected in st_geometry(dom). Otherwise, dom will be interpreted as an n \times 2 numeric matrix.

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

  • If both dom and knots are given as sf or sfc objects, they will be checked to ensure a common coordinate system.

For each \bm{u}_i, compute the basis functions

\varphi_j(\bm{u}) = \left[ 1 - \frac{\Vert\bm{u} - \bm{c}_j \Vert^2}{w^2} \right]^2 \cdot I(\Vert \bm{u} - \bm{c}_j \Vert \leq w)

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( \varphi_1(\bm{u}_i), \ldots, \varphi_r(\bm{u}_i) \Big).

See Also

Other bisquare: areal_spacetime_bisquare(), areal_spatial_bisquare(), spacetime_bisquare()

Examples

set.seed(1234)

# Create knot points
seq_x = seq(0, 1, length.out = 3)
seq_y = seq(0, 1, length.out = 3)
knots = expand.grid(x = seq_x, y = seq_y)
knots_sf = st_as_sf(knots, coords = c("x","y"), crs = NA, agr = "constant")

# Points to evaluate
x = runif(50)
y = runif(50)
pts = data.frame(x = x, y = y)
dom = st_as_sf(pts, coords = c("x","y"), crs = NA, agr = "constant")

rad = 0.5
spatial_bisquare(cbind(x,y), knots, rad)
spatial_bisquare(dom, knots, rad)

# Plot the knots and the points at which we evaluated the basis
plot(knots[,1], knots[,2], pch = 4, cex = 1.5, col = "red")
points(x, y, cex = 0.5)

# 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")


stcos documentation built on Aug. 21, 2023, 5:13 p.m.