爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5125|回复: 6

[分享资料] 怎么读取带二维变量的nc文件

[复制链接]
发表于 2014-4-1 18:52:08 | 显示全部楼层 |阅读模式

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

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

x
我的nc文件用ncdump查看,是如下信息:
C:\Users\slq_dell>ncdump -h D:\GrADS20\data\cruncep_1954.nc
netcdf D:\GrADS20\data\cruncep_1954 {
dimensions:
        y = 360 ;
        x = 720 ;
        tstep = UNLIMITED ; // (1460 currently)
        land = 62482 ;
variables:
        float nav_lat(y, x) ;
                nav_lat:axis = "TYX" ;
                nav_lat:long_name = "degrees_north" ;
                nav_lat:missing_value = 1.e+20f ;
                nav_lat:title = "Latitude" ;
                nav_lat:units = "nav_lat" ;
                nav_lat:valid_max = 90.f ;
                nav_lat:valid_min = -90.f ;
        float nav_lon(y, x) ;
                nav_lon:axis = "TYX" ;
                nav_lon:long_name = "degrees_east" ;
                nav_lon:missing_value = 1.e+20f ;
                nav_lon:title = "Longitude" ;
                nav_lon:units = "nav_lon" ;
                nav_lon:valid_max = 180.f ;
                nav_lon:valid_min = -180.f ;
        float time(tstep) ;
                time:units = "seconds since 1954-01-01 00:00:00" ;
                time:time_origin = "1954-JAN--01-01 00:00:00" ;
                time:title = "Time" ;
                time:long_name = "Time_axis" ;
                time:calendar = "noleap" ;
        int timestp(tstep) ;
                timestp:units = "timestep since 1954-01-01 00:00:00" ;
                timestp:time_origin = "1954-JAN--01-01 00:00:00" ;
                timestp:title = "Time" ;
                timestp:long_name = "Time step" ;
                timestp:tstep_sec = 21600.f ;
        int land(land) ;
                land:compress = "y x" ;
        float Tair(tstep, land) ;
                Tair:long_name = "Tair" ;
                Tair:units = "K" ;
                Tair:titale = "Temperature" ;
                Tair:axis = "TYX" ;
                Tair:missing_value = 1.e+20f ;
        float SWdown(tstep, land) ;
                SWdown:long_name = "SWdown" ;
                SWdown:units = "W/m^2/s" ;
                SWdown:titale = "Incoming_Short_Wave_Radiation" ;
                SWdown:axis = "TYX" ;
                SWdown:missing_value = 1.e+20f ;
        float Qair(tstep, land) ;
                Qair:long_name = "Qair" ;
                Qair:units = "kg/kg" ;
                Qair:titale = "Air_Specific_Humidity" ;
                Qair:axis = "TYX" ;
                Qair:missing_value = 1.e+20f ;
        float Rainf(tstep, land) ;
                Rainf:long_name = "Rainf" ;
                Rainf:units = "kg/m^2/s" ;
                Rainf:titale = "Rainfall rate" ;
                Rainf:axis = "TYX" ;
                Rainf:missing_value = 1.e+20f ;
        float LWdown(tstep, land) ;
                LWdown:long_name = "LWdown" ;
                LWdown:units = "W/m^2/s" ;
                LWdown:titale = "Incoming_Long_Wave_Radiation" ;
                LWdown:axis = "TYX" ;
                LWdown:missing_value = 1.e+20f ;
        float Wind_E(tstep, land) ;
                Wind_E:long_name = "Wind_E" ;
                Wind_E:units = "m/s" ;
                Wind_E:titale = "U_wind_component" ;
                Wind_E:axis = "TYX" ;
                Wind_E:missing_value = 1.e+20f ;
        float Wind_N(tstep, land) ;
                Wind_N:long_name = "Wind_N" ;
                Wind_N:units = "Pa" ;
                Wind_N:titale = "V_wind_component" ;
                Wind_N:axis = "TYX" ;
                Wind_N:missing_value = 1.e+20f ;
        float PSurf(tstep, land) ;
                PSurf:long_name = "PSurf" ;
                PSurf:units = "kg/m^2/s" ;
                PSurf:titale = "Pression" ;
                PSurf:axis = "TYX" ;
                PSurf:missing_value = 1.e+20f ;
        float Snowf(tstep, land) ;
                Snowf:long_name = "Snowf" ;
                Snowf:units = "" ;
                Snowf:titale = "Snowfall rate" ;
                Snowf:axis = "TYX" ;
                Snowf:missing_value = 1.e+20f ;

// global attributes:
                :data_source = "NCEP_corr_CRU" ;
                :history = "Tue Sep 24 20:41:49 2013: ncap2 -s nav_lat=nav_lat+0
.25f;nav_lon=nav_lon-0.25f; /home/orchidee01/mmancip/IGCM/BC/OOL/OL2/CRU-NCEP/v5
/cruncep_1954.nc -O cruncep_1954.nc" ;
                :nco_openmp_thread_number = 1 ;


我自己编写了一个ctl文件,
DSET ^cruncep_1954.nc
TITLE data
UNDEF 1.e+20f
XDEF x 720 LINEAR 0.25 0.5
YDEF y 360 LINEAR -89.75 0.5
TDEF tstep 1460 LINEAR 00Z01JAN1954 6hr
VARS 9
Tair=>Tair 0 99 Air data
SWdown=>SWdown 0 99 Land data
Qair=>Qair 0 99 Air data
Rainf=>Rainf 0 99 Land data
LWdown=>LWdown 0 99 Air data
Wind_E=>Wind_E 0 99 Land data
Wind_N=>Wind_N 0 99 Air data
PSurf=>PSurf 0 99 Land data
Snowf=>Snowf 0 99 Air data
ENDVARS

但是那个        int land(land) ;
                land:compress = "y x" ;
这个怎么在ctl里表述呢?求教各位神仙
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-4-1 23:51:22 | 显示全部楼层
提问的不好,现在重新整理一下。我想问的是ALMA convention规范的nc文件怎么读取?
在ALMA convention 的nc里,用nudump会有如下信息:
int land(land) ;
                 land:compress = "y x" ;
         float Tair(tstep, land) ;
                 Tair:long_name = "Tair" ;
                 Tair:units = "K" ;
                 Tair:titale = "Temperature" ;
                 Tair:axis = "TYX" ;
                 Tair:missing_value = 1.e+20f ;

我不知道怎么把land的信息写到ctl文件里,有没有同学打开过类似的文件呢
密码修改失败请联系微信:mofangbao
发表于 2014-6-16 21:22:03 | 显示全部楼层
有没有同学打开过类似的文件呢
密码修改失败请联系微信:mofangbao
发表于 2014-8-23 11:44:57 | 显示全部楼层
学习中,希望大家一起进步
密码修改失败请联系微信:mofangbao
发表于 2014-12-9 14:26:25 | 显示全部楼层
遇到了和楼主同样的问题,期待帮助!
密码修改失败请联系微信:mofangbao
发表于 2017-4-29 16:35:52 | 显示全部楼层
楼主有没有解决,求问啊,咋读这种二维的数据
密码修改失败请联系微信:mofangbao
发表于 2017-4-29 18:01:01 | 显示全部楼层
ncl不是都能打开吗
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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