[R-sig-Geo] indexing multi-layer rasters
Vijay Lulla
v|j@y|u||@ @end|ng |rom gm@||@com
Fri Jan 17 16:12:50 CET 2020
Hmmm... maybe the below might be easier to remember (at least it is for me)
then:
logo[[which(c(TRUE, TRUE, TRUE))]]
logo[[which(c(TRUE, FALSE, TRUE))]]
Thanks Akos!
On Fri, Jan 17, 2020 at 7:38 AM Bede-Fazekas Ákos <bfalevlist using gmail.com>
wrote:
>
> Dear Ben,
> Although I cannot answer your question on why logical subsetting was not
> implemented in package raster, there is a very easy workaround:
> logo[[(1:nlayers(logo))[c(TRUE, TRUE, TRUE)]]]
> logo[[(1:nlayers(logo))[c(TRUE, FALSE, TRUE)]]]
>
> Also note that in case of lists '[[' does recursive indexing, and this
> type of logical indexing you are asking about works only with '['.
> HTH,
> Ákos Bede-Fazekas
> Hungarian Academy of Sciences
>
> 2020.01.16. 17:50 keltezéssel, Ben Tupper írta:
> > 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
> >
> >
> >
> >
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
--
Vijay Lulla
Assistant Professor,
Dept. of Geography, IUPUI
425 University Blvd, CA-207C.
Indianapolis, IN-46202
vlulla using iupui.edu
ORCID: https://orcid.org/0000-0002-0823-2522
Online: http://vijaylulla.com | https://github.com/vlulla
[[alternative HTML version deleted]]
More information about the R-sig-Geo
mailing list