[R-sig-Geo] indexing multi-layer rasters
Ben Tupper
btupper @end|ng |rom b|ge|ow@org
Thu Jan 16 17:50:24 CET 2020
Hi,
I usually avoid using logical indexes with multilayer rasters (stacks
and bricks), but I have never understood why indexing ala `[[` with
logicals isn't supported. Below is an example that shows how it
doesn't work like the typical indexing with logicals. I'm not asking
to have logical indices considered (although it would be handy), but
instead I really just want to understand why it is the way it is. I
scanned over the introductory vignette (https://rspatial.org/raster)
and issues (https://github.com/rspatial/raster/issues) but found
nothing there.
Thanks and cheers,
Ben
### START
library(raster)
logo <- raster::brick(system.file("external/rlogo.grd", package="raster"))
# red-red-red
logo[[c(TRUE, TRUE, TRUE)]]
# class : RasterStack
# dimensions : 77, 101, 7777, 3 (nrow, ncol, ncell, nlayers)
# resolution : 1, 1 (x, y)
# extent : 0, 101, 0, 77 (xmin, xmax, ymin, ymax)
# crs : +proj=merc +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
# names : red.1, red.2, red.3
# min values : 0, 0, 0
# max values : 255, 255, 255
# red-red
logo[[c(TRUE, TRUE)]]
# class : RasterStack
# dimensions : 77, 101, 7777, 2 (nrow, ncol, ncell, nlayers)
# resolution : 1, 1 (x, y)
# extent : 0, 101, 0, 77 (xmin, xmax, ymin, ymax)
# crs : +proj=merc +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
# names : red.1, red.2
# min values : 0, 0
# max values : 255, 255
# red
logo[[c(TRUE)]]
# class : RasterLayer
# band : 1 (of 3 bands)
# dimensions : 77, 101, 7777 (nrow, ncol, ncell)
# resolution : 1, 1 (x, y)
# extent : 0, 101, 0, 77 (xmin, xmax, ymin, ymax)
# crs : +proj=merc +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
# source : /usr/lib64/R/library/raster/external/rlogo.grd
# names : red
# values : 0, 255 (min, max)
logo[[c(TRUE, FALSE, TRUE)]]
#Error in .local(x, ...) : not a valid subset
#sessionInfo()
# R version 3.5.1 (2018-07-02)
# Platform: x86_64-redhat-linux-gnu (64-bit)
# Running under: CentOS Linux 7 (Core)
#
# Matrix products: default
# BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so
#
# locale:
# [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
# [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
LC_PAPER=en_US.UTF-8 LC_NAME=C
# [9] LC_ADDRESS=C LC_TELEPHONE=C
LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#
# attached base packages:
# [1] stats graphics grDevices utils datasets methods base
#
# other attached packages:
# [1] raster_3.0-7 sp_1.3-2
#
# loaded via a namespace (and not attached):
# [1] compiler_3.5.1 rgdal_1.4-8 tools_3.5.1 yaml_2.2.0
Rcpp_1.0.3 codetools_0.2-15
# [7] grid_3.5.1 lattice_0.20-35
### END
--
Ben Tupper
Bigelow Laboratory for Ocean Science
West Boothbay Harbor, Maine
http://www.bigelow.org/
https://eco.bigelow.org
More information about the R-sig-Geo
mailing list