aggregate_space: Spatial aggregation of data cubes

View source: R/aggregate_space.R

aggregate_spaceR Documentation

Spatial aggregation of data cubes

Description

Create a proxy data cube, which applies an aggregation function to reduce the spatial resolution.

Usage

aggregate_space(cube, dx, dy, method = "mean", fact = NULL)

Arguments

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

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 examples
if (!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


plot(L8.5km, rgb=3:1, zlim=c(5000,12000))



appelmar/gdalcubes_R documentation built on March 9, 2024, 10:23 a.m.