library(raster)
我正在从事一项相对复杂的工作,需要有关如何完成任务的提示。
我的数据是日常时间范围内1910-2000的光栅时间序列。
每个栅格(.asc
)文件代表一个时间步。
数据存储在文件夹中,每个文件夹包含1年的数据(总共91个文件夹)。每个文件夹中有1095个文件。在这1095个文件中,Tmin = 365,Tmax = 365,以及相当于一年365天的mM = 365.所有年份都被格式化为闰年,2月份为29天,朱利安日子60天在无闰年中缺失。
在每个文件夹中,三个变量(Tmin,Tmax,Cany)标记为max1910_1.asc,min1910_1.asc, precip1910_1.asc
等,直到365.
任务:
1)我想将所有文件导入R.我可以使用以下方法获取文件路径:
files <- dir("C:/data//, recursive=TRUE, full.names=TRUE, pattern="\\.asc$")#
2)为每个变量制作一个rasterstack / brick,即TminStack,TmaxStack和PrecipStack。
在三个独立的rasterstack中,layer1应该是2010年1月1日,最后一层是Dec-31-2000的数据。
3)最后,我将有3个时间序列rasterstacks对应于Tmax,Tmin和degra。我可以使用以下方法在三个rasterstack中设置时间轴:
dates=seq(as.POSIXct("1910-01-01"), as.POSIXct("2000-12-31"), by="day")
TminStack <- setZ(TminStack,dates)
TmaxStack <- setZ(TmaxStack,dates)
precipStack <- setZ(precipStack,dates)
我无法提供可重复的示例,因为文件很大并且每年都存储在单独的文件夹中。
非常感谢,
萨姆。
答案 0 :(得分:1)
您可以根据名称选择文件,如下所示:
TminStack <- list.files(path=".", pattern=paste("min",".*.asc",sep=""), all.files=FALSE, full.names=TRUE,recursive=TRUE)