Skip to contents

This filter is a modification of the wbw_mean_filter, whereby the highest and lowest values in the kernel are dropped, and the remaining values are averaged to replace the central pixel. The result is a low-pass smoothing filter that is more robust than the wbw_mean_filter, which is more strongly impacted by the presence of outlier values. It is named after a system of scoring Olympic events.

Usage

wbw_olympic_filter(x, filter_size_x = 11L, filter_size_y = 11L)

Arguments

x

Raster object of class WhiteboxRaster. See wbw_read_raster() for more details.

filter_size_x

integer, X dimension of the neighbourhood size

filter_size_y

integer, Y dimension of the neighbourhood size

Value

WhiteboxRaster object containing filtered values

Details

Neighbourhood size, or filter size, is specified in the x and y dimensions using filter_size_x and filter_size_y These dimensions should be odd, positive integer values (e.g. 3L, 5L, 7L, 9L, etc.).

Examples

f <- system.file("extdata/dem.tif", package = "wbw")
wbw_read_raster(f) |>
  wbw_olympic_filter(filter_size_x = 3L, filter_size_y = 3L)
#> +-----------------------------------------------+ 
#> | WhiteboxRaster                                |
#> | dem.tif                                       |
#> |...............................................| 
#> | bands       : 1                               |
#> | dimensions  : 726, 800  (nrow, ncol)          |
#> | resolution  : 5.002392, 5.000243  (x, y)      |
#> | EPSG        : 2193  (Linear_Meter)            |
#> | extent      : 1925449 1929446 5582091 5585717 |
#> | min value   : 64.262451                       |
#> | max value   : 359.870361                      |
#> +-----------------------------------------------+