Hi Frederico, It may not solve all of your RAM issues, but in this situation I would skip the rasterToPolygons (which is also usually very slow) and use raster math to propagate NAs.
r <- raster(system.file("external/test.grd", package="raster")) r[!is.na(r)] <- 1 # Can also be faster to do r = r / r, but add an offset (that cannot result in 0) if you have valid 0s. r2 <- raster(extent(r), res(r)) r2[ ] <- 1 r2.mask <- r * r2 If you have a polygon to use as a mask, burn it in using the fasterize package and then apply the above. Hope that helps. Cheers, Steve On Wed., 12 Aug. 2020, 6:43 am Frederico Faleiro, <fvfale...@gmail.com> wrote: > Dear all, > > I would like to generate a mask from a raster, but my workflow needs a lot > of RAM to process big rasters. I need this polygon mask to use in another's > rasters. > Do you know another approach that needs less RAM? > > # reproducible example > library(raster) > # read data to create mask > r <- raster(system.file("external/test.grd", package="raster")) > r[!is.na(r)] <- 1 > pol <- rasterToPolygons(r, dissolve = T) # a lot of RAM to process the > data > # apply the mask in another raster > r2 <- raster(extent(r), res(r)) > r2[ ] <- 1 > r2.mask <- mask(r2, pol) > > Cheers! > > -- > Frederico Faleiro > Postdoctoral Researcher in the INCT-EECBio (https://www.eecbio.ufg.br/) > Department of Ecology | Institute of Biological Science | Federal > University of Goiás | Brazil > RG: https://www.researchgate.net/profile/Frederico_Faleiro > CV: http://lattes.cnpq.br/4926404840659003 > > [[alternative HTML version deleted]] > > _______________________________________________ > R-sig-Geo mailing list > 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