爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 187398|回复: 251

[分享资料] nc资料(即NetCDF和HDF类的资料) 的描述文件-----升级版(可直接使用open命令)

  [复制链接]

新浪微博达人勋

发表于 2013-10-31 17:09:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 river 于 2021-9-2 14:55 编辑

  好久之前发过一个NC资料描述文件及其批量描述的帖子,但那会儿那个ctl是个相对简写的描述文件,只能使用xdfopen命令来打开,而且里面对于维数、时间、变量等描述的写法与我们平时熟知常用的写法有些不一致,用起来难免有一些问题。所以今天就给大家介绍nc资料(即NetCDF和HDF类的资料) 的完整描述文件的写法,以方便很多人需要的批量描述。

   首先要了解完整描述文件需要的要素:
   绿色的是我们平时都基本没用过的;红色是简单的解释。如果有兴趣仔细研究一下这个ctl各个要素的意思以及注意事项,那就去看官方文档 吧,找到[size=13.3333px]Elements点进去有详细介绍。
DSET
DTYPE  
TITLE
UNPACK This entry is used for data variables that are 'packed' -- i.e. non-float data that need to be converted to float by applying the following formula: y = x * scale_factor + add_offset
其实就是在写入数据的过程当中为了记录的方便、控制文件的大小、读取的便利的因素,把数据转换成了整形数,也就是扩大了一定的倍数还加上了某一个数值。这时候就需要在描述文件中告诉grads我这些数字是这么来的,你画图的时候得给我转化回去。就是这么个作用
  
OPTIONS :Valid keywords are 'yrev', 'zrev', 'template', and '365_day_calendar'.CACHESIZE(GrADS version 2.0.a8+)
PDEF :(GrADS version 1.9b4+) This is used when the SDF contains data on a native projection other than lat/lon, such as a lambert conformal or polar stereographic grid.
XDEF
YDEF
ZDEF
TDEF
EDEF  
VECTORPAIRS
VARS

ENDVARS
(当然这些需要要素是包括了所有可能的NC类数据列出来的,针对不同的NC类数据有些要素不是必须的。比如我下面说的NC资料的描述文件就不需要PDEF、EDEF、VECTORPAIRS)
那么要给NC类的资料写一个完整的可以用open直接打开的描述文件需要上面很多信息,我怎么才能得到那些信息呢,比如UNPACK 的信息上哪去看呢?
  其实grads已经给我们提供了方法,这个又分为两种情况:
1、可以直接打开的nc资料,使用sdfopen命令打开之后,继续输入q attr ,就会看到上面我们需要的信息。比如我打开hgt.1948.nc资料,然后输入q attr就会出现下面的信息,红色框中的就是我们需要的UNPACK 数据
1.PNG
2.PNG
3.PNG

2、就是直接用grads命令sdfopen打不开的资料,比如兰溪介绍过的“SDF file has no discernable X coordinate” 类型的资料。grads也提供了办法,grads1.9之前的版本就可以用 Ncdump 、 Ncdump-dap 、 Ncdump-hdf 、 Ncdump-nc4 等命令,针对不同的资料选择合适的命令就可以。比如我的资料 hgt.1948.nc 也可以用这几个命令查看上述信息
只需要在grads中输入 !ncdump -h 路径/hgt.1948.nc    然后回车如下图:黄色部分就是我们需要的 UNPACK 数据了

11.PNG
12.PNG
13.PNG

需要说明的是上面的一些命令在新版opengrads里面是没有的,但是你可以从旧版的安装文件中提取出相应的 Ncdump.exe 、 Ncdump-dap.exe 、 Ncdump-hdf.exe 、 Ncdump-nc4.exe 等文件放在相应的文件夹里就可以了,也就是和girb2ctl.exe、g2ctl.exe同一个文件夹下。各个命令的用法就是直接在grads里面输入!+相应的命令就可以看到帮助信息了。
比如我输入!nudump  回车后就出来下图
14.PNG



好了需要的信息都有了,那么完整的ctl也就可以出来了,如下:
dset ^hgt.1948.nc
title mean daily NMC Reanalysis (1948)
dtype netcdf
undef 32766
unpack scale_factor add_offset 1 32066
options yrev
* yrev表示y轴反向
xdef  144 linear 0 2.5
ydef  73 linear -90 2.5
zdef  17 levels 1000 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10
tdef  366 linear 00Z01Jan1948 1440mn
vars 1
hgt 17 t,z,y,x mean Daily Geopotential height
endvars
  

用open命令打开来看看是不是和原始数据出的图一模一样呢!肯定是一样的啦


说明几点:1、y轴反不反向取决于资料的排列方式,如果是按照grads的资料顺序存放那就不需要y轴反向的选项了。之所以我这个用了这个选项是因为它数据南北方向排列顺序与grads的要求是相反的。从它的详细资料里是可以看出来的,如下图黄色部分,“degrees_north"表示的是向北为正的意思,即北纬为正,南纬为负。再看下面的一句里面有90.f ,-90.f,意思是资料在纬度上是从90到-90,就是纬度方向的资料是从北往南排列的,这恰好和grads要求的由南往北是反过来的,所以要加上y轴反向的选项。

15.PNG

2、变量名称后面的描述要注意,和平时不太一样的,它是和资料排列紧密相关的,多东西少东西都会导致错误,写法针对不同资料是不同的。它表示的意思是hgt这个变量一共有17层,排列顺序是 t,z,y,x 。还想了解的更加详细就去上面的官方文档吧。

有人留言说找不到相关命令,那我就上传一份吧,需要的下载 ncdump相关命令.zip (5.2 MB, 下载次数: 656)

评分

参与人数 1金钱 +10 贡献 +2 体力 +200 收起 理由
兰溪之水 + 10 + 2 + 200

查看全部评分

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

新浪微博达人勋

发表于 2014-4-13 22:00:27 | 显示全部楼层
没有“黄颜色部分”就表示存储数据不需要加减和乘以某个值,直接使用即可,比如:如果含hgt文件有“黄颜色部分”,那么(真正的hgt)= hgt*(scal-factor值)+(add-factor值)
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2018-11-20 11:04:12 | 显示全部楼层
q ctlinfo 出来的 undef -9.99E33 和 q attr 出来的32766 有什么区别,如何理解这两者呢?
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2016-11-16 22:51:38 | 显示全部楼层
river大大,请教您一下,我的nc数据有25个变量,且它们的 scale_factor 和add_offset都不同,我该怎么写UNPACK呢?
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2013-10-31 17:34:36 | 显示全部楼层
好帖子,介绍的很详细
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2013-10-31 18:53:12 | 显示全部楼层
关于南北方向的排列,“degrees_north"表示的是向北为正的意思,即北纬为正,南纬为负,要看是不是反向具体要看lat数组的排列,是从-90到90还是从90到-90~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-31 19:03:51 | 显示全部楼层

感谢兰溪哥哥的解释,已经修改过来了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-31 19:48:04 | 显示全部楼层
楼主真是急人之急啊,最近处理hdf数据时就碰到这个问题,谢谢啦{:5_255:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-31 20:59:26 | 显示全部楼层
感觉好棒啊!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-2 20:07:12 | 显示全部楼层
river 发表于 2013-10-31 19:03
感谢兰溪哥哥的解释,已经修改过来了

river大神 麻烦您上传下 那几个文件吧 是在找不到 就是 Ncdump.exe 、 Ncdump-dap.exe 、 Ncdump-hdf.exe 、 Ncdump-nc4.exe
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-3 13:05:43 | 显示全部楼层
为什么我打开HDF 用ncdump-hdf命令 显示没有上面黄颜色的部分文字呢?这种情况ctl该如何写?
HDF.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-3 16:06:15 | 显示全部楼层
jeffggg 发表于 2013-11-3 13:05
为什么我打开HDF 用ncdump-hdf命令 显示没有上面黄颜色的部分文字呢?这种情况ctl该如何写?

你这个资料是不是可以直接用sdfopen打开啊,能开的话就用q ctlinfo看看本身的描述文件就行了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-3 16:11:16 | 显示全部楼层
river 发表于 2013-11-3 16:06
你这个资料是不是可以直接用sdfopen打开啊,能开的话就用q ctlinfo看看本身的描述文件就行了

不行的 打不开    SDF file has no discernable X coordinate
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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