爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4928|回复: 9

[程序设计] matlab处理hadisst的nc资料

[复制链接]

新浪微博达人勋

发表于 2015-5-6 15:26:41 | 显示全部楼层 |阅读模式

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

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

x
hadisst资料的特点是:除了陆地-1e30的填充值外,在北极附近有额外的-1000的填充值。但是netcdf只允许写一个填充值,因此拿grads默认设置画图不能自动识别-1000这个填充值。所以不能直接画图正确的图。
解决的方法有如下:
1、使用grads的gs脚本人为指定等值线等级画图,毕竟sst的变化范围是很有限的
2、用grads将这个数据转成binary(.grd),在相应的ctl 直接设置undef为1.0e+30
3、使用matlab、IDL等高级的解释型语言读取与处理数据
对于这种摸不清底细的netcdf数据,与其用grads+fortran处理,不如直接用matlab或IDL这样高级一点的解释型语言处理,所以在此分享一个处理hadisst的小程序以供大家参考,目前尚在研究中,贴上附图。

clc
clear all

fn1='d:\ts\1.nc';

%将文件基本信息显示在控制台
ncdisp(fn1)

fid=netcdf.open(fn1,'NOWRITE');
sst=netcdf.getVar(fid,4);%读取4号变量,即sst

lon=netcdf.getVar(fid,2);
netcdf.close(fid);

%截取所需的数据段
sst2=sst(181:360,:,937:1728);
sst2(sst2==-1000)=-1.0e+30;  %将-1000改成-1e30填充值

%南北翻转
for t=1:792
  sstp=sst2(:,:,t);
  sstp=fliplr(sstp);
  sst2(:,:,t)=sstp(:,:);  
end

%输出处理后的数据
fid=fopen('d:\ts\pick.dat','wb');
fwrite(fid,sst2,'single');
fclose(fid)

%抽一个时次画图
figure
sst3=sst2(:,:,100);
sst3(sst3<=-1e30)=nan;
sst3=sst3';
%sst3=flipud(sst3);
contourf(sst3)
t=100.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2015-5-6 15:32:17 | 显示全部楼层
现在新版matlab 已经有ncread函数了 ,不需要netcdf工具箱了。楼主该更新了!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-5-6 17:07:59 | 显示全部楼层
二爷名声在外 发表于 2015-5-6 15:32
现在新版matlab 已经有ncread函数了 ,不需要netcdf工具箱了。楼主该更新了!

嗯嗯,谢谢大神指点,我也是刚刚接触matlab,么么哒
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-6 17:17:37 | 显示全部楼层
还是支持一下,感谢分享的人
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-9 23:21:30 | 显示全部楼层
-1000代表什么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-5-13 12:45:31 | 显示全部楼层

是北极附近的缺测值
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-10 17:14:45 | 显示全部楼层
{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-4-11 19:28:14 | 显示全部楼层
为什么要南北翻转呢?若是用GrADS画图是不是就不用翻转了呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-11 10:24:21 | 显示全部楼层
目前也在看这个东西
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-11 10:26:43 | 显示全部楼层
做一个项目要理解这些东西,哎有点蛋痛,谢谢楼主分享,如果有机会能沟通下就好了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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