爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 470|回复: 2

[参考资料] ERA5新网址NC文件MATLAB处理时闪退的解决方法

[复制链接]

新浪微博达人勋

发表于 2024-9-30 20:00:05 | 显示全部楼层 |阅读模式

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

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

x

众所周知,ERA5在2024.9.28更新了网址,此后数据需要到新的cds-beta网页去下载,而下载的nc4文件可以用panoply打开查看,但是在使用MATLAB自带的“ncdisp”命令查看时会莫名其妙闪退,本人也被折磨了好几天,基本网上有的方法都试了,目前有一些见解,放上来和大家一起探讨。


——————————————————


首先,经过反复测试,发现引起这个问题的原因是下载的nc文件里有一个名为“expver”的变量,导致“ncdisp”和“ncread expver”的时候都会出错


其次,这个expver变量是什么?详细查询以前的帖子,发现是用来区分ERA5和ERA5T的。官网给出了说明,因为各个数据来源需要同化等处理,所以在“当前时刻”的前三个月的数据是ERA5T(实验),再之前的是ERA5。

以下是翻译:假设现在是2020.02.15,那么1979.01.01-2019.11.30的数据是ERA5,2019.12.01-2020.02.10的数据是ERA5T。如果你请求的时间包含了混合来源,下载的nc文件里就会有一个expver变量表示数据来源,1代表ERA5,5代表ERA5T。


                               
登录/注册后可看大图

详见:https://bbs.06climate.com/forum. ... p;extra=&page=1

最后,到这里为止,解决的办法是:避免下近三个月的数据;如果实在要就分两个时间段下,这样就不会出现expver变量;如果实在下了混合数据,用python中xarray处理合并一下就行。


——————————————————

!!!但是,但是!这是没更新前的方法,现在不行了!!!

现在更新后好像下什么时段的数据都有expver这个变量,比如我自己下的23年的数据,用了下面说的方法读出来expver都=1……真是蚌埠住了,害人不浅。





nctoolbox.rar

14.97 MB, 下载次数: 1, 下载积分: 金钱 -5

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

新浪微博达人勋

 楼主| 发表于 2024-9-30 20:05:17 | 显示全部楼层

本人的心路历程:






1.向官网发邮件求助,告知建议我使用NCL或CDO处理下载的nc文件。不想学,放弃了;


2.投机取巧,想下grib格式数据转成nc格式。

结果发现WGRIB2可以实现grib2转nc,但WGRIB不可以grib转nc。接着尝试使用python中xarray函数转换,失败,因为更新前expver是int变量,更新后是char变量。如果有会的人能把python的程序改一下就好了,代码如下,看着就几行但要装一堆的环境和包,具体的步骤可以和我交流。







import xarray as xr
ERA5 = xr.open_mfdataset('era5.tp.20200801.nc',combine='by_coords')
ERA5_combine =ERA5.sel(expver=1).combine_first(ERA5.sel(expver=5))
ERA5_combine.load()
ERA5_combine.to_netcdf("era5.tp.20200801.copy.nc")




3.用一个叫nctoolbox的MATLAB工具包可以实现在MATLAB中读取nc文件信息和变量,具体的语句如下。原理是什么我也不知道,这个还是误打误撞发现的方法,因为据说这个包能处理grib文件,但是事实证明不能,因为这个工具包需要的java环境只适配某一个MATLAB版本……


工具包我放在附件里了,当然网上也到处都有,解压到MATLAB工具包路径或者自己添加预设路径,而且每次用之前还得再声明一次:setup_nctoolbox(什么鬼设计,添加路径了还要这样)这个nctoolbox用的是真不习惯,如果下的不是混合数据,其实可以直接用panoply读变量有哪些,用ncread读自己要的就行。





——————————————————

由于我用不到近3个月的数据,暂时没试过合并的方法,理论上只要ncread变量的个数和你时间序列对上就行了。








本人版权所有,如果搬运请注明出处。这个论坛回的不是及时,如果有更好方法交流可以+QQ:3201211370,欢迎各位同行批评指正!

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

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2024-9-30 20:11:10 | 显示全部楼层
第一次发,排版比较乱,字数也超了,不得以分了两次发,下载金币是论坛自己设置的,可以用百度云
链接:https: //pan.baidu.com/s/12oII-SGE7yDyewBcHAdkyg?pwd=z94s提取码:z94s
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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