wrf垂直坐标转换为离地面高度(m)方法:
方法一:
读取wrfout文件中的PH,PHB和HGT这三个变量,注意这PH和PHB两个变量的维度为(Time, bottom_top_stag, south_north, west_east),垂直方向上是bottom_top_stag,常用的是bottom_top,所以要进行转换。
PH+PHB得到重力位势,除以9.81得到高度,bottom_top刚好位于bottom_top_stag的中间,所以bottom_top_stag第k层+第k+1相加再除以2就得到bottom_top上的第k层。
公式如下:
gmp=(((PH(k)+PH(k+1)) / 2) + ((PHB(k)+(PHB(k+1)) / 2) / 9.81 – HGT
这样得到的gmp(Time, bottom_top, south_north, west_east)就是所需要的高度了
运行的ncl脚本如下:
结果如下:
此处有个疑问:平时得到bottom_top相应维度的变量最下面那层不是地面的,举个例子,比如是eta=1.0和eta=0.994之间的平均值eta=0.997所对应的高度(约20m)?
方法二:利用ncl的wrf_user_getvar函数读取"z"这个变量再减去HGT,从而也可以得到上面的高度值
参考:
ncl函数:wrf_user_getvar,wrf_user_unstagger