Skip to contents

Using input points, the bounding box is split to the predefined numbers of columns and rows. Each grid will be buffered by the radius.

Usage

par_pad_grid(
  input,
  mode = c("grid", "grid_advanced", "grid_quantile"),
  nx = 10L,
  ny = 10L,
  grid_min_features = 30L,
  padding = NULL,
  unit = NULL,
  quantiles = NULL,
  merge_max = NULL,
  return_wkt = FALSE,
  ...
)

Arguments

input

sf or Spat* object.

mode

character(1). Mode of region construction. One of

  • "grid" (simple grid regardless of the number of features in each grid)

  • "grid_advanced" (merging adjacent grids with smaller number of features than grid_min_features). The argument grid_min_features should be specified.

  • "grid_quantile" (x and y quantiles): an argument quantiles should be specified.

nx

integer(1). The number of grids along x-axis.

ny

integer(1). The number of grids along y-axis.

grid_min_features

integer(1). A threshold to merging adjacent grids

padding

numeric(1). A extrusion factor to make buffer to clip actual datasets. Depending on the length unit of the CRS of input.

unit

character(1). The length unit for padding (optional). units::set_units is used for padding when sf object is used. See link for the list of acceptable unit forms.

quantiles

numeric. Quantiles for grid_quantile mode.

merge_max

integer(1). Maximum number of grids to merge per merged set.

return_wkt

logical(1). Return WKT format. When TRUE, the return value will be a list of two WKT strings.

...

arguments passed to the internal function

Value

A list of two,

  • original: exhaustive (filling completely) and non-overlapping grid polygons in the class of input

  • padded: a square buffer of each polygon in original. Used for computation.

Author

Insang Song

Examples

# data
library(sf)
options(sf_use_s2 = FALSE)
ncpath <- system.file("shape/nc.shp", package = "sf")
nc <- read_sf(ncpath)
nc <- st_transform(nc, "EPSG:5070")

# run: nx and ny should strictly be integers
nc_comp_region <-
  par_pad_grid(
    nc,
    mode = "grid",
    nx = 4L, ny = 2L,
    padding = 10000)
#> Switch sf class to terra...
#> Switch terra class to sf...
par(mfcol = c(1, 2))
plot(nc_comp_region$original$geometry)
plot(nc_comp_region$padded$geometry)


nc_comp_region_wkt <-
  par_pad_grid(
    nc,
    mode = "grid",
    nx = 4L, ny = 2L,
    padding = 10000,
    return_wkt = TRUE)
#> Switch sf class to terra...
#> Switch terra class to sf...
nc_comp_region_wkt$original
#> [1] "POLYGON ((1054293 1348021, 1249094 1348021, 1249094 1518623, 1054293 1518623, 1054293 1348021))"
#> [2] "POLYGON ((1249094 1348021, 1443895 1348021, 1443895 1518623, 1249094 1518623, 1249094 1348021))"
#> [3] "POLYGON ((1443895 1348021, 1638695 1348021, 1638695 1518623, 1443895 1518623, 1443895 1348021))"
#> [4] "POLYGON ((1638695 1348021, 1833496 1348021, 1833496 1518623, 1638695 1518623, 1638695 1348021))"
#> [5] "POLYGON ((1054293 1518623, 1249094 1518623, 1249094 1689226, 1054293 1689226, 1054293 1518623))"
#> [6] "POLYGON ((1249094 1518623, 1443895 1518623, 1443895 1689226, 1249094 1689226, 1249094 1518623))"
#> [7] "POLYGON ((1443895 1518623, 1638695 1518623, 1638695 1689226, 1443895 1689226, 1443895 1518623))"
#> [8] "POLYGON ((1638695 1518623, 1833496 1518623, 1833496 1689226, 1638695 1689226, 1638695 1518623))"
nc_comp_region_wkt$padded
#> [1] "POLYGON ((1044293 1338021, 1044293 1528623, 1259094 1528623, 1259094 1338021, 1044293 1338021))"
#> [2] "POLYGON ((1239094 1338021, 1239094 1528623, 1453895 1528623, 1453895 1338021, 1239094 1338021))"
#> [3] "POLYGON ((1433895 1338021, 1433895 1528623, 1648695 1528623, 1648695 1338021, 1433895 1338021))"
#> [4] "POLYGON ((1628695 1338021, 1628695 1528623, 1843496 1528623, 1843496 1338021, 1628695 1338021))"
#> [5] "POLYGON ((1044293 1508623, 1044293 1699226, 1259094 1699226, 1259094 1508623, 1044293 1508623))"
#> [6] "POLYGON ((1239094 1508623, 1239094 1699226, 1453895 1699226, 1453895 1508623, 1239094 1508623))"
#> [7] "POLYGON ((1433895 1508623, 1433895 1699226, 1648695 1699226, 1648695 1508623, 1433895 1508623))"
#> [8] "POLYGON ((1628695 1508623, 1628695 1699226, 1843496 1699226, 1843496 1508623, 1628695 1508623))"