- 积分
- 1196
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-7-17
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为需要后续6个四维的数据(xyzt)来计算大气热源q1,所以需要合成为有时间维的nc数据,原始数据为3维(xyz),提取3个grib2数据作为合成的例子来操作,所用的ncl是用气象家园论坛一键安装的cygwin,将ncl脚本放到“d:/123"路径下,将3个例子放在”d:/123/vvp1"路径下,单个grib2数据属性如下:Variable: f
Type: file
filename: CRA40_VVP_197901_GLB_MONTH_V1_0_0
path: D:/123/vvp1/CRA40_VVP_197901_GLB_MONTH_V1_0_0.grib2
file global attributes:
dimensions:
lv_ISBL0 = 37
lat_0 = 576
lon_0 = 1152
variables:
float VVEL_P0_L100_GGA0 ( lv_ISBL0, lat_0, lon_0 )
center : US National Weather Service - NCEP (WMC)
production_status : Operational products
long_name : Vertical velocity (pressure)
units : Pa s-1
_FillValue : 1e+20
grid_type : Gaussian latitude/longitude
parameter_discipline_and_category : Meteorological products, Momentum
parameter_template_discipline_category_number : ( 0, 0, 2, 8 )
level_type : Isobaric surface (Pa)
forecast_time : 0
forecast_time_units : hours
initial_time : 01/01/1979 (00:00)
float lat_0 ( lat_0 )
............
数据维度为3维,唯一能证明时间的是VVEL_P0_L100_GGA0下的initial_time,数据是逐月数据,第二个数据的时间为 initial_time : 02/01/1979 (00:00),用以下脚本读取3个数据并且生成新的维度:
begin
diri="D:/123/vvp1/"
all_files = systemfunc ("ls "+diri+"CRA40_VVP_*_GLB_MONTH_V1_0_0.grib2")
fall = addfiles (all_files, "r")
ListSetType (fall, "join")
vvp = fall[:]->VVEL_P0_L100_GGA0
printVarSummary(vvp)
end
ncl的结果为:
Variable: vvp
Type: float
Total Size: 294617088 bytes
73654272 values
Number of Dimensions: 4
Dimensions and sizes: [ncl_join | 3] x [lv_ISBL0 | 37] x [lat_0 | 576] x [lon_0 | 1152]
Coordinates:
lv_ISBL0: [10000..100000]
lat_0: [89.76099..-89.76099]
lon_0: [ 0..359.6875]
Number Of Attributes: 12
center : US National Weather Service - NCEP (WMC)
production_status : Operational products
long_name : Vertical velocity (pressure)
units : Pa s-1
_FillValue : 1e+20
grid_type : Gaussian latitude/longitude
parameter_discipline_and_category : Meteorological products, Momentum
parameter_template_discipline_category_number : ( 0, 0, 2, 8 )
level_type : Isobaric surface (Pa)
forecast_time : 0
forecast_time_units : hours
initial_time : 01/01/1979 (00:00)
维度变成四维了,但是怎么把第四维变成时间维并且将正确时间赋值进去呢?即用grads读出来时间起始是197901 时间间隔为1个月呢?并且选取37层高度层中的17层,最后转成一个完整的nc数据,即为3(时间)*17(选取的高度层)*576*1152的四维数据。请问接下来应该怎么实现呢?因为看了官网的grib2转nc,单个grib2数据转出来用grads打开时间是不清楚的,不知道是不是因为原始数据没有时间维,有没有人知道接下来应该怎么写入正确的时间,选取37个高度层中的17层并且最后生成为nc数据啊?看官网只会一个个来,批量处理做不出来哇?有没有大佬能教下哇??
|
|