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
observationswith longitude (lon is default).- lat_obs
Column in
observationswith latitude (lat is default).- lon_targets
Column in
targetswith longitude (lon is default).- lat_targets
Column in
targetswith latitude (lat is default).- k
(default 50) is the basis dimension. For small data sets reduce
kmanually 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)
} # }
