爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 356761|回复: 825

【免费派送】“SDF file has no discernable X coordinate” 问题详解

  [复制链接]

新浪微博达人勋

 成长值: 19710
发表于 2012-2-26 13:10:25 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 兰溪之水 于 2012-3-18 14:51 编辑

关于用GrADS命令”sdfopen” 打开 .nc 文件出现的“SDF file has no discernable X coordinate” 问题详解
                兰溪之水     2012-02-26
首先看看王老师的帖子:
关于netCDF格式数据
netCDF数据格式在气象中有广泛的应用,这种格式有一定的复杂性。作为数据的使用者可以不用对数据格式了解得很详细,不过大致的了解还是有必要的。netCDF是自描述的二进制数据格式,也就是说数据本身包含了相关的数据信息。经典的netCDF格式是由维(dimensions)、全局属性(global attribute)和变量(variations)组成的,netCDF4.0以后开始向HDF格式靠拢。下面是一个简单的netCDF数据的自描述信息。格点气象数据通常是4维,包括空间3维和时间维(x, y, z, t),如果把变量也算作一维也可以认为是5维。netCDF可以有一个无限长度的维(unlimited dimension),通常是时间维。

........
........

例子:
使用ncdump命令查看nc文件:
C:\Documents and Settings\Administrator>ncdump -h D:\evapr_oaflux_2011-original.
nc
netcdf D:\evapr_oaflux_2011-original {
dimensions:
        time = UNLIMITED ; // (7 currently)
        lat = 180 ;
        lon = 360 ;
variables:
        float lon(lon) ;
                lon:long_name = "longitude" ;
                lon:units = "degrees" ;
                lon:range = "0.5 to 359.5" ;
        float lat(lat) ;
                lat:long_name = "latitude" ;
                lat:units = "degrees" ;
                lat:range = "89.5S to 89.5N" ;
        int time(time) ;
                time:units = "month" ;
                time:comment = "Year 2011" ;
        short evapr(time, lat, lon) ;
                evapr:comments = "monthly mean evaporation rate" ;
                evapr:units = "cm/yr" ;
                evapr:scale_factor = 0.1 ;
                evapr:missing_value = 32766. ;
        short err(time, lat, lon) ;
                err:comments = "monthly mean estimated error of evaporation rate
" ;
                err:units = "cm/yr" ;
                err:scale_factor = 0.1 ;
                err:missing_value = 32766. ;
// global attributes:
                :creation_date = "Oct 2011" ;
                :description = "WHOI Objectively Analyzed air-sea Fluxes (OAFlux
) Project" ;
                :project_PIs = "Lisan Yu, Bob Weller" ;
                :website = "http://oaflux.whoi.edu" ;
}
我们从上面的变量单位可以看出这个evapr_oaflux_2011-original.nc文件并不符合COARDS约定。
我们试画一张图看效果:
..................
.....................
当然我们也可以使用open打开文件,但此时要写的ctl文件则需很详细,比如要加ZDEF之类的,这里就不详细了,有兴趣的可以自己试试!
此外,我们对这类的nc文件的处理
。。。。。。。。
。。。。。。。。
运行后 我看查看生成的文件:
netcdf evapr_oaflux_2011 {
dimensions:
         time = UNLIMITED ; // (7 currently)
         lat = 180 ;
         lon = 360 ;
variables:
         float lon(lon) ;
                   lon:long_name = "longitude" ;
                   lon:units = "degrees_east" ;
                   lon:range = "0.5 to 359.5" ;
         float lat(lat) ;
                   lat:long_name = "latitude" ;
                   lat:units = "degrees_north" ;
                   lat:range = "89.5S to 89.5N" ;
         int time(time) ;
                   time:units = "months since 2011-01-01 00:00:0.0" ;
                   time:comment = "Year 2011" ;
                   time:delta_t = "0000-01-00 00:00:00" ;
                   time:actual_range = "0., 6." ;
         short evapr(time, lat, lon) ;
                   evapr:comments = "monthly mean evaporation rate" ;
                   evapr:units = "cm/yr" ;
                   evapr:scale_factor = 0.1 ;
                   evapr:missing_value = 32766. ;
                   evapr:_FillValue = -32767s ;
         short err(time, lat, lon) ;
                   err:comments = "monthly mean estimated error of evaporation rate" ;
                   err:units = "cm/yr" ;
                   err:scale_factor = 0.1 ;
                   err:missing_value = 32766. ;
// global attributes:
                   :creation_date = "Oct 2011" ;
                   :description = "WHOI Objectively Analyzed air-sea Fluxes (OAFlux) Project" ;
                   :project_PIs = "Lisan Yu, Bob Weller" ;
                   :website = "http://oaflux.whoi.edu" ;
这样之后,我们就可以用GrADSsdfopen命令打开此nc文件了:
上图看看效果:
。。。。。。。。。。
。。。。。。。。。。
跟第一张图一模一样的吧!!!
当然,当然,还有个最笨的办法:
就是用fortran等程序读入nc文件的数据再写出二进制文件,配上ctl即可啦!这里就不详细介绍这种方法了!

。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。



要了解详细内容?????不急,拿$_$来~
{:soso__2956437804989921244_1:}@超级版主 @版主 @管理员
关于用GrADS命令”sdfopen” 打开 .nc 文件出现的“SDF file has no discernable X co.pdf (1.86 MB, 下载次数: 5178)

评分

参与人数 10金钱 +90 贡献 +16 体力 +60 收起 理由
qiu6 + 1 很给力!
玫(上善若水) + 2 很给力!
MortimerZ + 2 很给力!
虎牙犀牛 + 3 赞一个!
xman + 2 赞一个!
黎大页子 + 20 + 2 很给力!
灵杰 + 10 + 2
artmunich + 15 + 3 + 60 老贼~~~
topmad + 15 + 4 不是想给分你,是想叫你早点释放出来....
mofangbao + 20 + 5 其他的贡献自己挣咯

查看全部评分

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

新浪微博达人勋

发表于 2024-9-11 17:13:29 | 显示全部楼层
回复于2024年9月,起因是ERA5资料用CDS-Beta版本下载nc格式后GrADS无法读取。
在楼主发帖的12年后,这个问题依然卡住了我,一个没有勇气抛弃GrADS的人。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2012-2-28 10:48:41 | 显示全部楼层
真是需要的东西,感谢1

评分

参与人数 1贡献 +2 收起 理由
兰溪之水 + 2

查看全部评分

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

新浪微博达人勋

 成长值: 19710
发表于 2012-2-26 13:11:53 | 显示全部楼层
沙发自己坐~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-2-26 13:15:15 | 显示全部楼层
兰溪不带这么坑爹呀,这么贵。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2012-2-26 13:16:36 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-2-26 13:17:16 | 显示全部楼层
兰溪 不带这么威胁人的,你应该做一个表率.....
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-2-26 13:20:22 | 显示全部楼层
不错 收精了呗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2012-2-26 13:21:04 | 显示全部楼层
topmad 发表于 2012-2-26 13:17
兰溪 不带这么威胁人的,你应该做一个表率.....

没办法啊,兰溪穷了,赚点钱~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2012-2-26 13:23:25 | 显示全部楼层
mofangbao 发表于 2012-2-26 13:20
不错 收精了呗

顺便标题加红呀~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-2-27 13:50:36 | 显示全部楼层
这个挺不错的~

评分

参与人数 1贡献 +2 收起 理由
兰溪之水 + 2 给你贡献自己下把~

查看全部评分

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

本版积分规则

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

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

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