爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 90241|回复: 128

[讨论] MATLAB 读取NC数据的命令

  [复制链接]

新浪微博达人勋

发表于 2011-9-28 20:27:10 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 rainwrc 于 2012-2-20 16:12 编辑

关于natcdf插件在MATLAB2008a,vista系统的安装   需要用到这个插件就在网上搜索了一下,找到不少说明:
http://yjxstsp2.blog.163.com/blog/static/50506739200811251553650/
这个姐姐的地方的说明是很详细的,很有用处的,我在这在转贴一下:

转自WZY的BLOG
【经本人亲自测试,该方法同样适合用于VISTA系统】

       首先从mexnc(http://mexcdf.sourceforge.net/index.html下载适合你的matlab版本的mexnc和netcdf_toolbox压缩包。我使用的是mexnc-2.0.31-2.R2008a.tar和netcdf_toolbox-1.0.12。
将上面两个压缩包解压,为方便管理,解压至matlab的toolbox目录下,生成两个文件夹mexnc和netcdf_toolbox;run matlab→file→set path→add folders(或者add with subfolders)→选中toolbox下的mexnc,并且将mexnc/win32下的netcdf.dll 拷贝至C:\WINDOWS\system32,重启电脑。
然后,run matlab→file→set path→add folders,将
.../toolbox/netcdf_toolbox;
.../toolbox/netcdf_toolbox/netcdf;
.../toolbox/netcdf_toolbox/netcdf/nctype;   
.../toolbox/netcdf_toolbox/netcdf/ncutility
分别添加至matlab搜索路径。至此,安装完成,恭喜
若安装成功,在matlab的command window中输入ncbrowser,将弹出NetCDF toolbox的窗口,选中你要打开的nc文件,list至command window或extract至workspace。
ncdump('filename.nc')可以用于查看nc文件中所有变量的信息。
对于批量文件,以下提供循环读取nc文件的方法。
file_stru=dir('the/path/of/the/data');
file_stru.name%查看你要读取的文件的编号。file_stru(1).name和file_stru(2).name在window下分别为.和..
for n=mm:nn% 循环读取数据
         filename=strcat('the/path/of/the/data/',file_stru(n).name)
         f=netcdf(filename,'nowrite');
          m=n-mm+1;
          var(m,:,:,:)=f{'var'}(:);%数据操作,将所有nc文件中的变量var存储为一个matlab变量var(如果nc中的var是一个三维数组,那么得到的workspace中的var就为一个四维数组)
         close(f)
    end
批量处理nc文件可参考(http://www.x5dj.com/Blog/00793960/00376006.shtml






上述工作结束之后,下载工具'netcdfAll-4.2.jar(附件太大,没上传,google一下,估计就能找到)',输入命令:
unzip('mexcdf.r3701.zip')  
    addpath ([pwd '/mexcdf/mexnc']);
    addpath ([pwd '/mexcdf/snctools']);
    javaaddpath([pwd '/netcdfAll-4.2.jar']);
    setpref('SNCTOOLS','USE_MEXNC',false);
检测安装
cd mexcdf/snctools/tests
test_snctools
安装(这个时候估计要调整那个目录了吧?)
    unzip('mexcdf.r3701.zip')  
    unzip('netcdfAll-4.2.jar')  
    unzip('mexnc.R2008a.r2691.zip')  
    addpath ([pwd '/mexcdf/mexnc']);
    addpath ([pwd '/mexcdf/snctools']);
    javaaddpath([pwd '/netcdfAll-4.2.jar']);
    setpref('SNCTOOLS','USE_MEXNC',true);
检测安装
    cd mexcdf/snctools/tests
    test_snctools
    cd ../../mexnc/tests
    test_mexnc
安装成功以后,输入命令
    javaaddpath ( '/netcdfAll-4.2.jar' ) ;
    setpref ( 'SNCTOOLS', 'USE_JAVA', true );
我有文件名为A.nc,使用如下命令
    ncload('F:\A.nc')  打开了我的nc文件,可以看到变量,包括了维数,经纬度等变量列表。现以变量pr为例说明
  输入命令pr
显示变量pr数据,可以看到全部的pr数据。
已知数据格式如下,第一列表示时间,第二列表示经度,第三列表示维度
输入
x= pr(:,2,3)
save x.xls x -ascii
则导出数据:“:”表示时间,“2”表示经度的第二个格点,“3”表示纬度的第三个格点

据说2010b更简单,有需要的同学可以研究一下,只要一个插件,
输入ncload('F:\A.nc')  打开了我的nc文件,可以看到变量

输入pr
显示变量pr数据

输入
x= pr(:,1,2,3)
save x.xls x -ascii
则导出数据

netcdf_toolbox-1.0.12.zip

879.97 KB, 下载次数: 289, 下载积分: 金钱 -5

工具

mexnc-2.0.31-2.R2008a.tar.gz

934.51 KB, 下载次数: 216, 下载积分: 金钱 -5

工具

mexcdf.r3701.zip

422.99 KB, 下载次数: 142, 下载积分: 金钱 -5

工具

mexnc.R2008a.r2691.zip

785.03 KB, 下载次数: 87, 下载积分: 金钱 -5

评分

参与人数 6金钱 +47 贡献 +11 收起 理由
最后一个匈奴 + 2 很给力!
小虫小虫 + 5 赞一个!
Aires + 8 + 1 赞一个!
言深深 + 10 + 2 前两天群里说上帖子,这会儿还真给上了,给.
mofangbao + 10 + 5 很给力!
传说中的谁 + 12 + 3 很好的教程

查看全部评分

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

新浪微博达人勋

发表于 2011-10-5 11:34:32 | 显示全部楼层
很好,不过我的是2011的,不知道怎么读取
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-9-28 20:36:28 | 显示全部楼层

回帖奖励 +1 金钱

感谢烟雨同学的无私奉献,码这东西花了不少时间吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-9-28 21:07:14 | 显示全部楼层
手机虽然没法评分但是可以顶贴,楼主编辑不容易,分享精神更是可赞!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-9-28 23:33:25 | 显示全部楼层
不容易,要搞好一会的,感谢分享!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-9-29 00:22:25 | 显示全部楼层
这个分享的挺好的,mexcdf貌似只有matlab2010可以用吧。还是先熟悉熟悉netcdf吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-9-29 08:17:17 | 显示全部楼层
感谢~以前也有人问过matlab2010用ncep的问题,这是个很好的参考了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-9-29 10:02:22 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-9-29 11:32:34 | 显示全部楼层
我的是R2009b,系统是Win7,跟楼主的教程还有些差别的东西
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-9-29 16:11:59 | 显示全部楼层
artmunich 发表于 2011-9-29 11:32
我的是R2009b,系统是Win7,跟楼主的教程还有些差别的东西

开始我用R2010a,后来发现不行,2008a的比较好,就到电驴下了2008a,建议你升级2010b吧,摸索一下就可以了,只要一个插件。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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