如题,NCL读取grib2非常方便,直接fnl_file = addfile("E:/fnl/fnl_20130624_00_00.grib2","r") 就行。
但是,从FNL官网下载的grib2文件,一个文件有88个变量(用printprintVarSummary可知)。
现在想读取grib2文件的UV风场,但是print文件后发现有UV风场有多个变量(以及相关变量名),而且这些变量名和Panoply中的变量名又不相同。
比如:
![](https://i-blog.csdnimg.cn/blog_migrate/39938520da765fda8c4a3ee78ae0a086.png)
怎么下手?选哪个?
机智的你一定发现了最后一个是三维的,上面两个是二维的,所以第3个的概率更大。
但是,再往上翻翻,发现三维的风场表示,有3个,而且所有风场的变量名只有数字的差异,:
分别是上述的L109,以及L100和L102
![](https://i-blog.csdnimg.cn/blog_migrate/4643e02b96d3069d516790222d5e5bff.png)
然后机智的你又发现三者的层数的变量名不同,分别是有相同lv前缀的ISBL0, AMSL1, PVL3。
三者分别代表啥?先别晕,再往后看看,
![](https://i-blog.csdnimg.cn/blog_migrate/39c19d2b4406f41b7a3222bd5ecab408.png)
好了,谜底揭晓了,凡是ISBL打头的都是Isobaric surface,AMSL和PVL一个是海平面以上的平均?和位涡面?(预报的不懂,有没有大佬指出),总之咱们需要的等压面上的UV风场的预报,UV变量又出现过的,就是L100!
所以,读取grib2的300hPa风场的命令如下:
fnl_file = addfile("E:/fnl/fnl_20130624_00_00.grib2","r")
printVarSummary(fnl_file)
print(fnl_file)
u_300hPa = fnl_file->
UGRD_P0_L100_GLL0( {
30000}, :, : )
v_300hPa = fnl_file->
VGRD_P0_L100_GLL0( {
30000}, :, : )
printVarSummary(u_300hPa)
printVarSummary(v_300hPa)
最后还有一点要注意,这里的等压面的单位是Pa,所以读取300hPa实际为30000,否则报错!
看了之前大家的帖子,貌似不同的grib数据变量名都不同,但是寻找变量名的方法大同小异。今天记下来分享给大家,也为自己整理下思路。