st_dimensions {stars} | R Documentation |
get dimensions from stars object
Description
get dimensions from stars object
Usage
st_dimensions(.x, ...)
## S3 method for class 'stars'
st_dimensions(.x, ...)
st_dimensions(x) <- value
## S3 replacement method for class 'stars'
st_dimensions(x) <- value
## S3 replacement method for class 'stars_proxy'
st_dimensions(x) <- value
## S3 replacement method for class 'list'
st_dimensions(x) <- value
## S3 method for class 'array'
st_dimensions(.x, ...)
## Default S3 method:
st_dimensions(
.x,
...,
.raster,
affine = c(0, 0),
cell_midpoints = FALSE,
point = FALSE
)
st_set_dimensions(
.x,
which,
values = NULL,
point = NULL,
names = NULL,
xy,
...
)
st_get_dimension_values(.x, which, ..., where = NA, max = FALSE, center = NA)
Arguments
.x |
object to retrieve dimensions information from |
... |
further arguments |
x |
object of class |
value |
new object of class |
.raster |
length 2 character array with names (if any) of the raster dimensions |
affine |
numeric; specify parameters of the affine transformation |
cell_midpoints |
logical; if |
point |
logical; does the pixel value (measure) refer to a point (location) value or to an pixel (area) summary value? |
which |
integer or character; index or name of the dimension to be changed |
values |
values for this dimension (e.g. |
names |
character; vector with new names for all dimensions, or with the single new name for the dimension indicated by |
xy |
length-2 character vector; (new) names for the |
where |
character, one of 'start', 'center' or 'end'. Set to NA (default) to ignore and use |
max |
logical; if |
center |
logical; if |
Details
dimensions can be specified in two ways. The simplest is to pass a vector with numeric values for a numeric dimension, or character values for a categorical dimension. Parameter cell_midpoints
is used to specify whether numeric values refer to the offset (start) of a dimension interval (default), or to the center; the center case is only available for regular dimensions. For rectilinear numeric dimensions, one can specify either a vector with cell borders (start values), or a data.frame with two columns named "start" and "end", with the respective interval start and end values. In the first case, the end values are computed from the start values by assuming the last two intervals have equal width.
Value
the dimensions
attribute of x
, of class dimensions
Examples
x = read_stars(system.file("tif/L7_ETMs.tif", package = "stars"))
# Landsat 7 ETM+ band semantics: https://landsat.gsfc.nasa.gov/the-enhanced-thematic-mapper-plus/
# set bands to values 1,2,3,4,5,7:
(x1 = st_set_dimensions(x, "band", values = c(1,2,3,4,5,7), names = "band_number", point = TRUE))
# set band values as bandwidth
rbind(c(0.45,0.515), c(0.525,0.605), c(0.63,0.69), c(0.775,0.90), c(1.55,1.75), c(2.08,2.35)) %>%
units::set_units("um") -> bw # or: units::set_units(µm) -> bw
# set bandwidth midpoint:
(x2 = st_set_dimensions(x, "band", values = 0.5 * (bw[,1]+bw[,2]),
names = "bandwidth_midpoint", point = TRUE))
# set bandwidth intervals:
(x3 = st_set_dimensions(x, "band", values = make_intervals(bw), names = "bandwidth"))
m = matrix(1:20, nrow = 5, ncol = 4)
dim(m) = c(x = 5, y = 4) # named dim
(s = st_as_stars(m))
st_get_dimension_values(s, 'x', where = "start")
st_get_dimension_values(s, 'x', center = FALSE)
st_get_dimension_values(s, 'x', where = "center")
st_get_dimension_values(s, 'x', center = TRUE)
st_get_dimension_values(s, 'x', where = "end")
st_get_dimension_values(s, 'x', max = TRUE)