Spline interpolation and smoothing on the sphere.
interpolate_spline(
observations,
targets,
value,
lon_obs = lon,
lat_obs = lat,
lon_targets = lon,
lat_targets = lat,
k = 50
)
data.frame of observations.
data.frame of locations to calculate the interpolated and smoothed values for (target points).
Column with values in observations
.
Column in observations
with longitude (lon is default).
Column in observations
with latitude (lat is default).
Column in targets
with longitude (lon is default).
Column in targets
with latitude (lat is default).
(default 50) is the basis dimension. For small data sets reduce
k
manually rather than using default.
Object equal to object targets
including an extra column
with predicted values.
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.
if (FALSE) {
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)
}