这篇文章主要介绍“NCL常用统计学函数怎么用”,在日常操作中,相信很多人在NCL常用统计学函数怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”NCL常用统计学函数怎么用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
NCL作为一门气象专业语言,自带了很多气象届常用的算法和命令, 比如计算相关系数、均方根误差等统计量,相关系数显著性检验,EOF,以及各种插值。这里将一些常用函数做了归纳:NCL中计算相关系数的函数有好几个,常用的为escorc系列和regCoef系列。escorc(x,y)是计算两个数组最右侧一列的相关系数。如果想指定计算的列数,比如想计算x(lat,lon)和y(lat,lon,year)在lat这一列上的相关系数,就要用到escorc_n: escorc_n(x,y,0)。相关系数的检验方法包括t检验、f检验和显著性检验,分别为ttest,ftest,rtest。regCoef系列的命令比escorc强大很多,因为它除了返回相关系数rc,还捎带手把两个序列的标准差(rc@rstd)和t检验结果(rc@tval)都给算了。函数名为dim_rmsd。它是计算两个变量在所有其他维度上最右侧维度的均方根误差。而对于想要计算指定维度的情况,则要用dim_rmsd_n。计算EOF分解的函数为eofunc开头的系列函数,一般用eofunc_Wrap计算空间模态,用eofunc_ts_Wrap计算时间系数。以下为针对变量x计算EOF分解并绘图的NCL子程序:undef("draw_eof_plot")
procedure draw_eof_plot(dir_plot,file_plot,type_plot,x,year,neof)
begin
;--EOF analysis
optEof = True
eof = eofunc_Wrap( x, neof, optEof)
eof_ts = eofunc_ts_Wrap( x, eof, False)
lat = x&lat
lon = x&lon
;--Begin plotting section.
wks = gsn_open_wks(type_plot,dir_plot+file_plot) ; Opens a ps file
gsn_define_colormap(wks,"rainbow")
plot = new(neof,graphic)
res = True ; plot mods desired
;************************************************
; original data
;************************************************
res@gsnDraw = False ; don't draw yet
res@gsnFrame = False ; don't advance frame yet
res@gsnAddCyclic = False
;--map plot resources
res@mpFillOn = False ; no grey continents
res@mpCenterLonF = 180.
res@mpDataBaseVersion = "MediumRes" ; or "Ncarg4_1"
res@mpDataSetName="Earth..4"
res@mpOutlineSpecifiers=(/"China:states","Taiwan"/)
res@mpOutlineBoundarySets = "AllBoundaries"
res@mpMinLatF = min(lat) ; range to zoom in on
res@mpMaxLatF = max(lat)
res@mpMinLonF = min(lon)
res@mpMaxLonF = max(lon)
;--contour resources
res@cnFillOn = True ; turn on contour fill
res@cnLineLabelsOn = False ; turn off contour
res@cnLinesOn = False ; add countor or not,True is default
res@gsnLeftString = " "
res@gsnRightString = " "
;--tickmark resources
res@tmXTOn = False
res@tmYROn = False
res@tmYLLabelFontHeightF =0.02
res@tmXBLabelFontHeightF =0.018
res@tmXTOn = False
res@tmYROn = False
;--labelbar resources
res@lbLabelBarOn = False
res@lbLabelFontHeightF = 0.02
res@lbOrientation = "Vertical" ; vertical label bar
symMinMaxPlt(eof, 16, False, res); contributed.ncl
; panel plot only resources
resP = True ; modify the panel plot
resP@gsnMaximize = True ; large format
resP@gsnPanelLabelBar = True ; add common colorbar
resP@txString = "EOF"
do n=0,neof-1
res@gsnLeftString = " EOF "+(n+1)
res@gsnRightString = sprintf("%5.1f", eof@pcvar(n)) +"%"
plot(n) = gsn_csm_contour_map(wks,eof(n,:,:),res)
end do
gsn_panel(wks,plot,(/neof/1,2/),resP) ; draw all 'neof' as one plot
;*******************************************
; time series (principal component) plot
;*******************************************
eof_ts@long_name = "Amplitude"
rts = True
rts@gsnDraw = False ; don't draw yet
rts@gsnFrame = False ; don't advance frame yet
; decide exactly where on the page to draw it.
rts@vpHeightF = 0.40 ; Changes the aspect ratio
rts@vpWidthF = 0.85
rts@vpXF = 0.10 ; change start locations
rts@vpYF = 0.75 ; the plot
rts@gsnYRefLine = 0. ; reference line
rts@gsnAboveYRefLineColor = "red" ; above ref line fill red
rts@gsnBelowYRefLineColor = "blue" ; below ref line fill blue
; panel plot only resources
rtsP = True ; modify the panel plot
rtsP@gsnMaximize = True ; large format
rtsP@txString = "EOF"
do n=0,neof-1
rts@gsnLeftString = " EOF "+(n+1)
rts@gsnRightString = sprintf("%5.1f", eof@pcvar(n)) +"%"
plot(n) = gsn_csm_xy (wks,year,eof_ts(n,:),rts)
end do
gsn_panel(wks,plot,(/neof/1,2/),rtsP) ; draw all 'neof' as one plot
end
到此,关于“NCL常用统计学函数怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注天达云网站,小编会继续努力为大家带来更多实用的文章!