在创建栅格时间序列之前,我遇到了从列表中堆叠栅格的问题。当我使用样本数据在R环境中直接执行此操作时,它可以正常工作。 此错误之前的代码为:
FunR<-function(r){
ext<-raster(extent(r),nrow=1100,ncol=1100)
crs(ext)<-crs(r)
D<-rasterize(r,ext,field="LFRP")
EC<-extent(-20, 60,0,30)
D2<-extend(D,EC)
D3<-crop(D2,extent(-18,20,2,30))
s <- raster(nrow=600, ncol=1000,extent(-18,20,2,30))
crs(s)<-crs(WA)
Ds <- resample(D3, s, method='bilinear')
crs(Ds)<-crs(WA)
Ds
}
###Create rasters and crop
DL4<-sapply(DL3,FunR)
DL5<-stack(DL4) #(error occurs after this line)
但是,一旦我将其作为脚本发送到HPC上运行,我会收到以下错误:
Error in x[[1]] : subscript out of bounds
Calls: stack -> stack -> .local
请问我怎么搭便车?另外,如何清除列表中完全NA
的文件?我怀疑这可能也是一个问题。
这是我的“qsub”脚本:
#PBS -o fre8.txt
#PBS -e fren8.txt
#PBS -N FRP08_quarterly
#PBS -q high_mem
#PBS -l walltime=50:00:00
#PBS -l nodes=1:ppn=4
#PBS -l vmem=400gb
#PBS -m bea
#PBS -M me@...com
module load R/3.1.3
cd /scratch/aroo1
R --no-save -q -f FRPquarts.R
答案 0 :(得分:0)
我发现如果在会话中没有显式加载gdal模块,在HPC linux环境中使用光栅库通常会产生输出错误。 例如,在linux集群上使用slurm我经常需要在运行脚本之前加载gdal: 加载gis / gdal-1.9.2
使用Slurm,我使用了&#39;模块可用&#39;列出群集中已安装的所有可用模块。我确信qsub有一个非常相似的命令。只需记下gdal模块路径/名称,然后使用load或module load命令使其运行。现在,如果gdal不可用,您必须让管理员将其安装到集群或编写脚本来安装到您自己的主目录。