RasterStack/Brick 用于多个文件夹中多个文件的多个变量 R
RasterStack/Brick for multiple variables from multiple files in multiple folders R
library(raster)
我正在处理一项相对复杂的任务,需要有关如何完成它的提示。
我的数据是从 1910 年到 2000 年的栅格时间序列,采用每日时间尺度。
每个栅格 (.asc
) 文件代表一个时间步长。
数据存储在文件夹中,每个文件夹包含1年的数据(共91个文件夹)。每个文件夹中有 1095 个文件。在这 1095 个文件中,Tmin=365、Tmax=365 和 precip=365 对应 year.All 年中的 365 天被格式化为闰年,二月有 29 天,无闰年缺少儒略日 60年.
在每个文件夹中,三个变量(Tmin、Tmax、precip)被标记为 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。
在三个独立的栅格堆栈中,第 1 层应该是 Jan-01-1910,最后一层是 Dec-31-2000 的数据。
3) 最后,我将有 3 个时间序列 rasterstacks 对应于 Tmax、Tmin 和 precip。我可以使用以下方法在三个光栅堆栈中设置时间轴:
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)
我无法提供可重现的示例,因为这些文件很大并且每年都存储在单独的文件夹中。
非常感谢,
山姆
您可以 select 基于文件名的文件,如下所示:
TminStack <- list.files(path=".", pattern=paste("min",".*.asc",sep=""), all.files=FALSE, full.names=TRUE,recursive=TRUE)
library(raster)
我正在处理一项相对复杂的任务,需要有关如何完成它的提示。
我的数据是从 1910 年到 2000 年的栅格时间序列,采用每日时间尺度。
每个栅格 (
.asc
) 文件代表一个时间步长。数据存储在文件夹中,每个文件夹包含1年的数据(共91个文件夹)。每个文件夹中有 1095 个文件。在这 1095 个文件中,Tmin=365、Tmax=365 和 precip=365 对应 year.All 年中的 365 天被格式化为闰年,二月有 29 天,无闰年缺少儒略日 60年.
在每个文件夹中,三个变量(Tmin、Tmax、precip)被标记为
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。
在三个独立的栅格堆栈中,第 1 层应该是 Jan-01-1910,最后一层是 Dec-31-2000 的数据。
3) 最后,我将有 3 个时间序列 rasterstacks 对应于 Tmax、Tmin 和 precip。我可以使用以下方法在三个光栅堆栈中设置时间轴:
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)
我无法提供可重现的示例,因为这些文件很大并且每年都存储在单独的文件夹中。
非常感谢,
山姆
您可以 select 基于文件名的文件,如下所示:
TminStack <- list.files(path=".", pattern=paste("min",".*.asc",sep=""), all.files=FALSE, full.names=TRUE,recursive=TRUE)