首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将自然年转换为水文年时间序列

将自然年转换为水文年时间序列
EN

Stack Overflow用户
提问于 2017-08-01 23:03:34
回答 1查看 213关注 0票数 1

给定自然年( rasterbrickJan-Dec),如何将其转换为水文年(从1st October and ending on the following 30th September开始)?与这里问题类似(但不确切)的东西。

样本数据:

代码语言:javascript
复制
     nl <- 768
     s <- brick(nrows = 510,  ncols = 1068,
                   xmn = -180, xmx = 180, ymn = -90, ymx = 90,
                   crs = "+proj=longlat +datum=WGS84",
                   nl = nl,values=TRUE)
        dates <- seq(as.Date("1950-01-01"), as.Date("2013-12-31"), by = "month")
        s <- setZ(s, dates)
vals <- 1:ncell(s)
s[]=vals
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-02 00:51:09

我以前也是这样的写了一个函数

代码语言:javascript
复制
to_wateryear <- function(thedate){
  thedate = as.Date(thedate)
  year = as.integer(substr(thedate, 1, 4))
  cutoff =  cutoff = as.Date(paste(year, '-10-01', sep=''))
  return(ifelse(thedate < cutoff, 
           year*1000 + thedate - as.Date(paste(year - 1, '-09-30', sep='')),
           (year + 1)*1000 + thedate - as.Date(paste(year, '-09-30', sep=''))))
}

示例:

代码语言:javascript
复制
to_wateryear(as.Date(Sys.time()))
to_wateryear('2013-10-01')
# leap year behavior
to_wateryear('2012-09-30')
to_wateryear('2013-09-30')
to_wateryear('2012-02-29')
to_wateryear('2013-03-31')

从你的评论中编辑,听起来你真正想要的是用水年来分割,而不是用水文年来表示日期。

代码语言:javascript
复制
library(raster)
nl <- 768
s <- brick(nrows = 510,  ncols = 1068, 
  xmn = -180, xmx = 180, ymn = -90, ymx = 90,
  crs = "+proj=longlat +datum=WGS84",
  nl = nl,values=TRUE)

dates <- seq(as.Date("1950-01-01"), as.Date("2013-12-31"), by = "month")
# use water year
s <- setZ(s, to_wateryear(dates))
vals <- 1:ncell(s)
s[]=vals

# split by water year
hyears = unique(getZ(s) %/% 1000)
res = vector("list", length(hyears))
for(i in 1:length(hyears))
  res[[i]] = s[[which(getZ(s) %/% 1000 == hyears[i])]]
names(res) = paste0("HY", hyears)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45448934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档