R: Areal-weighted interpolation of polygon data

interpolate_aw {sf} | R Documentation

## Areal-weighted interpolation of polygon data

### Description

Areal-weighted interpolation of polygon data

### Usage

    st_interpolate_aw(x, to, extensive, ...)

    ## S3 method for class 'sf'
    st_interpolate_aw(x, to, extensive, ..., keep_NA = FALSE)

### Arguments

`x` | object of class `sf`, for which we want to aggregate attributes
`to` | object of class `sf` or `sfc`, with the target geometries
`extensive` | logical; if TRUE, the attribute variables are assumed to be spatially extensive (like population) and the sum is preserved, otherwise, spatially intensive (like population density) and the mean is preserved.
`...` | ignored
`keep_NA` | logical; if `TRUE`, return all features in `to`, if `FALSE` return only those with non-NA values (but with `row.names` the index corresponding to the feature in `to`)

### Examples

    nc = st_read(system.file("shape/nc.shp", package="sf"))
    g = st_make_grid(nc, n = c(10, 5))
    a1 = st_interpolate_aw(nc["BIR74"], g, extensive = FALSE)
    sum(a1$BIR74) / sum(nc$BIR74) # not close to one: property is assumed spatially intensive
    a2 = st_interpolate_aw(nc["BIR74"], g, extensive = TRUE)
    # verify mass preservation (pycnophylactic) property:
    sum(a2$BIR74) / sum(nc$BIR74)
    a1$intensive = a1$BIR74
    a1$extensive = a2$BIR74
    plot(a1[c("intensive", "extensive")], key.pos = 4)

[Package sf version 1.0-7 Index]