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])

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

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

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

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

 

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

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

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值