爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: MeteoInfo

MeteoInfoLab脚本示例:同时加载多个文件

[复制链接]

新浪微博达人勋

发表于 2018-3-30 15:06:26 | 显示全部楼层
MeteoInfo 发表于 2018-3-30 14:17
同时加载太多文件读取大数组可能会存在内存问题,建议尽量用循环。Python的语法,可以度娘去查。

王老师我照您说的循环处理了,内存感觉还是不太行,具体代码我贴到这里了
http://bbs.06climate.com/forum.p ... mp;extra=#pid890777
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-5-28 19:53:33 | 显示全部楼层
弱弱的问下王老师,这个脚本是用python写的吗? 能不能吧v = fs['v-component_of_wind_tropopause']
的用途和data = v[:,:,:] 的具体意义介绍下,数据的顺序,是否为data = v[level,lon,lat]?如果读取某一年.nc的年数据,又该如何处理?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-5-28 23:11:48 | 显示全部楼层
213de88 发表于 2018-5-28 19:53
弱弱的问下王老师,这个脚本是用python写的吗? 能不能吧v = fs['v-component_of_wind_tropopause']
的用 ...

参考这里:http://www.meteothinker.com/docs ... /data_tutorial.html
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-2-29 16:14:45 | 显示全部楼层
本帖最后由 tobewealthy 于 2020-2-29 16:16 编辑

王老师您好,我想利用循环读取modis的月数据文件,但是modis数据的时间命名格式是每年的第多少天,比如2008001,20080032,20080060而不是年月日,而且每个月的天数不同,这时候datatime的语句要怎么写呢?是按月份加31,30这样循环吗  老师帮忙给个大概就好,谢谢老师
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-2-29 20:29:30 | 显示全部楼层
tobewealthy 发表于 2020-2-29 16:14
王老师您好,我想利用循环读取modis的月数据文件,但是modis数据的时间命名格式是每年的第多少天,比如2008 ...

Python的语法,自己在网上搜吧
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-1 09:06:09 | 显示全部楼层
MeteoInfo 发表于 2020-2-29 20:29
Python的语法,自己在网上搜吧

好的  感谢老师回复!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-6-11 11:11:09 | 显示全部楼层
王老师,我读取grib2的FNL数据,准备得到某一格点的HPBL,程序如下:
datadir = 'D:/Temp'
st = datetime.datetime(2019,3,1,0)
et = datetime.datetime(2019,3,1,18)
fns = []
while st <= et:
    fn = os.path.join(datadir, 'fnl_' + st.strftime('%Y%m%d_%H') + '_00.grib2')
    print fn
    fns.append(fn)
    st = st + datetime.timedelta(hours=6)

fs = addfiles(fns)

#读取北纬35度,东经117度的数据
pblh = fs['Planetary_Boundary_Layer_Height_surface'][:,'35','117']

错误提示如下:
Traceback (most recent call last):
  File "<string>", line 15, in <module>
  File "D:\ProgramData\MeteoInfo_2.2\MeteoInfo\pylib\mipylib\dataset\dimvariable.py", line 624, in __getitem__
    aa.addtdim(self.dataset.gettime(si))
AttributeError: 'float' object has no attribute 'addtdim'


请问王老师,应该如何修改?


密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-6-11 13:44:58 | 显示全部楼层
guo066600 发表于 2020-6-11 11:11
王老师,我读取grib2的FNL数据,准备得到某一格点的HPBL,程序如下:
datadir = 'D:/Temp'
st = datetime ...

是一个bug,目前可以先提取2维数组,然后再从2维数组中提取一维数组。

pblh = fs['Planetary_Boundary_Layer_Height_surface'][:,'35',:]
pblh = pblh[:,'117']

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-6-11 16:21:58 | 显示全部楼层
王老师,按照您提示后修改代码如下:
pblh = fs['Planetary_Boundary_Layer_Height_surface'][:,'35',:]
pblh = pblh[:,'117']

npblh = mean(pblh, axis=0)
我在控制台输入npblh后,提示
Console internal error: cannot output ...

请问这些读取出的pblh怎样输出各自的数值和平均值?如果在控制台不能输出的话,能提供一个可以用MI将读出的数据写入csv文件的网址吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-6-11 21:20:27 | 显示全部楼层
guo066600 发表于 2020-6-11 16:21
王老师,按照您提示后修改代码如下:
pblh = fs['Planetary_Boundary_Layer_Height_surface'][:,'35',:]
...

npblh = mean(pblh, axis=0)       改为:
npblh = mean(pblh)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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