爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5671|回复: 4

[程序设计] Matlab输出dat文件和nc文件GRADS无法试别

[复制链接]

新浪微博达人勋

发表于 2020-7-27 12:39:06 | 显示全部楼层 |阅读模式

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

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

x
小白一个,想要把matlab中.mat格式的模式数据输出成dat文件或者nc文件在GRADS里绘图处理,输出的数组是2.5分辨率144*49的降水场,通过论坛学习了写dat文件和nc文件的代码如下:
dat:
fid=fopen('H:\data\prh.dat','w');
for j=1:49
    for i=1:144
        count=fwrite(fid,prh_trend_1(i,j));
    end
end
for j=1:49
    for i=1:144
        count=fwrite(fid,prg_trend_1(i,j),'double');
    end
end
fclose(fid)
nc:
nccreate('H:\data\pr.nc','prhf','dimensions',{'lon',144,'lat',49},'format','netcdf4_classic');
nccreate('H:\data\pr.nc','praf','dimensions',{'lon',144,'lat',49},'format','netcdf4_classic');
nccreate('H:\data\pr.nc','prgf','dimensions',{'lon',144,'lat',49},'format','netcdf4_classic');
ncwrite('H:\data\pr.nc','prhf',prh_trend_1);
ncwrite('H:\data\pr.nc','praf',pra_trend_1);
ncwrite('H:\data\pr.nc','prgf',prg_trend_1);

其中nc文件出现了SDF file has no discernable X coordinate错误
因此两个数据文件全部使用ctl文件描述

ctl

Dset  h:\data\pr.nc
Undef    -9999
xdef  144  linear  0   2.5
ydef  49  linear  -60   2.5
zdef   1  levels  0
tdef  1  linear  jan1979   1yr
Vars  9
prhf  1  99  please add notes
prgf  1  99  please add notes
praf  1  99  please add notes
prhs  1  99  please add notes
prgs  1  99  please add notes
pras  1  99  please add notes
prht  1  99  please add notes
prgt  1  99  please add notes
prat  1  99  please add notes
Endvars
但是无论是哪一种方式,画出来的图片总是如下
我感觉应该是matlab写数据的时候有问题,但是实在找不出问题所在,请各位大神帮帮孩子吧



使用nc/dat文件画出来的错误图片

使用nc/dat文件画出来的错误图片
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-7-27 14:02:04 | 显示全部楼层
缺测为什么是-9999  ctl里为什么有9个变量
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-27 14:13:48 | 显示全部楼层
wjy_ecnu 发表于 2020-7-27 14:02
缺测为什么是-9999  ctl里为什么有9个变量

是这样的,这个数据我在matlab里边已经看过了,没有缺测值,所以随便设置了一个,然后我想写入的一共9个变量,但是写入过程代码都是一样的,所以我就只放了中间的一段进来
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-27 15:14:22 | 显示全部楼层
像是缺测问题,或者全场一个值了。可以看一下grads命令输入的那个窗口下面的提示,等值线图的话在那边会显示最大值最小值以及间隔的信息,大值能看出数据的某些问题。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-27 21:25:59 | 显示全部楼层
苏拉苏拉 发表于 2020-7-27 15:14
像是缺测问题,或者全场一个值了。可以看一下grads命令输入的那个窗口下面的提示,等值线图的话在那边会显 ...

嗯嗯谢谢啦,我后面把写入时候的‘double’类型改成'float'之后GRADS就能正常出图啦
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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