U、V風(fēng)速轉(zhuǎn)風(fēng)向|in GrADS
關(guān)鍵字:氣象資料處理、風(fēng)速、風(fēng)向、GrADS
目的:使用GrADS從再分析資料的U(緯向風(fēng),m/s)、V(經(jīng)向風(fēng),m/s)風(fēng)計算出WD(風(fēng)向,deg)。
說明:
風(fēng)速與風(fēng)向是氣象風(fēng)分析中常使用到的環(huán)境場變數(shù),但在再分析資料或是模式資料中,一般能直接獲得的風(fēng)場變數(shù)是U風(fēng)與V風(fēng)。雖然我們能使用兩者的比例與atan函數(shù)求得風(fēng)場向量與x軸的交角角度。但用atan函數(shù)所得到的是一般座標(biāo)系的角度,而一般座標(biāo)系的角度與氣象所使用的風(fēng)向角度與是不一樣的。
一般座標(biāo)系的角度:西風(fēng)(velocity=<1,0>)視為0度,照逆時針旋方向角度逐漸增加。
氣象所使用的風(fēng)向:北風(fēng)(velocity=<0,-1>)視為0度,照順時針旋方向角度逐漸增加。
所以,還需要一些加工轉(zhuǎn)換才能從U、V風(fēng)得到風(fēng)向。
圖說明兩種風(fēng)向的差異
無法直接將U、V風(fēng)套用進(jìn)atan函數(shù)求出風(fēng)向
scripts:
;*wind direction
'define WD=(atan2(v,u)*57.29578)*-1 + 270' ?;*風(fēng)向量角轉(zhuǎn)風(fēng)向
'define WD=if(WD>=360 , WD-360 , WD)' ? ? ? ?;*將回傳值限定在0<=WD<360
input: U、V的單位沒有固定的要求,相同即可。
output: WD為風(fēng)向(單位:deg)。
*注:atan2的第一個參數(shù)為v,第二個參數(shù)為u,因為此處要的回傳結(jié)果是股/勾 。官方說明:GrADS function: atan2 (gmu.edu)
使用例:
檢視此方法下,V風(fēng)與U風(fēng)之間的比值與WD之間的關(guān)係??梢姡L(fēng)速比值為正時,WD介於0~90與180~270之間,也就是東北風(fēng)與西南風(fēng);而風(fēng)速比值為負(fù)時,WD介於90~180與270~360之間,也就是東南風(fēng)與西北風(fēng)??梢?,風(fēng)速比值為正時,WD介於0~90與180~270之間,也就是東北風(fēng)與西南風(fēng);而風(fēng)速比值為負(fù)時,WD介於90~180與270~360之間,也就是東南風(fēng)與西北風(fēng)。
'reinit'
'sdfopen http://apdrc.soest.hawaii.edu:80/dods/public_data/Reanalysis_Data/NCEP/NCEP2/daily/pressure/uwnd'
'sdfopen http://apdrc.soest.hawaii.edu:80/dods/public_data/Reanalysis_Data/NCEP/NCEP2/daily/pressure/vwnd'
'set time 00Z01Jan2023'
'set lev 850'
'set lon 0 357.5'
'set lat -90 90'
;*wind speed
'define WS=mag(uwnd.1,vwnd.2)'
;*wind direction
'define WD=(atan2(vwnd.2,uwnd.1)*57.29578)*-1 + 270'
'define WD=if(WD>=360 , WD-360 ,WD)'
'set gxout scatter'
'set ylint 45'
'set vrange -20 20 '
'd (vwnd.2/uwnd.1);wd'
