爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 14052|回复: 2

[讨论] 求助!matlab读取grib2数据出错

[复制链接]

新浪微博达人勋

发表于 2021-9-15 15:20:32 | 显示全部楼层 |阅读模式

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

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

x
matlab  r2020a
nctoolbox  20120109
java    'Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode'

按照《使用说明》中的操作还是出错

除了数据读取错误,《使用说明》中一个不解的地方是psal=ds.data(ds.variables{2})中的2是什么意思?怎么确定里面的数字该填什么。

代码:%%  读取ncep数据
clear;clc;
addpath('G:\nctoolbox');
savepath;
setup_nctoolbox;
userpath('G:\NCEP');
filepath='wnd10m.cdas1.201104.grb2';
nc=ncgeodataset(filepath);
nc.variables
u=nc.geovariable('U-component_of_wind')
% u.axes
% u.attributes
% size(u)
a=nc.data('U-component_of_wind');

错误:
错误使用 ncdataset/readdata (line 467)
Java exception occurred:
java.lang.OutOfMemoryError: Java heap space

出错 ncdataset/data (line 165)
                    d = obj.readdata(variable);

出错 ncgeodataset/subsref (line 630)
                            B = builtin('subsref',obj,g);

出错 处理数据代码(ncep) (line 14)
a=nc.data('U-component_of_wind');


感谢大家的帮助!!!!

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

新浪微博达人勋

 成长值: 32430
发表于 2021-9-15 15:52:55 | 显示全部楼层
1.ds.variables是一个元胞数组,其中每个元素是变量名称,所以ds.variables{2}就是其中第二个变量名称;
2.看楼主发的问题原因可能是JVM的内存不够用了,内存泄露。一是可以把matlab的java heap space提高,二是换个大内存电脑试试。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-9-16 16:06:49 | 显示全部楼层
二爷名声在外 发表于 2021-9-15 15:52
1.ds.variables是一个元胞数组,其中每个元素是变量名称,所以ds.variables{2}就是其中第二个变量名称;
2 ...

感谢感谢!!
是内存的问题,我只读部分数据读取成功了。就是读取得很慢,代码如下,这种问题有解决渠道吗?还是只能那么慢的读取。
u=nc.geovariable('U-component_of_wind');
U=u.data(:,:,lat_in,lon_in);
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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