爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6816|回复: 7

[讨论] 关于Matlab2017b读取GRIB2文件的问题

[复制链接]

新浪微博达人勋

发表于 2017-10-29 10:25:54 | 显示全部楼层 |阅读模式

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

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

x
最近在学习GPU计算相关东西,听闻Matlab2017b可以生成NVIDIA的代码,所以决定将之前的2015b升级一下。
Matlab2017b和Matlab2016、2015、2014等几个版本的Crack文件形式完全不一样了,Matlab2017b只有一个文件为: \MATLAB R2017b Win64 Crack\R2017b\bin\win64\netapi32.dll,安装后,发现没法正常使用nctoolbox和snctools。具体表现如下。
由于nctoolbox和snctools是通过调用NetCDF的java库文件,所以需要在toolbox\local\classpath.txt指定java的路径,nctoolbox和snctools都是2014年之前开发的工具箱,默认使用的netcdf-java是4.2版本,但不能正确识别最近GRIB2格式中一些变量,特别是本人常用的CFSR、GFS、GDAS数据集中部分变量不能识别。为了能够正常读取所有的GRIB2变量,我在Matlab2015b、Matlab2016b的时候都是使用netcdf-java-4.6.9、netcdf-java-4.6.10,但是,但是,但是,切换到Matlab2017b,一起变了,只能使用netcdf-java-4.2才能读取GRIB2文件,4.3、4.4、4.5、4.6的所有版本都试了一遍,都不行。苦逼的是,4.2版本,虽然能读取,可有部分变量不能识别,也就是说读取文件并不正常,用起来也就没什么意义。

请教解决方案。

使用netcdf-java-4.2版本打开GRIB2文件时候,自动生成*.gbx8文件;使用4.6版本的,则自动生成*.gbx9和*.ncx3两个文件。

                               
登录/注册后可看大图


Matlab2017b打开GRIB2文件错误信息如下:
>> fn

fn =

    'f:\gdas2.0p25.2016120100.f00.grb2'
>> q=nc_info(fn)
错误使用 nc_info_java (line 26)
Java exception occurred:
java.io.IOException: java.lang.RuntimeException: java.lang.NoSuchFieldError: userTimeUnit

        at ucar.nc2.NetcdfFile.open(NetcdfFile.java:427)

        at ucar.nc2.NetcdfFile.open(NetcdfFile.java:394)

        at ucar.nc2.NetcdfFile.open(NetcdfFile.java:381)

        at ucar.nc2.NetcdfFile.open(NetcdfFile.java:369)

Caused by: java.lang.RuntimeException: java.lang.NoSuchFieldError: userTimeUnit

        at ucar.nc2.NetcdfFile.<init>(NetcdfFile.java:1596)

        at ucar.nc2.NetcdfFile.open(NetcdfFile.java:835)

        at ucar.nc2.NetcdfFile.open(NetcdfFile.java:424)

        ... 3 more

Caused by: java.lang.NoSuchFieldError: userTimeUnit

        at
    ucar.nc2.grib.collection.Grib2CollectionBuilder$Grib2Rectilyser.make(Grib2CollectionBuilder.java:259)
   
        at ucar.nc2.grib.collection.Grib2CollectionBuilder.makeGroups(Grib2CollectionBuilder.java:163)

        at
    ucar.nc2.grib.collection.GribCollectionBuilder.createMultipleRuntimeCollections(GribCollectionBuilder.java:150)
   
        at ucar.nc2.grib.collection.GribCollectionBuilder.createIndex(GribCollectionBuilder.java:138)

        at ucar.nc2.grib.collection.GribCdmIndex.openGribCollectionFromDataFile(GribCdmIndex.java:780)

        at ucar.nc2.grib.collection.GribCdmIndex.openGribCollectionFromDataFile(GribCdmIndex.java:764)

        at ucar.nc2.grib.collection.GribCdmIndex.openGribCollectionFromRaf(GribCdmIndex.java:734)

        at ucar.nc2.grib.collection.GribIosp.open(GribIosp.java:213)

        at ucar.nc2.NetcdfFile.<init>(NetcdfFile.java:1560)

        ... 5 more


出错 nc_info (line 55)
                fileinfo = nc_info_java(ncfile);
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-11-1 08:32:52 | 显示全部楼层
还没人有同样的问题吗????
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2017-11-1 14:15:22 | 显示全部楼层
已将此问题提供给nctoolbox的github,正在等待解决
https://github.com/nctoolbox/nctoolbox/issues/111
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-11-3 16:51:56 | 显示全部楼层
我一般用read_grib2的包
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-8-5 11:20:53 | 显示全部楼层
二爷名声在外 发表于 2017-11-1 14:15
已将此问题提供给nctoolbox的github,正在等待解决
https://github.com/nctoolbox/nctoolbox/issues/111

请问您有2012那个版本吗,github没有这个版本,上面有的其余所有的版本在2017b中都不可用,会出现这个javapath的问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 成长值: 32430
发表于 2019-8-6 08:44:08 | 显示全部楼层
hhttyy 发表于 2019-8-5 11:20
请问您有2012那个版本吗,github没有这个版本,上面有的其余所有的版本在2017b中都不可用,会出现这个jav ...

有,应该在简单粗暴教程pdf的附件里面
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-6 16:23:57 | 显示全部楼层
二爷名声在外 发表于 2019-8-6 08:44
有,应该在简单粗暴教程pdf的附件里面

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

使用道具 举报

新浪微博达人勋

发表于 2019-8-6 23:20:17 | 显示全部楼层
我也遇到一样问题,请问解决了吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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