爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 125|回复: 4

Python处理era5和ncep数据的速度

[复制链接]

新浪微博达人勋

发表于 前天 13:43 | 显示全部楼层 |阅读模式
50金钱
尽管era5的数据水平分辨率是0.25*0.25,而ncep/ncar数据是2*2,但假如我选取了同等大小的数组(如100*90*180),python对era5数据的处理速度要明显慢于ncep数据(比如执行np.array(variable)或执行variable.values),有大佬知道是为什么吗T.T

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

新浪微博达人勋

发表于 前天 14:37 | 显示全部楼层
首先,对dataarray对象取value这个过程不需要计算操作。这里八成是dask array在load
其次,考虑是否是f32与f64的问题。如果对数据精度要求不高,可以考虑转换为f32
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 前天 15:16 | 显示全部楼层
Lancelot 发表于 2024-11-18 14:37
首先,对dataarray对象取value这个过程不需要计算操作。这里八成是dask array在load
其次,考虑是否是f32 ...

嗯嗯是的,我感觉可能是碍于ram太小了,astype改成float32还是慢,现在我是选择分块运行慢慢来了,要不然.load()还会提示"Memory error"
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 昨天 10:40 | 显示全部楼层
GXYYYYY 发表于 2024-11-18 15:16
嗯嗯是的,我感觉可能是碍于ram太小了,astype改成float32还是慢,现在我是选择分块运行慢慢来了,要不然 ...

dask分块就是适合小内存的,你做任何从dask array转换的操作都是浪费时间和内存,建议看一下dask是怎么写的
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 昨天 11:01 | 显示全部楼层
Lancelot 发表于 2024-11-19 10:40
dask分块就是适合小内存的,你做任何从dask array转换的操作都是浪费时间和内存,建议看一下dask是怎么写 ...

好的我再看看 感谢~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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