我需要从 1303 个栅格中获取数据(每个栅格都有 1 个月的数据)并为栅格中的每个网格单元制作一个时间序列。最后,我会将所有时间序列加入一个庞大的(动物园)文件中。
我有可以做到这一点的代码(我尝试了一小部分数据集并且它有效)但它似乎永远只是为了堆叠栅格(现在超过 2 小时并且仍在计数),这不是较慢的部分,这将是时间序列。所以这是我的代码,如果有人知道堆叠栅格和/或创建时间序列的更快方法(可能没有双循环?)请帮助...
我不知道任何其他编程语言,但这对 R 来说是否太过分了?
files <- list.files(pattern=".asc")
pat <- "^.*pet_([0-9]{1,})_([0-9]{1,}).asc$"
ord_files <- as.Date(gsub(pat, sprintf("%s-%s-01", "\\1", "\\2"), files))
files<-files[order(ord_files)]
#using "raster" package to import data
s<- raster(files[1])
pet<-vector()
for (i in 2:length(files))
{
r<- raster(files[i])
s <- stack(s, r)
}
#creating a data vector
beginning = as.Date("1901-01-01")
full <- seq(beginning, by='1 month', length=length(files))
dat<-as.yearmon(full)
#building the time series
for (lat in 1:360)
for (long in 1:720)
{
pet<-as.vector(s[lat,long])
x <- xts(pet, dat)
write.zoo(x,file=paste("P:/WRSRL/Users1/ncgk/IBERIA/cru_pet/zoo/","lat",lat,"long",long,".csv", sep="") , sep=",")
}