积分 334
贡献
精华
在线时间 小时
注册时间 2019-12-6
最后登录 1970-1-1
5 金钱
最近在对物理量(四维,时间,高度,离台风中心距离,方位角)进行尺度分离时遇到了一些问题,参照NCL官网程序(fanal_3.ncl),我想把物理量提取波数为0,波数为1,2的三部分。但是发现按照官网程序得到的波数为0的物理量在方位角是对称的,不知道这样对不?还有一点疑问,那就是z_wave1 = ezfftb (cf, 0.0),里面这个0.0和Xbar的区别是什么,为什么官网这里要用0.0?我用这两种计算分解得到的波数为0的部分并不相同。
;----------------------------------------------------------------------
;fanal_3.ncl
;
;概念图解:
;- 计算每月气候学
的波浪信息;---------------------------------------------------------
;计算每月气候学
的波浪信息; .绘制波数 1, 2, 3
;---------------------------------------------------------
;
;默认情况下,这些文件在NCL V6.2.0及更高版本中
加载;load “$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl”
;load “$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl”
;load “$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl”
id = “./”
in = addfile(id+“ERAI.1989-2005.climo.subset.nc”,“r”) ;气候学: 1989-2005
z = in->Z300 ;(时间,纬度,经度) ;( 12 ,121,240)
dimz = dimsizes(z)
nmos = dimz(0)
;********************************************************
计算每个谐波
的振幅;********************************************************
重新排序: ezfftf 在 right dim
CF = ezfftf (z) 上工作 ;ezfftf 在 right dim
printVarSummary(CF) 上工作 ;[2] x [12] x [121] x [120]
cf = CF
cf(:,:,:,1:) = 0.0 ; 将波 2 及更高值设置为 0.0
z_wave1 = ezfftb (cf, 0.0) ;[12] x [121] x [240]
copy_VarMeta(z, z_wave1) ;[时间 | 12] x [纬度 | 121] x [经度 | 240]
cf = CF
cf(:,:,:,0:0) = 0.0 ;设置波 1 到 0.0
cf(:,:,:,2: ) = 0.0 ;将波 3 及更高值设置为 0.0
z_wave2 = ezfftb (cf, 0.0) ;[12] x [121] x [240]
copy_VarMeta(z, z_wave2) ;[时间 | 12] x [纬度 | 121] x [经度 | 240]
cf = CF
cf(:,:,:,0:1) = 0.0 ;将波 1 和 2 设置为 0.0
cf(:,:,:,3: ) = 0.0 ;将波 4 及更高值设置为 0.0
z_wave3 = ezfftb (cf, 0.0) ;[12] x [121] x [240]
copy_VarMeta(z, z_wave3) ;[时间 | 12] x [纬度 | 121] x [经度 | 240]
;************************
创建绘图
;******************************************************
月份 = (/“一月”,“二月”,“三月”,“四月”,“五月”\
,“七月” ,“八月”,“九月”,“十月”,“十一月”,“十二月”/)
绘图 = 新 (3,“图形”)
pltType = “png” ;将图形发送到 PNG 文件
pltName = “fanal”
wks = gsn_open_wks(pltType, pltName)
res = True ;单个情节
res@gsnDraw = 假
res@gsnFrame = 假
res@cnFillOn = 真 ;打开颜色
res@cnFillPalette = “BlAqGrYeOrReVi200” ;设置色彩映射表
res@cnLinesOn = 假 ;打开行标签
res@cnLineLabelsOn = 假 ;打开行标签
res@lbOrientation = “垂直” ;垂直标签条
resP = 真 ;panel resources
;resP@gsnPaperOrientation = “portrait”
resP@gsnMaximize = True
do nmo=0,nmos-1,6
res@gsnLeftString = “Wave 1”
symMinMaxPlt (z_wave1(nmo,:,:),16,False,res)
plot(0) = gsn_csm_contour_map(wks,z_wave1(nmo,:,:),res)
res@gsnLeftString = “Wave 2”
symMinMaxPlt (z_wave2(nmo,:,:),16,False,res)
plot(1) = gsn_csm_contour_map(wks,z_wave2(nmo,:,:),res)
res@gsnLeftString = “Wave 3”
symMinMaxPlt (z_wave3(nmo,:,:),16,False,res)
plot(2) = gsn_csm_contour_map(wks,z_wave3(nmo,:,:),res)
resP@gsnPanelMainString = “ERA-Interim: 1989-2005: Z300: ”+month(nmo)
gsn_panel(wks,plot,(/3,1/),resP)
end do
我来回答