
Create a spatial grid
get_grid.RdCreates a spatial grid, in `terra::rast()` of `sf` format, for areas within the boundaries provided
Arguments
- boundary
`sf` object with boundary of the area(s) you want a grid for, e.g an EEZ or country. Boundaries can be obtained using `get_boundary()`
- resolution
`numeric`; the desired grid cell resolution in same units (usually metres or degrees) as `crs`: `sf::st_crs(crs, parameters = TRUE)$units_gdal`
- crs
a coordinate reference system: `numeric` (e.g. EPSG code `4326`), `character` (e.g. `"+proj=longlat +datum=WGS84 +no_defs"`), or object of class `sf` or `sfc`. This is passed to `sf::st_crs()`
- output
`character` the desired output format, either `"raster"`, `"sf_square"` (vector), or `"sf_hex"` (vector); default is `"raster"`
- touches
`logical`. If `TRUE` all cells touched by the `boundary` will be included, and if `FALSE` only cells whose center point (centroid) falls within the `boundary` are included. Default is `FALSE`.
Details
For a `terra::rast()` format grid, each cell within the boundary is set to value 1, whereas cells outside are NA. For `sf` grids, the grid covers the boundary area and cells can be square (`output = "sf_square"`) or hexagonal (`output = "sf_hex"`). By default only cells whose centroids fall within the `boundary` are included in the grid. To include cells that touch the `boundary` use `touches = TRUE`. `sf::st_make_grid()` is used to create `sf` grids. The default ordering of this grid type is from bottom to top, left to right. In contrast, the `terra::rast()` grid is ordered from top to bottom, left to right. To preserve consistency across the data types, we have reordered `sf` grids to also fill from top to bottom, left to right.
Examples
# use get_boundary() to get a polygon of Samoa's Exclusive Economic Zone
samoa_eez <- get_boundary(name = "Samoa")
# You need a suitable coordinate reference system (crs) for your area of interest,
# https://projectionwizard.org is useful for this purpose. For spatial planning,
# equal area projections are normally best.
samoa_projection <- '+proj=laea +lon_0=-172.5 +lat_0=0 +datum=WGS84 +units=m +no_defs'
# Create a grid with 5 km (5000 m) resolution covering the `samoa_eez`
# in a projection specified by `crs`.
samoa_grid <- get_grid(boundary = samoa_eez, resolution = 5000, crs = samoa_projection)