爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 44124|回复: 13

[经验总结] 使用python批量读取hdf5文件

[复制链接]

新浪微博达人勋

发表于 2020-4-4 16:52:25 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
最近在读取文件的时候,文件数量很多,使用python可以轻松实现多个文件的读取。

本帖被以下淘专辑推荐:

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2020-4-4 17:08:19 | 显示全部楼层

for i in range (0,61,1):
   #使用os模块将路径和文件名拼接起来
    path_H2O      = os.path.join('D:\Graduation thesis\TES1\H2O',dric_H2O)
    path_HDO      = os.path.join('D:\Graduation thesis\TES1\HDO',dric_HDO)
    print(path_H2O ) #查看一下拼接结果
T)O3GU)E(OND$]DTN_K2%(T.png
   #读取文件
    f_H2O         = h5py.File(path_H2O, 'r')
    f_HDO         = h5py.File(path_HDO, 'r')
  #将每个文件的数据读取存到一个数组里面
    H2O_1[i,:,:,:]= f_H2O.get('HDFEOS/GRIDS/NadirGrid/Data Fields/H2O')
    HDO_1[i,:,:,:]= f_HDO.get('HDFEOS/GRIDS/NadirGrid/Data Fields/HDO')
    lon   = f_H2O.get('HDFEOS/GRIDS/NadirGrid/Data Fields/Longitude')
    lat   = f_H2O.get('HDFEOS/GRIDS/NadirGrid/Data Fields/Latitude')
    lev   = f_H2O.get('HDFEOS/GRIDS/NadirGrid/Data Fields/Pressure')
密码修改失败请联系微信:mofangbao
回复 支持 0 反对 1

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-4 16:58:45 | 显示全部楼层
本帖最后由 cwllsss 于 2020-4-4 17:09 编辑

读取的文件为TES的卫星数据,格式为HDF5
使用的python的库有
import os
import h5py  
import numpy as np
]_VB3MGUMDT53*3BIDHXM.png
ESZ7ET}]9L[EX]Q7`4WGL$4.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-4 17:02:42 | 显示全部楼层
先使用os模块的listdir()获取文件名

#获取某路径下面各个文件名
dric_H2O=os.listdir(r'D:\Graduation thesis\TES1\H2O')
dric_HDO=os.listdir(r'D:\Graduation thesis\TES1\HDO')

#查看一下文件名
for i in range (0,61,1):
    print(dric_H2O[i])
S`]UAK{{KGB@_98VGC@EHMK.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-22 16:08:19 | 显示全部楼层
留爪,谢谢楼主分享
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-10-6 21:45:33 | 显示全部楼层
您好,参考您的方法,我在使用os模块将路径和文件名拼接起来时,报错“TypeError: join() argument must be str or bytes, not 'list'”,但输出里面拼接的内容的type都是str,请问您有遇到过这个问题吗?如果有的话是如何解决的呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-29 17:57:45 | 显示全部楼层
本帖最后由 sunnykeke9997 于 2020-11-29 17:59 编辑
大南瓜 发表于 2020-10-6 21:45
您好,参考您的方法,我在使用os模块将路径和文件名拼接起来时,报错“TypeError: join() argument must be ...

文件名后面加方括号里面是i(不知道为什么打不出来)就好啦~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-12-13 16:12:48 | 显示全部楼层
楼主你好,我在查看拼接结果时,只读出了最后一个文件,请问您有遇到过这个问题吗?如果有的话是如何解决的呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-12-13 16:20:09 | 显示全部楼层
不好意思,我发现是我的print没有缩进,读了外部循环于是只出一个结果
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-12-13 17:49:16 | 显示全部楼层
大概读多久啊这 感觉很慢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表