在namelist.input中,有個高度的分層。在一般的研究中,我們常以海拔高度,位勢高度作為分層的標准。但是在模式中,由於每個地區的下墊面都不一樣,有的平原有的高原,有的湖泊有的高山,即使在一個很小的區域,地面的海拔高度也不一樣,所以按照位勢高度來分層,就顯得十分不合適。於是就有了eta坐標。
先來看看namelist.input中的設置:
e_vert = 27, 27, 27, 27,
eta_levels = 1.000, 0.999, 0.998, 0.996,
0.995, 0.993, 0.9922, 0.991,
0.989, 0.985,
0.978, 0.965,
0.945, 0.924,
0.904, 0.848,
0.747, 0.646,
0.545, 0.444,
0.343, 0.242,
0.141, 0.091, 0.061,
0.020, 0.000,
這個例子是垂直方向分為27層。從數值上看,分層都在0---1內。先來看看eta坐標,
eta=(P-Ptop)/(Pbot-Ptop)
P代表某一層的氣壓,也就是你需要研究的那一層,Ptop代表模式頂層氣壓,Pbot代表地面氣壓。(WRF中好像是10hpa,不太確定)。從表達式可以看出,地面的eta值就是1,頂層就是0。這樣一來,無論某個地區的下墊面的海拔高度是多少,它的eta坐標值都統一成1。
當然,在模式的結果分析中,我們更想知道的是某個eta坐標對應的位勢高度,比如說我們要研究離地60m高度的風速,就有必要進行二者轉換。
常見的轉換式是 gmp=(PH+PHB)/9.81-HGT
結果就是離地位勢高度值,PH和PHB以及HGT都是模式結果中已有的變量。HGT是當地地面海拔高度。
在3.2的版本中已經有了height這個變量,可以直接對應海拔高度。經計算,發現其值和上式計算結果幾乎一致,注意單位換算。
如果需要更精確的結果,則
gmp=(((PH(k)+PH(k+1)) / 2) + ((PHB(k)+(PHB(k+1)) / 2) / 9.81 – HGT
這個動力論壇上對於上面兩個表達式的對比回答:
Firstly, the result of (PH+PHB)/9.8 is the height above sea level that is not what you need to check. For horizontal winds, some prognostic variables, and diagnostic variables, the center of the cell should be used. The center height above surface, absolute altitude should be calculated by running average from the top and bottom:
(((PH(k)+PH(k+1)) / 2) + ((PHB(k)+(PHB(k+1)) / 2) / 9.81 – HGT,
where PH and PHB are staggered in the vertical direction, meaning that they are at the tops and bottoms of grid cells. HGT is terrain height. This center height of grid cell is changing from model time to time based on definition of eta vertical coordinate system. You never get it fixed. So you cannot get the answer to your question by re-setting eta levels.
Secondly, for scalar properties such as temperature, tracer concentration, the modeled result spatially represents at the center of grid cell and shows a homogeneous value within entire grid box. That means the modeled value is constant from bottom to top of the grid cell. What you think about is the sub-scaled. You may use Monin-Obukov similarity theory to derive the modeled value at the height of 4.4m at which your monitor is set. For doing this you may copy the way to calculate those diagnostic variables like T2, Q2 in the model. (But U10 and V10 are different). Due to limitation of M-O theory and model as well as observation technology I am not sure you can get your results much improved even at such a small different height of 0.3 m (4.7m – 4.4m). Normally we can directly compare the modeled result and observed one obtained at surface layer. However it highly depends on what kind of parameter you are dealing with and what accuracy requirements for this measurement are. I do not know what observation you made.
到這里,依然沒有說完,因為上面的表達式涉及到的都是氣壓值,我們在實際研究中,氣壓值並不是那么容易得到的。那么,有什么好方法可以直接從eta值就能對應上位勢高度呢???
對於這個問題,至今好像還沒有十分完美的方法可以解決,至少我還沒看到。
但是,也可以嘗試性的探索,下面說說我的做法。
以上面貼出來的namelist.input中的eta值的設置為例,比如說我們要得到離地高度60m的某變量。
先按照上面默認的eta值運行下去(在跑wrf時,可以先只算一個小時的數據,因為現在還屬於試驗階段),得到模式結果后,你就可以畫出每個eta值對應的height的等值線圖了,這樣你就可以看出每個eta對應的離地高度值。這樣,得到的結果,可能是eta=0.993對應的位勢高度是57m, eta=0.9922對應的是66m,這樣一來,你就知道eta值對應的60m的范圍了(0.993-0.9922)。第一次試驗結束,現在你就把0.993改為0.9928,大概差不多,下次你的結果就基本是60m了,當然你也可能第二次試驗。由於eta坐標是等氣壓值坐標,所以每個eta面上的位勢高度都不可能相等。也就是說等氣壓面並不是一個平面,所以無論你怎么調節都不可能全部等於60m。 所以在60m左右就可以了,一般會在59-61m。相當不大。
好了,說了這么多,有可能有些錯誤,更有可能有更好的方法,望大家都不吝賜教。
轉自氣象家園:http://bbs.06climate.com/forum.php?mod=viewthread&tid=1860&extra=page%3D2&page=1