## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 7,
  fig.height = 4.5
)

## ----example-data-------------------------------------------------------------
library(spatcovar)

regions <- example_polygons()
sites   <- example_points()
routes  <- example_lines()
zones   <- example_grid()
rst     <- example_raster()

# Inspect the target polygon layer
regions

## ----pipeline-----------------------------------------------------------------
covariates <- regions |>
  spat_area(unit = "km2") |>
  spat_count(sites, name = "n_sites") |>
  spat_length(routes, unit = "km") |>
  spat_distance(sites, method = "minimum", unit = "km") |>
  spat_overlap(zones, measure = "share") |>
  spat_raster(rst, stats = c("mean", "max"), name = "elevation")

# View the constructed covariate table
sf::st_drop_geometry(covariates)

## ----area-units---------------------------------------------------------------
regions |>
  spat_area(unit = "ha") |>
  subset(select = c(name, area_ha))

## ----distance-methods---------------------------------------------------------
regions |>
  spat_distance(sites, method = "minimum", unit = "km") |>
  spat_distance(sites, method = "centroid", unit = "km", name = "dist_cent_km") |>
  subset(select = c(name, dist_km, dist_cent_km))

## ----count-semantics----------------------------------------------------------
regions |>
  spat_count(sites, name = "site_count") |>
  subset(select = c(name, site_count))

## ----length-example-----------------------------------------------------------
regions |>
  spat_length(routes, unit = "km") |>
  subset(select = c(name, length_km))

## ----overlap-example----------------------------------------------------------
regions |>
  spat_overlap(zones, measure = "area", unit = "km2") |>
  spat_overlap(zones, measure = "share") |>
  subset(select = c(name, overlap_km2, overlap_share))

## ----raster-example-----------------------------------------------------------
regions |>
  spat_raster(rst, stats = c("mean", "median", "min", "max"), name = "topo") |>
  subset(select = c(name, topo_mean, topo_median, topo_min, topo_max))

## ----diagnostics--------------------------------------------------------------
result <- regions |>
  spat_distance(sites, unit = "km", diagnostics = TRUE)

spat_diagnostics(result)

