0

我正在尝试使用snowandsnowfall包,特别是sfSapply()从多个光栅文件中提取数据的函数。它看起来像这样:

queue <- list(rast1, rast2, rast3)
sfInit(parallel=TRUE, cpus=3)
sfLibrary(raster)
sfLibrary(rgdal)
sfLibrary(sp)
a <- sfSapply(queue, extract, sp=TRUE, fun=mean, y=tracts)
sfStop()

fun传递给的参数sfSapply()用于extract()函数(在raster库中)。但是,sfSapply()也需要一个fun参数 ( extract());在此示例中,我将其作为第二个位置参数提供。

如何为传递的函数指定一个参数,而不会将它与预期fun的参数混淆?funsfSapply()

4

1 回答 1

1

一种解决方法是创建一个自定义提取函数,其中内置了这些参数:

sfRasterExtract=function(raster_obj){
extract(raster_obj, sp=TRUE, fun=mean, y=tracts)
}

确保在 sfInit 之后使用 sfExportAll() 将该函数导入您将使用的所有实例,然后运行

a <- sfSapply(queue, sfRasterExtract)
于 2015-07-16T12:05:37.460 回答