Estou convertendo vetor para varredura em R. No entanto, o processo foi muito longo. Existe a possibilidade de colocar o script no processamento multithread ou GPU para fazer isso mais rapidamente?
Meu script para vetor rasterizado.
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')
r.raster
classe: RasterLayer dimensões: 9636, 11476, 110582736 (nrow, ncol, ncell) resolução: 10, 10 (x, y) extensão: 505755, 620515, 8555432, 8651792 (xmin, xmax, ymin, ymax) coord. ref. : + proj = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0
setor
classe: SpatialPolygonsDataFrame features: 5419 extension: 505755, 620515.4, 8555429, 8651792 (xmin, xmax, ymin, ymax) coord. ref. : + proj = utm + zona = 24 + sul + ellps = GRS80 + unidades = m + no_defs variáveis: 6 nomes: ID, CD_GEOCODI, TIPO, dens_imov, area_m, domicilios1 min values: 35464, 290110605000001, RURAL, 0.00000003,100004, 1.0000 valores máximos: 58468, 293320820000042, URBANO, 0.54581673,99996, 99.0000
Respostas:
Eu tentei "paralelizar" a função
rasterize
usando oR
pacoteparallel
desta maneira:n
partesrasterize
cada parte separadamenteNo meu computador, a
rasterize
função paralelizada levou 2,75 vezes menos que arasterize
função não paralelizada .Nota: o código abaixo faz o download de um shapefile de polígono (~ 26,2 MB) da Web. Você pode usar qualquer objeto SpatialPolygonDataFrame. Este é apenas um exemplo.
Carregue bibliotecas e dados de exemplo:
Figura 1: Gráfico Brasil SpatialPolygonsDataFrame
Exemplo de thread simples
Tempo no meu laptop:
Exemplo de thread multithread
Figura 2: Gráfico Brasil Raster
Tempo no meu laptop:
Mais informações sobre paralelização em R :
fonte