Распараллеливание gstat :: idw в R - PullRequest
0 голосов
/ 21 июня 2019

Я выполняю интерполяцию IDW с использованием пакета gstat в R. Мой код работает нормально, но занимает слишком много времени. Я хочу распараллелить функцию gstat :: idw.

Я уже пробовал, как описано в ссылке, указанной ниже, но не смог https://gis.stackexchange.com/questions/237672/how-to-achieve-parallel-kriging-in-r-to-speed-up-the-process

library("raster")
library("rgdal")
library("maptools")
library("sp")
library("gstat")


new_f = read.csv("1.csv")   

new_f$Lat = as.numeric(as.character(new_f$Lat))
new_f$Long = as.numeric(as.character(new_f$Long))
new_f$Rainfall = as.numeric(as.character(new_f$Rainfall))
coordinates(new_f) <- ~Lat + Long

my_sp <- sp::SpatialPointsDataFrame(coords = data.frame(new_x1$Long, new_x1$Lat), data = data.frame(new_x1$Rainfall), proj4string = CRS("+init=epsg:4326"))
x_range <- as.numeric(c(min(my_sp@coords[,1]),max(my_sp@coords[,1])))  # min/max longitude of the interpolation area
y_range <- as.numeric(c(min(my_sp@coords[,2]),max(my_sp@coords[,2])))  # min/max latitude of the interpolation area

# create an empty grid of values ranging from the xmin-xmax, ymin-ymax
grd <- expand.grid(x = seq(from = x_range[1],
                   to = x_range[2], 
                   by = 0.05),
                   y = seq(from = y_range[1],                                           to = y_range[2], 
                       by = 0.05))  # expand points to grid

# Convert grd object to a matrix and then turn into a spatial
# points object
coordinates(grd) <- ~x + y
# turn into a spatial pixels object
gridded(grd) <- TRUE
fullgrid(grd) <- TRUE
proj4string(grd) <- proj4string(my_sp)
idw_pow2 <- gstat::idw(formula = new_x1.Rainfall ~ 1,
           locations = my_sp,
           newdata = grd,
         nmax = 12,
           idp = 2)
r = raster(idw_pow2)
extent(r) = extent(my_sp)

Пожалуйста, помогите мне сократить время, необходимое для запуска кода.

Ссылка на файл CSV приведена ниже.

https://drive.google.com/file/d/1qim5bJm5-jao3-ijwapZJ-UkOf_AeAza/view?usp=sharing

...