我正在处理一些 hdf5 数据集。但是,日期存储在文件中,文件名中没有这些日期的提示。属性文件由年中的日、年中的月、月中的日和年列组成。我想提取数据为每个文件创建时间序列标识,即可用于时间序列的年月日期格式。可以在此处下载数据样本:
有一个属性组文件和一个数据组文件。我使用R库“rhdf5”来探索 hdf5 文件。例如
CO1<-h5ls ("TES-Aura_L3-CO_r0000006311_F01_09.he5")
Attr<-h5read("TES-Aura_L3-CO_r0000006311_F01_09.he5","HDFEOS INFORMATION/coremetadata")
Data<-h5read("TES-Aura_L3-CO_r0000006311_F01_09.he5", "HDFEOS\SWATHS\ColumnAmountNO2\Data Fields\ColumnAmountNO2Trop")
读取时的 Attr 包含一个长字符串,唯一需要的信息是“2007-08-31”,即获取日期。我已经能够使用 Stringr 库来提取它:
regexp <- "([[:digit:]]{4})([-])([[:digit:]]{2})([-])([[:digit:]]{2})"
Date<-str_extract(Attr,pattern=regexp)
它将日期返回为:
"2007-08-31"
现在剩下的唯一问题是日期未被识别为数字或日期。如何更改此设置,因为我需要将日期与所有日期的数据绑定以创建时间序列(更像是标识符,因为数据集是不规则的),好吗?下面是从字符串中提取日期并与每个日期的 CO 值绑定后的外观示例
Dates CO3b
[1,] "2011-03-01" 1.625811e+18
[2,] "2011-03-04" 1.655504e+18
[3,] "2011-03-11" 1.690428e+18
[4,] "2011-03-15" 1.679871e+18
[5,] "2011-03-17" 1.705987e+18
[6,] "2011-03-17" 1.661198e+18
[7,] "2011-03-17" 1.662694e+18
[8,] "2011-03-20" 1.520328e+18
[9,] "2011-03-21" 1.510642e+18
[10,] "2011-03-21" 1.556637e+18
但是,R将这些日期识别为字符而不是日期。我需要将它们转换为我可以使用的时间序列。