如何解决基于 R 中月份的子集 NetCDF 数据
我只想研究雨季(6 月至 9 月)的感知。我找到了子集数据帧 here 的解决方案。但是,NetCDF 数据略有不同,日期属于索引号,而不是数据框中的行/列之一。在这种情况下,如何对 NetCDF 数据进行子集化?
ncin <- nc_open(ncfname)
print(ncin) # The NetCDF data has following dimension
3 dimensions:
lon Size:119
lat Size:173
datetime Size:13514
units: days since 1983-01-01
variable:
float precip[lon,lat,datetime] (Chunking: [119,173,1])
datetime
的形式不是真实的日期。 t <- ncvar_get(ncin,"datetime")
将打印 1 到 13514 而不是 1/1/1983 到 12/31/2019。
因此,我必须转换时间变量。
tustr <- strsplit(tunits$value," ")
tdstr <- strsplit(unlist(tustr)[3],"-")
tmonth <- as.integer(unlist(tdstr)[2])
tday <- as.integer(unlist(tdstr)[3])
tyear <- as.integer(unlist(tdstr)[1])
chron(time,origin=c(tmonth,tday,tyear)) # print: 01/01/83...12/31/19
然后,通过使用 filter
,如果数据只是一个数据框,我可以对数据进行子集化。
library(dplyr) # loads %>%
library(lubridate)
dft %>% filter(month(Year) %in% c(6,7,8,9))
我的问题是:对于 NetCDF 类型的数据。 datetime
只是时间维度的索引。 例如,precip[1,1,1]
给了我 1983 年 1 月 1 日 (Lon,lat)=(1,1) 的感知数据。没有实际保存日期信息的行或列。如何根据月份对 NetCDF 数据进行子集化?谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。