RasterStack / Brick用于多个文件夹中多个文件的多个变量R

时间:2016-03-11 00:38:09

标签: r date maps time-series raster

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)

我无法提供可重复的示例,因为文件很大并且每年都存储在单独的文件夹中。

非常感谢,

萨姆。

1 个答案:

答案 0 :(得分:1)

您可以根据名称选择文件,如下所示:

TminStack <- list.files(path=".", pattern=paste("min",".*.asc",sep=""), all.files=FALSE, full.names=TRUE,recursive=TRUE)