spatial_bisquare {stcos} | R Documentation |
Spatial Bisquare Basis
Description
Spatial bisquare basis on point data.
Usage
spatial_bisquare(dom, knots, w)
Arguments
dom |
Points |
knots |
Knots |
w |
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
two-dimensionalPOINT
entries are expected inst_geometry(dom)
. Otherwise,dom
will be interpreted as ann \times 2
numeric matrix.If an
sf
orsfc
object is provided forknots
,r
two-dimensionalPOINT
entries are expected inst_geometry(knots)
. Otherwise,knots
will be interpreted as anr \times 2
numeric matrix.If both
dom
andknots
are given assf
orsfc
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 i
th 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")