#' Create polygon region from raster intervals
#'
#' @param x raster layer
#' @param lo low values (paired with hi to define intervals)
#' @param hi high values
#' @param auto default `FALSE`, set to true to define hi/lo automatically
#' @examples
#' f <- system.file("ex/elev.tif", package="terra")
#' r <- rast(f)
#' p <- isoband_raster(r)
#' library(terra)
#' plot(vect(isoband_raster(r, auto = TRUE)))
isoband_raster <- function(x, lo, hi, auto = FALSE) {
if (auto) {
breaks <- pretty(values(x))
lo <- head(breaks, -1)
hi <- tail(breaks, -1)
}
b <- isoband::isobands(xFromCol(x, seq_len(dim(x)[2L])), yFromRow(x, seq_len(dim(x)[1L])), as.matrix(x[[1]], wide = TRUE), levels_low = lo, levels_hi = hi)
sf::st_sf(lo = lo, hi = hi, geometry = sf::st_sfc(isoband::iso_to_sfg(b), crs = crs(x)))
}
Created
March 24, 2022 00:53
-
-
Save mdsumner/eab05cc75176add545859054f3aa8bf4 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment