Spline interpolation and smoothing on the sphere.
Usage
interpolate_spline(
observations,
targets,
value,
lon_obs = lon,
lat_obs = lat,
lon_targets = lon,
lat_targets = lat,
k = 50
)
Arguments
- observations
data.frame of observations.
- targets
data.frame of locations to calculate the interpolated and smoothed values for (target points).
- value
Column with values in
observations
.- lon_obs
Column in
observations
with longitude (lon is default).- lat_obs
Column in
observations
with latitude (lat is default).- lon_targets
Column in
targets
with longitude (lon is default).- lat_targets
Column in
targets
with latitude (lat is default).- k
(default 50) is the basis dimension. For small data sets reduce
k
manually rather than using default.
Details
observations
should include at least columns for longitude
and latitude.
targets
should include at least columns for longitude,
latitude and value of interest to interpolate and smooth.
A smooth of the general type discussed in Duchon (1977) is used: the sphere is embedded in a 3D Euclidean space, but smoothing employs a penalty based on second derivatives (so that locally as the smoothing parameter tends to zero we recover a "normal" thin plate spline on the tangent space). This is an unpublished suggestion of Jean Duchon.
Examples
if (FALSE) { # \dontrun{
target <- sf::st_drop_geometry(nl_postcode3)
obs <- dplyr::sample_n(insurance, 1000)
pop_df <- interpolate_spline(obs, target, population_pc4, k = 20)
pop_sf <- dplyr::left_join(nl_postcode3, pop_df)
choropleth(pop_sf, value = "population_pc4_pred", n = 13)
} # }