GLASS数据形式
主要形式:
由于GLASS数据下载的方式主要有两种,一是国家地球系统科学数据中心,二是马里兰大学GLASS下载,其各自下载下来的形式有很大不同。
(1)国家地球系统科学数据中心
如果你是在国家地球系统科学数据中心下载的长时间序列,即一年一年下载,你会发现下载的结果为ZIP压缩文件,需要对压缩文件一点点解压缩,读取时也稍有麻烦,以后我也会详细介绍,这里就不做重点了。
(2)马里兰大学GLASS数据下载
马里兰大学GLASS数据下载可以参考我之前的那篇批量下载更为方便,选择自己需要的数据集和时间范围。下载后的数据在一个文件夹里,每一个文件的名字是根据批量下载是确定的:GLASS产品使用(一)
马里兰大学GLASS数据下载结果
批量读取-PYTHON
思路:
-
读取文件夹里的文件名,以时间序列排序;
#导入所需要的包
import numpy as np
from netCDF4 import Dataset
import os
from pyhdf.SD import SD
dir = r'/media/GLASS-PAR0.05/HDF'#glass数据所在文件夹,内含一个数据的多时间文件
filenames=os.listdir(dir)#读取文件夹里的数据,读取时并不是按顺序读取
filenames.sort(key=lambda x:int(x[:7]))#以文件夹里文件名前7位排序,即年+序号:2000001;排序后为正确时间序列
2.取文件夹里以.hdf结尾的文件名,创建列表保存;
zs=np.array(filenames)#将文件夹里文件名装换成array
zz=[]#创造一个列表,append以hdf文件名结尾的文件名以忽略hdf.xml等文件
for z in zs:
if z[8:]=='hdf':
zz.append(z[:7])
3.循环读取以.hdf文件;
for i in range(文件数夹里文件数/3):
index='/media/GLASS-PAR0.05/HDF/'+zz[i]+'.hdf'#循环读取文件夹里的文件,具体看一看对hdf文件的处理
hdf_obj = SD(index)
值得注意的是,前两步都是对文件夹里的文件名进行处理,第三步是根据文件名读取hdf文件。如何处理.hdf文件大家可以参考我的工具箱工具箱第1期 用python玩转HDF
更多细节请关注VX公众号遥感迷