我試圖通過hargreaves
方法來計算蒸發內package SPEI
。這包括使用最小溫度(TMIN
)和 上限溫度(TMAX
)。並行計算是我最好的選擇,因爲Tmin
和Tmax
rasterstacks
有500,000 cells and 100 layers each
。 Hargreaves function
以Tmin
,Tmax
和latitude
在each grid
作爲輸入。以下是我的第一個猜測如何去了解這一點:parLapply多個參數ř
library(SPEI)
# go parallel
library(parallel)
clust <- makeCluster(detectCores())
#har <- hargreaves(TMIN,TMAX,lat=37.6475) # get evaporation for a station.
然而,我的數據網格化。
Tmin
Tmax
和是列表中,在Tmin
Tmax
和每個數據幀具有附加給它的$latitude
。在pet
,k$d
是三甲基銦,k$d
的最高溫度(也許我應該提供兩個參數在pet
例如function(k,y)
而不只是k
?)
pet <- function(k) {
hargreaves(k$d,k$d, k$latitude, na.rm=TRUE)}
# Make library and function available to clust
clusterEvalQ(clust, library(SPEI))
clusterExport(clust, pet)
pet_list <- parLapply(clust, TMIN,TMAX, pet)
parLapply
只接受一個參數。我如何通過Tmin
和Tmax
到parLapply
? 是否我的寵物功能不正確?
謝謝。
你也可以看看'clusterMap'在同一個包中。 – lmo