爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6449|回复: 13

[程序设计] matlab 关于ncread读取多个变量时出现错误

[复制链接]

新浪微博达人勋

发表于 2017-6-12 09:55:02 | 显示全部楼层 |阅读模式

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

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

x
请问有人在用ncread的时候碰到过这样的问题么,读取同一个source的不同变量时 ,第一个变量是可读取的,读取第二个的时候就会报错
而且,在调换读取顺序后依然是第二个不能读取

                               
登录/注册后可看大图

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

新浪微博达人勋

 楼主| 发表于 2017-6-12 09:56:24 | 显示全部楼层
报错像这样
QQ图片20170612100409.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-12 10:19:30 | 显示全部楼层
不错,有收获。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-12 12:40:29 | 显示全部楼层
没遇到过,但觉着lz可以试着用底层函数来应急处理一下,lz如果把相关读取语句也列出来会更好一下,我猜可能和文件的打开、关闭有关系

可以用netcdf里面的底层函数,比如
netcdf.open()
netcdf.close()
……
具体查看帮助
而且我个人觉着如果单个文件需要读取多个变量,这样也更靠谱一些
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-6-13 17:53:22 | 显示全部楼层
weinihou 发表于 2017-6-12 12:40
没遇到过,但觉着lz可以试着用底层函数来应急处理一下,lz如果把相关读取语句也列出来会更好一下,我猜可能 ...

谢谢!
程序是这样写的。

%%计算密度,保存为每天的密度场,并以时间命名
clear
clc
fn='H:\BlackSea\2_Model\BS24\v3_2_R30_c5_sco\ff_2006_NCEP_masked\R30_v5c_1d_20060101_20061231_grid_T.nc';
pr=ncread(fn,'deptht');
temp=ncread(fn,'votemper');
sal=ncread(fn,'vosaline');
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-6-13 17:54:04 | 显示全部楼层
weinihou 发表于 2017-6-12 12:40
没遇到过,但觉着lz可以试着用底层函数来应急处理一下,lz如果把相关读取语句也列出来会更好一下,我猜可能 ...

好像是和clear有关,具体怎样还是没弄清楚
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-6-13 17:58:09 | 显示全部楼层
Error using ncread (line 162)
NCREAD: ncvarget - error while reading: vosaline

Error in make_dens (line 7)
sal=ncread(fn,'vosaline');
   因为之前用着可以,现在出现这样的问题,感觉很奇怪
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2017-6-13 18:33:40 | 显示全部楼层
看看ncdisp的结果
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-6-13 19:03:21 | 显示全部楼层

谢谢! ncdisp之后这样的

>> ncdisp('R30_v5c_1d_20060101_20061231_grid_T.nc')
Source:
           H:\BlackSea\2_Model\BS24\v3_2_R30_c5_sco\ff_2006_NCEP_masked\R30_v5c_1d_20060101_20061231_grid_T.nc
Format:
           64bit
Global Attributes:
           Conventions = 'CF-1.1'
           production  = 'An IPSL model'
           TimeStamp   = '2013-MAY-27 08:51:36 GMT+0100'
Dimensions:
           x            = 340
           y            = 138
           deptht       = 33
           time_counter = 365   (UNLIMITED)
           tbnds        = 2
Variables:
    nav_lon         
           Size:       340x138
           Dimensions: x,y
           Datatype:   single
           Attributes:
                       standard_name = 'longitude'
                       units         = 'degrees_east'
                       valid_min     = 27.6667
                       valid_max     = 28.9167
                       long_name     = 'Longitude'
                       nav_model     = 'Default grid'
    nav_lat         
           Size:       340x138
           Dimensions: x,y
           Datatype:   single
           Attributes:
                       standard_name = 'latitude'
                       units         = 'degrees_north'
                       valid_min     = 40.8333
                       valid_max     = 42.0417
                       long_name     = 'Latitude'
                       nav_model     = 'Default grid'
    deptht           
           Size:       33x1
           Dimensions: deptht
           Datatype:   single
           Attributes:
                       axis          = 'Z'
                       standard_name = 'model_level_number'
                       units         = 'm'
                       positive      = 'down'
                       valid_min     = 0.66668
                       valid_max     = 1648.8523
                       title         = 'deptht'
                       long_name     = 'Vertical T levels'
    time_counter     
           Size:       365x1
           Dimensions: time_counter
           Datatype:   double
           Attributes:
                       axis          = 'T'
                       standard_name = 'time'
                       units         = 'seconds since 2006-01-01 00:00:00'
                       calendar      = 'noleap'
                       title         = 'Time'
                       long_name     = 'Time axis'
                       time_origin   = ' 2006-JAN-01 00:00:00'
                       bounds        = 'time_counter_bnds'
    time_counter_bnds
           Size:       2x365
           Dimensions: tbnds,time_counter
           Datatype:   double
    votemper         
           Size:       340x138x33x365
           Dimensions: x,y,deptht,time_counter
           Datatype:   single
           Attributes:
                       units              = 'C'
                       standard_name      = 'Temperature'
                       _FillValue         = 9.969209968386869e+36
                       long_name          = 'Temperature'
                       online_operation   = 'ave(x)'
                       interval_operation = 100
                       interval_write     = 86400
                       coordinates        = 'time_counter deptht nav_lat nav_lon'
    vosaline         
           Size:       340x138x33x365
           Dimensions: x,y,deptht,time_counter
           Datatype:   single
           Attributes:
                       units              = 'PSU'
                       standard_name      = 'Salinity'
                       _FillValue         = 9.969209968386869e+36
                       long_name          = 'Salinity'
                       online_operation   = 'ave(x)'
                       interval_operation = 100
                       interval_write     = 86400
                       coordinates        = 'time_counter deptht nav_lat nav_lon'
    sosstsst         
           Size:       340x138x365
           Dimensions: x,y,time_counter
           Datatype:   single
           Attributes:
                       units              = 'C'
                       standard_name      = 'Sea Surface temperature'
                       _FillValue         = 9.969209968386869e+36
                       long_name          = 'Sea Surface temperature'
                       online_operation   = 'ave(x)'
                       interval_operation = 100
                       interval_write     = 86400
                       coordinates        = 'time_counter nav_lat nav_lon'
    sosaline         
           Size:       340x138x365
           Dimensions: x,y,time_counter
           Datatype:   single
           Attributes:
                       units              = 'PSU'
                       standard_name      = 'Sea Surface Salinity'
                       _FillValue         = 9.969209968386869e+36
                       long_name          = 'Sea Surface Salinity'
                       online_operation   = 'ave(x)'
                       interval_operation = 100
                       interval_write     = 86400
                       coordinates        = 'time_counter nav_lat nav_lon'
    sossheig         
           Size:       340x138x365
           Dimensions: x,y,time_counter
           Datatype:   single
           Attributes:
                       units              = 'm'
                       standard_name      = 'Sea Surface Height'
                       _FillValue         = 9.969209968386869e+36
                       long_name          = 'Sea Surface Height'
                       online_operation   = 'ave(x)'
                       interval_operation = 100
                       interval_write     = 86400
                       coordinates        = 'time_counter nav_lat nav_lon'
    sohefldo         
           Size:       340x138x365
           Dimensions: x,y,time_counter
           Datatype:   single
           Attributes:
                       units              = 'W/m2'
                       standard_name      = 'Net Downward Heat Flux'
                       _FillValue         = 9.969209968386869e+36
                       long_name          = 'Net Downward Heat Flux'
                       online_operation   = 'ave(x)'
                       interval_operation = 100
                       interval_write     = 86400
                       coordinates        = 'time_counter nav_lat nav_lon'
    soshfldo         
           Size:       340x138x365
           Dimensions: x,y,time_counter
           Datatype:   single
           Attributes:
                       units              = 'W/m2'
                       standard_name      = 'Shortwave Radiation'
                       _FillValue         = 9.969209968386869e+36
                       long_name          = 'Shortwave Radiation'
                       online_operation   = 'ave(x)'
                       interval_operation = 100
                       interval_write     = 86400
                       coordinates        = 'time_counter nav_lat nav_lon'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-6-13 19:06:40 | 显示全部楼层
我读取了其中的 deptht votemper vosaline
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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