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
)

## Arguments

observations 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.

## Value

Object equal to object targets including an extra column with predicted values.

## 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.

See ordinary kriging for interpolation and smoothing on the sphere by means of kriging.

## References

Splines on the sphere

Martin Haringa

## Examples

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 <- left_join(nl_postcode3, pop_df)
choropleth(pop_sf, value = "population_pc4_pred", n = 13)
}