Wie kann ich den Fortschrittsbalken wie this example innerhalb einer Funktion für die Verwendung in Calc-Raster-Funktion geschrieben verwenden?Wie zeigt man den Fortschrittsbalken in der Raster-Calc-Funktion an?
Ich habe einen riesigen Datensatz zu verarbeiten und ich möchte den Fortschrittsbalken verwenden, um die Dauer des Prozesses zu steuern. Ich habe versucht, so zu verwenden, die Funktion (des Prozesses) funktioniert perfekt, aber, zeige den Fortschrittsbalken nicht.
# PROGRESS BAR IN CALC RASTER EXAMPLE
# create data
r <- raster(nrow=10, ncol=10)
dataset <- list()
for (i in 1:20) {
dataset[i] <- setValues(r, rnorm(ncell(r), i, 3))
}
dataset <- stack(dataset)
## function to apply
pixel <-getValuesBlock(s1, row=1, nrows=1, col=1, ncols=1, lyrs=1:nlayers(s1))
CropAnalysis <- function (pixel, ...){
gc()
pb <- txtProgressBar(...)
# test : if is No data the return is
if (identical(x = is.na(pixel), y = rep(TRUE,length(pixel)))) {NA}else{
averageOfhigher <- mean(pixel[pixel > 10], na.rm=T)
averageOflower <- mean(pixel[pixel < 10], na.rm=T)
return(c(averageOfhigher, averageOflower))
}
setTxtProgressBar(pb)}
# applying calc finction
data_process<-calc(x=dataset, fun=CropAnalysis, forcefun=TRUE, forceapply=TRUE)
HALLO erscheint @RobertH, ich wende deinen Vorschlag an und es gibt keinen Fortschrittsbalken, nur den Beginn und das Ende des Fortschritts. Wie behebe ich das? –
das deutet darauf hin, dass es nicht viele Daten gibt. Sie können eine kleinere Chunksize in RasterOptions einstellen, um mehr Schritte zu bekommen (aber das kann die Dinge etwas verlangsamen) – RobertH
wenn ich progress = "text" verwende, zeigt die Konsole nur "| | 0%" die ganze Zeit, aber wenn ich Fortschritt anwende = "window" zeigt einen windown aus dem tcltk-Paket als Fortschritt an. –