Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- r.raster = raster()
- extent(r.raster) = extent(setor) #definindo o extent do raster
- res(r.raster) = 10 #definindo o tamanho do pixel
- setor.r = rasterize(setor, r.raster, 'dens_imov')
- # Load libraries
- library('raster')
- library('rgdal')
- # Load a SpatialPolygonsDataFrame example
- # Load Brazil administrative level 2 shapefile
- BRA_adm2 <- raster::getData(country = "BRA", level = 2)
- # Plot BRA_adm2
- plot(BRA_adm2)
- box()
- # Define RasterLayer object
- r.raster <- raster()
- # Define raster extent
- extent(r.raster) <- extent(BRA_adm2)
- # Define pixel size
- res(r.raster) <- 0.1
- # Simple thread -----------------------------------------------------------
- # Rasterize
- system.time(BRA_adm2.r <- rasterize(BRA_adm2, r.raster, 'NAME_2'))
- # Output:
- # user system elapsed
- # 23.883 0.010 23.891
- # Multithread -------------------------------------------------------------
- # Load 'parallel' package for support Parallel computation in R
- library('parallel')
- # Calculate the number of cores
- no_cores <- detectCores() - 1
- # Number of polygons features in SPDF
- features <- 1:nrow(BRA_adm2[,])
- # Split features in n parts
- n <- 50
- parts <- split(features, cut(features, n))
- # Initiate cluster (after loading all the necessary object to R environment: BRA_adm2, parts, r.raster, n)
- cl <- makeCluster(no_cores, type = "FORK")
- print(cl)
- # Parallelize rasterize function
- system.time(rParts <- parLapply(cl = cl, X = 1:n, fun = function(x) rasterize(BRA_adm2[parts[[x]],], r.raster, 'NAME_2')))
- # Finish
- stopCluster(cl)
- # Merge all raster parts
- rMerge <- do.call(merge, rParts)
- # Plot raster
- plot(rMerge)
- # Output:
- # user system elapsed
- # 0.203 0.033 8.688
Add Comment
Please, Sign In to add comment