如何在编写用于calc栅格函数的函数中使用this example之类的进度条?
我有一个庞大的数据集要处理,我希望使用进度条来控制进程的持续时间。我试图像这样使用,功能(进程)完美地工作,但是,不显示进度条。
File mediaStorageDir = context.getFilesDir();
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("Fade", "failed to create directory");
return null;
}
}
// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
.format(new Date());
File mediaFile=new File(mediaStorageDir.getPath()+File.separator
+ "IMG_" + timeStamp + ".JPG");
return mediaFile;
}
答案 0 :(得分:3)
您可以使用progress
包中大多数函数内置的raster
参数。仅在以块的形式写入时才显示(因为数据集很大)。
# example data
library(raster)
r <- raster(nrow=10, ncol=10)
d <- stack(lapply(1:20, function(i) setValues(r, rnorm(ncell(r), i, 3) )) )
f <- function(pixel, ...){
if (all(is.na(pixel))) {
c(NA, NA) # note the two NAs to match the other case
} else {
averageOfhigher <- mean(pixel[pixel > 10], na.rm=TRUE)
averageOflower <- mean(pixel[pixel < 10], na.rm=TRUE)
c(averageOfhigher, averageOflower)
}
}
请勿在脚本中使用以下行。它只需要这个 玩具示例以触发块状写入,以便显示进度条
rasterOptions(todisk=TRUE)
但是请使用progress
参数(“text”或“window”)
r <- calc(d, fun=f, progress='text')
答案 1 :(得分:0)
一个简单的解决方案
您可以使用光栅包中内置的rasterOptions
函数。
作为例子
rasterOptions(progress = 'text',timer=TRUE)
将如示例所示向您显示进度,以及光栅包中每个已使用功能的时间。
检查此链接以获取更多高级选项:
https://rdrr.io/cran/raster/man/rasterOptions.html