Je convertis le vecteur en raster en R. Cependant, le processus était trop long. Est-il possible de mettre le script en traitement multithread ou GPU afin de le faire plus rapidement?
Mon script au vecteur tramé.
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 dimensions: 9636, 11476, 110582736 (nrow, ncol, ncell) résolution: 10, 10 (x, y) étendue: 505755, 620515, 8555432, 8651792 (xmin, xmax, ymin, ymax) coord. réf. : + proj = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0
setor
classe: SpatialPolygonsDataFrame: 5419 étendue: 505755, 620515.4, 8555429, 8651792 (xmin, xmax, ymin, ymax) coord. réf. : + proj = utm + zone = 24 + south + ellps = GRS80 + units = m + no_defs variables: 6 noms: ID, CD_GEOCODI, TIPO, dens_imov, area_m, domicilios1 valeurs min: 35464, 290110605000001, RURAL, 0.00000003,100004, 1,0000 valeurs maximales: 58468, 293320820000042, URBANO, 0,54581673,99996, 99,0000
Réponses:
J'ai essayé de "paralléliser" la fonction en
rasterize
utilisant leR
packageparallel
de cette manière:n
partiesrasterize
chaque partie séparémentDans mon ordinateur, la
rasterize
fonction parallélisée prenait 2,75 fois moins que la fonction non paralléliséerasterize
.Remarque: le code ci-dessous télécharge un fichier de formes polygonales (~ 26,2 Mo) depuis le Web. Vous pouvez utiliser n'importe quel objet SpatialPolygonDataFrame. Ce n'est qu'un exemple.
Charger des bibliothèques et des exemples de données:
Figure 1: Graphique SpatialPolygonsDataFrame du Brésil
Exemple de thread simple
Temps dans mon ordinateur portable:
Exemple de thread multithread
Figure 2: tracé matriciel du Brésil
Temps dans mon ordinateur portable:
Plus d'informations sur la parallélisation dans R :
la source