我正在尝试将每日数据(35 年)汇总到每月,然后使用 R 中的栅格包计算季节性平均值(我知道如何使用 CDO 执行此操作)。下面是我的代码,它输出所有年份的 4 个季节平均值(140 层)。我怎样才能循环输出仅 4 层(对于 4 个季节)?我感谢您的帮助。
dailydata <- brick ("dailyrain.nc")
dates <- seq(as.Date("1981-01-01"), as.Date("2015-12-31"), by="day")
months <- format(dates, "%Y-%m")
Aggregate2Monthly <- function(x) {
agg <- aggregate(x, by=list(months), sum)
return(agg$x)
}
mothlydata <- calc(dailydata, Aggregate2Monthly)
mondates <- seq(as.Date("1981-01-01"), as.Date("2015-12-31"), by="month")
years <- format(mondates, "%Y")
seasons.def=c(1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4)
years.seasons <- paste(years, seasons.def, sep="-")
nyears <- years[!duplicated(years)]
nseas <- seasons.def[!duplicated(seasons.def)]
Aggregate2Seasons <- function(x) {
agg <- aggregate(x, by=list(years.seasons), mean)
return(agg$x)
}
seasonsdata <- calc(mothlydata, Aggregate2Seasons)