numeric value; new spatial resolution in x direction
dy
numeric value; new spatial resolution in y direction
method
aggregation method, one of “mean”, “min”, “max”, “median”, “count”, “sum”, “prod”, “var”, and “sd”
fact
simple integer factor defining how many cells (per axis) become aggregated to a single new cell, can be used instead of dx and dy
Details
This function reduces the spatial resolution of a data cube by applying an aggregation function to smaller blocks of pixels.
The size of the cube may be expanded automatically in all directions if the original extent is not divisible by the new size of pixels.
Notice that if boundaries of the target cube do not align with the boundaries of the input cube (for example, if aggregating from 10m to 15m spatial resolution), pixels of the input cube will contribute to the output pixel that contains its center coordinate. If the center coordinate is exactly on a boundary, the input pixel will contribute to the right / bottom pixel of the output cube.
Note
This function returns a proxy object, i.e., it will not start any computations besides deriving the shape of the result.
Examples
# create image collection from example Landsat data only # if not already done in other examplesif (!file.exists(file.path(tempdir(), "L8.db"))) { L8_files <-list.files(system.file("L8NY18", package ="gdalcubes"),".TIF", recursive =TRUE, full.names =TRUE)create_image_collection(L8_files, "L8_L1TP", file.path(tempdir(), "L8.db"), quiet =TRUE) }L8.col =image_collection(file.path(tempdir(), "L8.db"))v =cube_view(extent=list(left=388941.2, right=766552.4, bottom=4345299, top=4744931, t0="2018-01", t1="2018-12"),srs="EPSG:32618", dx =500, dy=500, dt="P3M", aggregation ="median")L8.cube =raster_cube(L8.col, v, mask=image_mask("BQA", bits=4, values=16))L8.rgb =select_bands(L8.cube, c("B02", "B03", "B04"))L8.5km =aggregate_space(L8.rgb, 5000,5000, "mean")L8.5km
A data cube proxy object
Dimensions:
low high count pixel_size chunk_size
t 2018-01-01 2018-12-31 4 P3M 1
y 4345115 4745115 80 5000 80
x 387746.8 767746.8 76 5000 76
Bands:
name offset scale nodata unit
1 B02 0 1 NaN
2 B03 0 1 NaN
3 B04 0 1 NaN
# aggregate_spaceSpatial aggregation of data cubes```{r include=FALSE}library(gdalcubes)```## DescriptionCreate a proxy data cube, which applies an aggregation function to reduce the spatial resolution.## Usage```raggregate_space(cube, dx, dy, method ="mean", fact =NULL)```## Arguments| Argument | Description ||:------------|:----------------------------------|| cube | source data cube || dx | numeric value; new spatial resolution in x direction || dy | numeric value; new spatial resolution in y direction || method | aggregation method, one of "mean", "min", "max", "median", "count", "sum", "prod", "var", and "sd" || fact | simple integer factor defining how many cells (per axis) become aggregated to a single new cell, can be used instead of dx and dy |## DetailsThis function reduces the spatial resolution of a data cube by applying an aggregation function to smaller blocks of pixels. The size of the cube may be expanded automatically in all directions if the original extent is not divisible by the new size of pixels.Notice that if boundaries of the target cube do not align with the boundaries of the input cube (for example, if aggregating from 10m to 15m spatial resolution), pixels ofthe input cube will contribute to the output pixel that contains its center coordinate. If the center coordinate is exactly on a boundary, the input pixel will contribute to the right / bottom pixel of the output cube.## NoteThis function returns a proxy object, i.e., it will not start any computations besides deriving the shape of the result.## Examples```{r}# create image collection from example Landsat data only # if not already done in other examplesif (!file.exists(file.path(tempdir(), "L8.db"))) { L8_files <-list.files(system.file("L8NY18", package ="gdalcubes"),".TIF", recursive =TRUE, full.names =TRUE)create_image_collection(L8_files, "L8_L1TP", file.path(tempdir(), "L8.db"), quiet =TRUE) }L8.col =image_collection(file.path(tempdir(), "L8.db"))v =cube_view(extent=list(left=388941.2, right=766552.4, bottom=4345299, top=4744931, t0="2018-01", t1="2018-12"),srs="EPSG:32618", dx =500, dy=500, dt="P3M", aggregation ="median")L8.cube =raster_cube(L8.col, v, mask=image_mask("BQA", bits=4, values=16))L8.rgb =select_bands(L8.cube, c("B02", "B03", "B04"))L8.5km =aggregate_space(L8.rgb, 5000,5000, "mean")L8.5kmplot(L8.5km, rgb=3:1, zlim=c(5000,12000))```