Learn R Programming

spatialEco (version 2.0-2)

idw.smoothing: Inverse Distance Weighted smoothing

Description

Distance weighted smoothing of a variable in a spatial point object

Usage

idw.smoothing(x, y, d, k)

Value

A vector, same length as nrow(x), of smoothed y values

Arguments

x

An sf POINT class object

y

Numeric data column in x to be smoothed

d

Distance constraint

k

Maximum number of k-nearest neighbors within d

Details

Smoothing is conducted with a weighted-mean where; weights represent inverse standardized distance lags Distance-based or neighbour-based smoothing can be specified by setting the desired neighbour smoothing method to a specified value then the other parameter to the potential maximum. For example; a constraint distance, including all neighbors within 1000 (d=1000) would require k to equal all of the potential neighbors (n-1 or k=nrow(x)-1).

Examples

Run this code

library(sf)
if(require(sp, quietly = TRUE)) {
  data(meuse, package = "sp")
  meuse <- st_as_sf(meuse, coords = c("x", "y"), crs = 28992, 
                    agr = "constant")
      
 # Calculate distance weighted mean on cadmium variable in meuse data   
   cadmium.idw <- idw.smoothing(meuse, 'cadmium', k=nrow(meuse), d = 1000)                
   meuse$cadmium.wm <- cadmium.idw
 
   opar <- par(no.readonly=TRUE)
     par(mfrow=c(2,1)) 
       plot(density(meuse$cadmium), main='Cadmium')
       plot(density(meuse$cadmium.wm), main='IDW Cadmium')
   par(opar)

plot(meuse[c("cadmium","cadmium.wm")], pch=20)   

} else { 
  cat("Please install sp package to run example", "\n")
}

Run the code above in your browser using DataLab