fastfocal: Fast Multi-scale Raster Extraction and Moving Window Analysis with Fast Fourier Transform (FFT) in R
fastfocal
provides high-performance, flexible raster
smoothing and extraction functions in R using moving windows,
buffer-based zones, and an auto-switching FFT backend for large kernels.
It supports multiple focal statistics and allows users to work at
multiple spatial scales with ease.
Once accepted on CRAN, you will be able to install the stable release with:
install.packages("fastfocal")
Until then, you can install the development version from GitHub:
# install.packages("remotes")
::install_github("hoyiwan/fastfocal") remotes
This package includes:
fastfocal()
— fast moving-window smoothing with support
for mean, sum, min, max, sd, and medianfastextract()
— fast extraction of raster values at
point or buffer locationsfastfocal_weights()
— utility for generating spatial
weight matrices (circular, Gaussian, etc.)terra
backendterra::SpatRaster
and
terra::SpatVector
objectslibrary(fastfocal)
library(terra)
# Create a dummy raster
<- rast(nrows = 100, ncols = 100, xmin = 0, xmax = 3000, ymin = 0, ymax = 3000)
r values(r) <- runif(ncell(r))
# Apply fast focal smoothing with circular window of radius 300
<- fastfocal(r, d = 300, w = "circle", fun = "mean")
smoothed
# Plot the result
plot(smoothed)
Weighted extraction at points:
# Create SpatVector of points
<- vect(data.frame(x = c(500, 1500), y = c(500, 2500)), geom = c("x", "y"), crs = crs(r))
pts
# Extract raster values in 500 m buffers around points
<- fastextract(r, pts, d = 500, fun = "mean")
result print(result)
You can also access them from R using:
vignette("index", package = "fastfocal")
This package is licensed under the MIT License (see the LICENSE file).
If you use fastfocal
in published work, please cite it
as:
Ho Yi Wan (2025). fastfocal: A fast, energy-efficient R package for focal raster operations. Version v0.1.1. Zenodo. https://doi.org/10.5281/zenodo.17074691
Or use the BibTeX entry:
@software{wan_fastfocal_2025,
author = {Ho Yi Wan},
title = {fastfocal: A fast, energy-efficient R package for focal raster operations},
version = {v0.1.3},
year = {2025},
publisher = {Zenodo},
doi = {10.5281/zenodo.17074691},
url = {https://doi.org/10.5281/zenodo.17074691}
}
You can also run:
citation("fastfocal")
Ho Yi Wan
hoyiwan@gmail.com
Built to support large-scale ecological analysis, high-performance raster processing, and reproducible landscape research workflows.