爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: kongfeng0824

[源程序] 【原创+整合版】matlab批量读取nc文件

  [复制链接]

新浪微博达人勋

发表于 2014-10-23 18:41:22 | 显示全部楼层
感激万分,谢谢分享!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-10-9 09:24:07 | 显示全部楼层
vendya 发表于 2014-9-30 23:19
楼主,请问,matlab读取nc数据的时候是怎么存储的?行是经度,列是维度吗?当我用ncread 读取出数据的时候 ...

需要对数据转置
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-8 20:03:08 | 显示全部楼层
谢谢楼主分享,解决一个大难题啊,哈哈哈
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-30 23:19:34 | 显示全部楼层
楼主,请问,matlab读取nc数据的时候是怎么存储的?行是经度,列是维度吗?当我用ncread 读取出数据的时候,画出数据的时候,发现数据是倒着的,我的代码如下,不知可否帮忙看一下? 谢谢!
%define region
%%read lat and lon
lat=ncread('/Users/yhe/Documents/BMB/tasmax_day_CESM1-CAM5_rcp85_r1i1p1_20060101-20401231.nc','lat');
lon=ncread('/Users/yhe/Documents/BMB/tasmax_day_CESM1-CAM5_rcp85_r1i1p1_20060101-20401231.nc','lon');
%time=ncread('/Users/yhe/Documents/BMB/tasmax_day_CESM1-CAM5_rcp85_r1i1p1_20060101-20401231.nc','time');
%%find the id for region
i=find(lon>=277&lon<=283);
j=find(lat>=37&lat<=41);
%%read data for region
tasmax_wv=ncread('/Users/yhe/Documents/BMB/tasmax_day_CESM1-CAM5_rcp85_r1i1p1_20060101-20401231.nc','tasmax',[i(1),j(1),1],[i(end)-i(1)+1,j(end)-j(1)+1,365]);
%%display the map
latlim = [lat(j(1)) lat(j(end))];
lonlim = [lon(i(1))-360 lon(i(end))-360];
ax=usamap(latlim,lonlim);         
setm(gca,'MapProjection','lambert')
hold on
%Contour
[c,h]=contourfm(lat(j),lon(i),tasmax_wv(:,:,1));
clabelm(c,h)
%colorbar
getm(ax)
conus=load('conus')
plotm(conus.statelat,conus.statelon,'k')
alpha(0)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-24 17:05:29 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-23 09:16:10 | 显示全部楼层
楼主大神,支持
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-13 15:48:38 | 显示全部楼层
楼主,为什么我在执行第二条命令时就出错了呢?就是ncdisp('precip.mon.1981-2010.ltm.nc');这一条
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-30 21:09:02 | 显示全部楼层
好东西!谢谢楼主分享!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-30 10:32:37 | 显示全部楼层
正好今天在学习nc文件,好东西~~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-18 12:17:57 | 显示全部楼层
一水天下 发表于 2014-8-17 13:40
先看下precip是几维的,然后在读取的时候增加一维s,PrecipData(:,:,:,s) = ncread(filename,'precip');
...

正解,多谢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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