Przekształcam wektor na raster w R. Jednak proces ten był zbyt długi. Czy istnieje możliwość włączenia skryptu w proces wielowątkowy lub przetwarzanie GPU, aby zrobić to szybciej?
Mój skrypt do zrasteryzowanego wektora.
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
klasa: RasterLayer wymiary: 9636, 11476, 110582736 (nrow, ncol, ncell) rozdzielczość: 10, 10 (x, y) zasięg: 505755, 620515, 8555432, 8651792 (xmin, xmax, ymin, ymax) koordyn. ref. : + proj = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0
setor
cechy klasy: SpatialPolygonsDataFrame: 5419 zasięg: 505755, 620515.4, 8555429, 8651792 (xmin, xmax, ymin, ymax) koordyn. ref. : + proj = utm + zone = 24 + południe + ellps = jednostki GRS80 + = m + zmienne no_defs: 6 nazw: ID, CD_GEOCODI, TIPO, dens_imov, area_m, domicilios 1 min wartości: 35464, 290110605000001, RURAL, 0,00000003,100004, 1,0000 wartości maksymalne: 58468, 293320820000042, URBANO, 0,54581673,99996, 99,0000
Odpowiedzi:
Próbowałem „zrównoleglić” funkcję
rasterize
za pomocąR
pakietuparallel
w następujący sposób:n
częścirasterize
każda część osobnoW moim komputerze
rasterize
funkcja zrównoleglona zajęła 2,75 razy mniej niż funkcja bez zrównolegleniarasterize
.Uwaga: poniższy kod pobiera plik kształtu wielokąta (~ 26,2 MB) z Internetu. Możesz użyć dowolnego obiektu SpatialPolygonDataFrame. To tylko przykład.
Załaduj biblioteki i przykładowe dane:
Rycina 1: Brazylia SpatialPolygonsDataFrame
Prosty przykład wątku
Czas na moim laptopie:
Przykład wątku wielowątkowego
Rycina 2: Wykres rastrowy Brazylii
Czas na moim laptopie:
Więcej informacji o równoległości w R :
źródło