r - 如何从多个每日 TRMM netcdf 文件中排序和创建栅格堆栈
问题描述
我试着从trmm
每日 nc4 文件中提取数据。
path<-"F:/TRMM/test"
setwd(path)
## open all `trmm` rainfall data files from folder
trmm_files = list.files(path,pattern = '*.nc', full.names = TRUE)
#I want only HQprecipitation variable from nc4 file.
trmm_stack <- stack(trmm_files, varname = "HQprecipitation")
但是trmm_stack
堆叠时失去了坐标系。因此,我不得不分配它。此外,如何验证栅格堆栈是否根据日期和顺序排序?我需要一个时间序列数据。
crs(trmm_stack) <- CRS('+init=EPSG:4326') # also it was rotated
trmm_stack_flip <- t(flip(trmm_stack, direction='y'))
然后我为位置创建一个经纬度坐标矩阵
lat<- c(26.0166666, 25.674444, 25.5666666, 25.6666666, 26.18, 25.57)
lon <- c(91.85, 91.9025, 91.8666666, 91.8833333, 91.75, 91.9)
xym <- cbind(lat, lon)
trmm_stack
并从使用中提取单元格值
data2 <- extract(trmm_stack, xym, method='simple', buffer = NULL, small = FALSE, cellnumbers = FALSE,
fun=NULL, na.rm=TRUE, df = FALSE, factors = FALSE)
然后我得到一个列名以层号结尾的输出表。但我不知道提取是否按照我想要的时间序列在确切的位置和日期顺序进行。如何验证这一点?任何帮助,将不胜感激。
解决方案
RasterStack 的顺序与文件名的顺序相同。您可以检查您的文件名(并在需要时对其进行排序,但请注意对表示为字符的数字进行排序(10 在 2 之前)。
请注意,您在这里犯了一个错误:
xym <- cbind(lat, lon)
它应该是
xym <- cbind(lon, lat)
推荐阅读
- monitoring - Javamelody 收集服务器聚合文件
- wordpress - WP - 按日期获取类别计数
- kubernetes - Kubernetes,自动服务回退到另一个命名空间
- solr - 按查询对 SOLR 结果进行排名
- dart - 循环时插入复选框
- hadoop - SAS Hive (Hadoop) 中是否有包含函数?
- javascript - Vanilla JavaScript:禁用网页中给定的预先存在的组合键
- python - 子列表的正则表达式
- c++ - 如何应用 libcurl 的持久连接选项
- reactjs - 当其长度 = 1 时,无法在 flatlist 中显示数组的内容