爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10213|回复: 9

[其他] [求教]如何获取nc文件变量中是否存在某些属性值

[复制链接]
发表于 2013-8-2 20:41:01 | 显示全部楼层 |阅读模式

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

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

x

            前提:

     1.nc文件是通过遍历的方式获取的未知文件,如:
  1. dataFileList   = systemfunc("ls " + dataFilePath + "*.nc")
  2.   nFileList     = dimsizes(dataFileList)        
  3.   ;*************************定义数据目录**************************
  4.   
  5.   ;*************************循环读取nc文件************************
  6.   do i = 0,nFileList  -  1      
  7.    
  8.     currentFilePath = dataFileList(i)
  9.     currentFile  =  addfile(currentFilePath, "r")
复制代码


2.变量也是通过遍历的方式获取的未知变量,如:

  1. ;***********************解析文件变量**************************
  2.     varNames = getfilevarnames (currentFile)   ; 获取nc文件中所有变量的名称  
  3.     nNames = dimsizes (varNames)               ; 获取nc文件中变量的数量  
  4.     ;***********************解析文件变量**************************   
  5.    
  6.     do n = 0,nNames  -  1                          currentVar = currentFile->$varNames(n)   ;将变量数据读取到currentVar,   
复制代码

      
      3.通过如下方式获取变量维数:

  1.   currentVarCount = dimsizes(currentVar)                   ;获取变量自身维度
  2.          currentVarAttrsCount  =  dimsizes(currentVarCount)       ;获取变量内部结构数据的个数      
  3.          
  4.          ;**************************数据维数为3的绘图**********************************
  5.          if(currentVarAttrsCount .eq. 3) then            
复制代码


问题出现了:
读取的变量可能存在如下情况:
1)T(time,lon,lat)
2)P(time,lat,lon)
3)Q(isocc,lat,lon)
4)MV(bbcic,lon,lat)
当我想用:
tempVar  = currentVar(time|:,lat|:,lon|:)

对变量进行排序时发现有的数据不是我想要的,所以要通过判断的方式捡出来。

由于刚刚接触ncl,这个可能比较简单,不过我确实google很久没有查到,请高手赐教,不胜感激。

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-8-2 20:52:55 | 显示全部楼层
好像找到了,isdim?
密码修改失败请联系微信:mofangbao
发表于 2013-8-2 21:01:29 | 显示全部楼层
如果只是想知道数据的变量名,维数和他们的属性,printVarSumary就可以了,不明白你这是在干什么,还有就是不知道是你打错字,还是我孤陋寡闻,这个“遍历的方式”我不知道啥意思,后面你的红字的问题也不明白你想说啥
密码修改失败请联系微信:mofangbao
发表于 2013-8-2 21:02:43 | 显示全部楼层
还有用ncl_filedump也可以
密码修改失败请联系微信:mofangbao
发表于 2013-8-2 21:08:58 | 显示全部楼层
ncdump。。
密码修改失败请联系微信:mofangbao
发表于 2013-8-2 21:42:47 | 显示全部楼层

犀利啊。。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-8-5 09:32:36 | 显示全部楼层
尽头的尽头 发表于 2013-8-2 21:01
如果只是想知道数据的变量名,维数和他们的属性,printVarSumary就可以了,不明白你这是在干什么,还有就是 ...

printVarSumary和ncdump我都知道的,我这里是要通过脚本的方式得到程序能了解的东西。
我想做的是自动解析文件,自动画图。
密码修改失败请联系微信:mofangbao
发表于 2013-8-5 19:38:24 | 显示全部楼层
看天吃饭 发表于 2013-8-5 09:32
printVarSumary和ncdump我都知道的,我这里是要通过脚本的方式得到程序能了解的东西。
我想做的是自动解 ...

不明白你的意思。。。啥是自动画图,自动解析文件,感觉你对自己的问题没有描述清楚
密码修改失败请联系微信:mofangbao
发表于 2014-7-29 22:18:10 | 显示全部楼层
{:eb513:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2014-7-30 22:42:50 | 显示全部楼层
用ncdump命定查看数据变量属性
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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