Create a proxy data cube, which filters pixels by a spatial (multi)polygon For all pixels whose center is within the polygon, the original
Usage
filter_geom(cube, geom, srs =NULL)
Arguments
Argument
Description
cube
source data cube
geom
either a WKT string, or an sfc or sfg object (sf package)
srs
string identifier of the polygon’s coordinate reference system understandable for GDAL
Details
The resulting data cube will not be cropped but pixels outside of the polygon will be set to NAN.
If geom is provided as an sfc object with length > 1, geometries will be combined with sf::st_combine() before.
The geometry is automatically transformed to the data cube’s spatial reference system if needed.
Value
a proxy data cube object
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-06"),srs="EPSG:32618", nx =497, ny=526, dt="P1M")L8.cube =raster_cube(L8.col, v) L8.cube =select_bands(L8.cube, c("B04", "B05")) L8.ndvi =apply_pixel(L8.cube, "(B05-B04)/(B05+B04)", "NDVI")WKT =gsub(pattern='\\n',replacement="",x ="Polygon ((-74.3541 40.9254, -73.9813 41.2467, -73.9997 41.4400, -74.5362 41.1795, -74.6286 40.9137, -74.3541 40.9254))")L8.ndvi.filtered =filter_geom(L8.ndvi, WKT, "EPSG:4326")L8.ndvi.filtered
A data cube proxy object
Dimensions:
low high count pixel_size chunk_size
t 2018-01-01 2018-06-30 6 P1M 1
y 4345299 4744931 526 759.756653992395 384
x 388941.2 766552.4 497 759.781086519115 384
Bands:
name offset scale nodata unit
1 NDVI 0 1 NaN
# filter_geomFilter data cube pixels by a polygon```{r include=FALSE}library(gdalcubes)```## DescriptionCreate a proxy data cube, which filters pixels by a spatial (multi)polygon For all pixels whose center is within the polygon, the original## Usage```rfilter_geom(cube, geom, srs =NULL)```## Arguments| Argument | Description ||:------------|:----------------------------------|| cube | source data cube || geom | either a WKT string, or an sfc or sfg object (sf package) || srs | string identifier of the polygon's coordinate reference system understandable for GDAL |## DetailsThe resulting data cube will not be cropped but pixels outside of the polygon will be set to NAN. If `geom` is provided as an sfc object with length > 1, geometries willbe combined with `sf::st_combine()` before.The geometry is automatically transformed to the data cube's spatial referencesystem if needed.## Valuea proxy data cube object## 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-06"),srs="EPSG:32618", nx =497, ny=526, dt="P1M")L8.cube =raster_cube(L8.col, v) L8.cube =select_bands(L8.cube, c("B04", "B05")) L8.ndvi =apply_pixel(L8.cube, "(B05-B04)/(B05+B04)", "NDVI")WKT =gsub(pattern='\\n',replacement="",x ="Polygon ((-74.3541 40.9254, -73.9813 41.2467, -73.9997 41.4400, -74.5362 41.1795, -74.6286 40.9137, -74.3541 40.9254))")L8.ndvi.filtered =filter_geom(L8.ndvi, WKT, "EPSG:4326")L8.ndvi.filteredplot(L8.ndvi.filtered)```