I added raster::zApply in my tests to validate the results. However, the indices of the names of the results are different now. Recall that the goal is to calculate from a raster stack time series the mean per day of the week. And that problem I have is that stackApply, zApply and calc/sapply return different indices in the result names. New code is available here: https://gist.github.com/kokkytos/93f315a5ecf59c0b183f9788754bc170 I'm really curious about missing something.
On 11/20/19 3:30 AM, Frederico Faleiro wrote: > Hi Leonidas, > > both results are in the same order, but the name is different. > You can rename the first as in the second: > names(res) <- names(res2) > > I provided an example to help you understand the logic. > > library(raster) > beginCluster(2) > r <- raster() > values(r) <- 1 > # simple sequential stack from 1 to 6 in all cells > s <- stack(r, r*2, r*3, r*4, r*5, r*6) > s > res <- clusterR(s, stackApply, args = list(indices=c(2,2,3,3,1,1), fun > = mean)) > res > res2 <- stackApply(s, c(2,2,3,3,1,1), mean) > res2 > dif <- res - res2 > # exatly the same order because the difference is zero for all layers > dif > # rename > names(res) <- names(res2) > > Best regards, > > Frederico Faleiro > > On Tue, Nov 19, 2019 at 4:15 PM Leonidas Liakos via R-sig-Geo > <r-sig-geo@r-project.org <mailto:r-sig-geo@r-project.org>> wrote: > > I run the example with clusterR: > > no_cores <- parallel::detectCores() -1 > raster::beginCluster(no_cores) > ?????? res <- raster::clusterR(inp, raster::stackApply, args = > list(indices=c(2,2,3,3,1,1),fun = mean)) > raster::endCluster() > > And the result is: > > > res > class?????????? : RasterBrick > dimensions : 180, 360, 64800, 3?? (nrow, ncol, ncell, nlayers) > resolution : 1, 1?? (x, y) > extent???????? : -180, 180, -90, 90?? (xmin, xmax, ymin, ymax) > crs?????????????? : +proj=longlat +datum=WGS84 +ellps=WGS84 > +towgs84=0,0,0 > source???????? : memory > names?????????? : layer.1, layer.2, layer.3 > min values :???????? 1.5,???????? 3.5,???????? 5.5 > max values :???????? 1.5,???????? 3.5,???????? 5.5?? > > > layer.1, layer.2, layer.3 (?) > > So what corrensponds to what? > > > If I run: > > res2 <- stackApply(inp,c(2,2,3,3,1,1),mean) > > The result is: > > > res2 > class : RasterBrick > dimensions : 180, 360, 64800, 3 (nrow, ncol, ncell, nlayers) > resolution : 1, 1 (x, y) > extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax) > crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 > source : memory > names : index_2, index_3, index_1 > min values : 1.5, 3.5, 5.5 > max values : 1.5, 3.5, 5.5 > > There is no consistency with the names of the output and obscure > correspondence with the indices in the case of clusterR > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-sig-Geo mailing list > R-sig-Geo@r-project.org <mailto:R-sig-Geo@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo > [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo