Python将GPM的h5数据转化成nc数据

nc文件是大家常用的文件格式,对于nc文件的处理,大家都比较数据。而GPM卫星数据采用h5文件格式存储,许多卫星数据都采用HDF5文件格式存储,这对于海量的卫星数据存储非常方便。

通过几天摸索,现将GPM的h5数据转化为NC数据,以方便后续进行绘图处理

import matplotlib.pyplot as plt
import numpy as np
#  读取文件
import xarray as xr
filename=r"D:\lunwen\lunwenshuju\GPM\2017yujishuju\2A.GPM.DPR.V9-20211125.20170506-S060857-E074131.018103.V07A.SUB.h5"
#  将H5文件转化为netcdf4文件
prefix = '/FS/'
geo = xr.open_dataset(filename,group=prefix,engine='netcdf4',decode_cf=False)
csf = xr.open_dataset(filename,group=prefix+'CSF',engine='netcdf4',decode_cf=False)
pre = xr.open_dataset(filename,group=prefix+'PRE',engine='netcdf4',decode_cf=False)
slv = xr.open_dataset(filename,group=prefix+'SLV',engine='netcdf4',decode_cf=False)
tim = xr.open_dataset(filename,group=prefix+'ScanTime',engine='netcdf4',decode_cf=False)
ver = xr.open_dataset(filename,group=prefix+'VER',engine='netcdf4',decode_cf=False)
#  将文件维度命名
bad_dims = list(geo.dims)
geo = geo.rename_dims({bad_dims[0]:'nscan',
                            bad_dims[1]:'nrayNS'})

bad_dims = list(csf.dims)
csf = csf.rename_dims({bad_dims[0]:'nscan',
                                bad_dims[1]:'nrayNS',})

bad_dims = list(pre.dims)
pre = pre.rename_dims({bad_dims[0]:'nscan',
                            bad_dims[1]:'nrayNS',
                            bad_dims[2]:'nbin',
                            bad_dims[3]:'nfreq'})

bad_dims = list(slv.dims)
slv = slv.rename_dims({bad_dims[0]:'nscan',
                            bad_dims[1]:'nrayNS',
                            bad_dims[2]:'nbin',
                            bad_dims[3]:'nfreq',
                            })

bad_dims = list(ver.dims)
ver = ver.rename_dims({bad_dims[0]:'nscan',
                                bad_dims[1]:'nrayNS',})
bad_dims = list(tim.dims)
tim = tim.rename_dims({bad_dims[0]:'nscan'})
#  合并文件
nc_ds=xr.merge([geo, csf, pre, slv, tim, ver])

文中都有注释。首先是根据网站所下载的具体的大类,将每个大类先进行转化。

Python将GPM的h5数据转化成nc数据_第1张图片

 然后用print()打印转化后的geo,csf等:

Python将GPM的h5数据转化成nc数据_第2张图片

可以看到每个大量所具有的的维度和对应个数:phony_dim_2:158等

然后打开上一节所要求下载的文件:filespec.GPM_.V7.pdf找到对应的位置:

Python将GPM的h5数据转化成nc数据_第3张图片

 Python将GPM的h5数据转化成nc数据_第4张图片

 可以看到每一个最小值对应的量,以及一个物理量所对应的数据组成。

转化后就变成了nc文件,按照正常的nc文件进行绘图即可。有些特殊的物理量需要另外处理,希望我尽快学会,今早分享给大家。

你可能感兴趣的:(GPM数据处理,python)