0
calc 래스터 함수에 사용하기 위해 작성된 함수 내에서 this example과 같은 진행률 막대를 어떻게 사용할 수 있습니까?래스터 계산 기능에서 진행률 막대를 표시하는 방법은 무엇입니까?
나는 처리해야 할 거대한 데이터 세트가 있으며 프로세스 진행 시간을 제어하기 위해 진행률 막대를 사용하고자합니다. 이런 식으로 사용하려고하면 프로세스의 함수가 완벽하게 작동하지만 진행률 표시 줄을 표시하지 않습니다.
# 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)
HI @ 로버트 H, 나는 당신의 제안을 적용하고 진도 표시 줄이 없다. 단지 진행의 시작과 끝 뿐이다. 이 문제를 해결하는 방법? –
은 많은 데이터가 없다고 제안합니다. rasterOptions의 작은 chunkize를 설정하여 더 많은 단계를 수행 할 수 있습니다. (조금 느려질 수도 있습니다) – RobertH
progress = "text"를 사용하면 콘솔은 항상 "| 0 %"만 표시하지만 진행률을 적용하면 = "window"는 tcltk 패키지의 화면을 진행 상태로 표시합니다. –