爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7148|回复: 13

[分享资料] 求助!nc与dat间转换问题

[复制链接]

新浪微博达人勋

发表于 2012-11-14 15:26:23 | 显示全部楼层 |阅读模式

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

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

x
我下了sst数据,是nc的,画出来的图都是正确的,可是因为要处理数据所以转换成dat文件了,结果dat文件里的数据就各种奇葩,无论是Fortran中输出来看还是grads中花出的图都各种奇葩,呜呜,看了论坛上好多帖子也木有解决,从早上搞到现在,要抓狂了,求助!
这是nc直接画出来的图,很正常啊
TM截图未命名1.png

然后是nc的ctl ,我也贴出来了
TM截图未命名.png

然后是我的转换的gs文件,我觉得貌似好像也没错误
TM截图未命名3.png

结果我把dat文件放到fortran里,试着输了一层数据,结果很惊悚
TM截图未命名4.png

然后我不甘心又写了个ctl,把dat文件画了一下,还是很惊悚诶
TM截图未命名5.png

求助各位,我到底哪里出错了捏?



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

新浪微博达人勋

发表于 2012-11-14 16:19:36 | 显示全部楼层
nc文件转换成dat的时候是不是有个算法转换的呀?你查看一下nc资料的说明吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-11-14 16:42:51 | 显示全部楼层

我发现我为什么dat文件画出来的图是错的了,dat的ctl缺省值不应该按照nc原始文件的缺省值-9***e+36那个来写,而应该设为Fortran中读出来的32767,这样设置之后画出来的图和nc的图就一样了

下面是我用转换好的dat画出来的图,和nc是一样的
1.png

但是我又有新的问题
在Fortran中读取dat文件的时候缺省值都表示为32767,本来以为我只提取太平洋海域的数据会没事,结果发现还是有很多缺省值,我估计可能是岛屿吧。  求问各位,这个缺省值应该怎么处理呢?比如我要根据sst计算enso指数的话,怎么办呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-11-14 16:51:25 | 显示全部楼层
查找一下enso的算法,看看到底用的什么数据···根据缺省的数据自己做一个mask文件,用0-1标记,这样只算需要的就可以了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-11-14 19:20:29 | 显示全部楼层

咦,不懂诶~算enso大致是直接选取nino3.4区域(170W-120W,5S-5N)的海温格点数据做个平均并标准化得到的,不需要用到mask啊~而且缺省值的分布很不规则,只有零星几个点会有缺省值。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-11-14 20:02:40 | 显示全部楼层
本帖最后由 river 于 2012-11-14 20:03 编辑
wssummer 发表于 2012-11-14 19:20
咦,不懂诶~算enso大致是直接选取nino3.4区域(170W-120W,5S-5N)的海温格点数据做个平均并标准化得到的 ...

你画出来的最后一张图,一看就是缺测值设置有问题,不过还好你已经发现了。接下来计算的过程,你自己都说了是选取nino3.4区的资料求标准化得到,那就选取那的资料直接计算就行了,那个区域好像没有缺测值。即使有的话,你也说是对每个格点做标准化,那缺测值的格点做完标准化的值还是相当于缺测值啊,因为每个缺测值的格点计算完的值还是一样的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-11-14 21:09:47 | 显示全部楼层
wssummer 发表于 2012-11-14 19:20
咦,不懂诶~算enso大致是直接选取nino3.4区域(170W-120W,5S-5N)的海温格点数据做个平均并标准化得到的 ...

6#的说法是靠谱的,我的意思自己建一张mask文件,这样可以将你数据中的缺省剔除掉,用剩下来的数据计算,是完全可以的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-11-15 00:44:44 | 显示全部楼层
言深深 发表于 2012-11-14 16:51
查找一下enso的算法,看看到底用的什么数据···根据缺省的数据自己做一个mask文件,用0-1标记,这样只算需 ...

这个做法是最靠谱的!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-11-15 12:34:36 | 显示全部楼层
言深深 发表于 2012-11-14 21:09
6#的说法是靠谱的,我的意思自己建一张mask文件,这样可以将你数据中的缺省剔除掉,用剩下来的数据计算, ...

我找到错误原因了,我把fortran读取dat文件的格式binary改为formatted,太平洋地区海温就不会有缺省值了,不知道为什么,可能数据量大的时候不能用binary吧?不然读取数据会出错
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-11-15 12:55:14 | 显示全部楼层
wssummer 发表于 2012-11-15 12:34
我找到错误原因了,我把fortran读取dat文件的格式binary改为formatted,太平洋地区海温就不会有缺省值了, ...

添加recl应该也是ok吧,具体不妨参考一下http://bbs.06climate.com/forum.php?mod=viewthread&tid=10848如果你还感兴趣的话,呵呵
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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