爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8047|回复: 4

[作图] NCL做t检验中prob值和分布有问题

[复制链接]

新浪微博达人勋

发表于 2016-9-21 20:07:18 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
请教一下大家,我参照气象家园上的例子用ncl做强弱年降水距平的合成差值图,利用t检验函数画出的图prob等值线分布和值好像都有问题,prob在0.1到0.9之间,中间大片没有等值线的区域prob的值都是0.1,而且官网上好像是说小于0.05的区域通过显著性检验,怎么才能让中间降水距平值较大的区域通过检验并且缩小显著性检验的范围呢?
QQ截图20160921194823.png


以下是我的ncl脚本:
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"   ; functions required to
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"     ; plot.  include before
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"  
begin
;************************************************
; read in data
;************************************************
fili1="vareaave_JJA_yearly.nc"   ;强度指数标准化序列
x= addfile(fili1, "r")
vJJA =x->vJJAsta(:)  
printVarSummary(vJJA)
  y= addfile("preAnom_yearly.nc","r");
  vAvg=y->preAnom(:,:,:)
  vAvg2=vAvg*30;
copy_VarCoords(vAvg,vAvg2)
printVarSummary(vAvg2)

vAvg1 = smth9_Wrap(vAvg2, 0.50, 0.25, False) ; light local smoothing
   
vAvgs1=vAvg1(0,:,:);强年
vAvgs2=vAvg1(3,:,:)
vAvgs3=vAvg1(12,:,:)
vAvgs4=vAvg1(15,:,:)
vAvgs5=vAvg1(18,:,:)
vAvgs6=vAvg1(23,:,:)
vAvgs7=vAvg1(27,:,:)
vAvgs8=vAvg1(33,:,:)
printVarSummary(vAvgs1)
vAvgss=new((/8,72,144/), float)
vAvgss(0,:,:)=vAvgs1
vAvgss(1,:,:)=vAvgs2
vAvgss(2,:,:)=vAvgs3
vAvgss(3,:,:)=vAvgs4
vAvgss(4,:,:)=vAvgs5
vAvgss(5,:,:)=vAvgs6
vAvgss(6,:,:)=vAvgs7
vAvgss(7,:,:)=vAvgs8
printVarSummary(vAvgss)


vAvgw1=vAvg1(10,:,:);弱年
vAvgw2=vAvg1(17,:,:)
vAvgw3=vAvg1(19,:,:)
vAvgw4=vAvg1(21,:,:)
vAvgw5=vAvg1(28,:,:)
vAvgw6=vAvg1(31,:,:)
vAvgw7=vAvg1(34,:,:)
printVarSummary(vAvgw1)
vAvgww=new((/7,72,144/), float)
vAvgww(0,:,:)=vAvgw1
vAvgww(1,:,:)=vAvgw2
vAvgww(2,:,:)=vAvgw3
vAvgww(3,:,:)=vAvgw4
vAvgww(4,:,:)=vAvgw5
vAvgww(5,:,:)=vAvgw6
vAvgww(6,:,:)=vAvgw7
printVarSummary(vAvgww)

;提取强弱年的pre
vq=vAvgss(:,:,:)
vr=vAvgww(:,:,:)
vqr=dim_avg_n(vq,0)-dim_avg_n(vr,0)
copy_VarCoords(vq(0,:,:),vqr)
printVarSummary(vqr)
;************************************************
;ttest
;************************************************
siglvl=0.2
pre_high_ave=dim_avg_n_Wrap(vq,0)
pre_low_ave =dim_avg_n_Wrap(vr ,0)
pre_high_var=dim_variance_n(vq,0)
pre_low_var =dim_variance_n(vr ,0)
t1=dim_num_n(.not.ismissing(vq),0)
t2=dim_num_n(.not.ismissing(vr),0)
iflag = False
pro = ttest(pre_high_ave,pre_high_var,t1, pre_low_ave,pre_low_var,t2,iflag,False)
copy_VarMeta(vq(0,:,:),pro)
printVarSummary(pro)
;************************************************
; plotting parameters
;************************************************
wks = gsn_open_wks("ps","hecheng-precip")
;gsn_define_colormap(wks,"ViBlGrWhYeOrRe") ; choose colormap
gsn_define_colormap(wks,"GMT_polar")
res = True
res@cnInfoLabelOn = False
res@cnFillOn = True
res@cnLinesOn=False
res@gsnSpreadColors = True
res@lbLabelBarOn = True
res@lbOrientation        = "Vertical"
res@tiMainString = ""
res@gsnRightString = "mm"
res@gsnLeftString=""
res@cnLevelSelectionMode = "ManualLevels"
res@cnMinLevelValF = -100.
res@cnMaxLevelValF = 100.
res@cnLevelSpacingF = 20.
res@mpCenterLonF = 180
res@mpMinLonF          = 20           ; choose a subregion
res@mpMaxLonF          = 200
res@mpMinLatF          = -50          ; choose a subregion
res@mpMaxLatF          = 70
res@vpHeightF = 0.30        ; Changes the aspect ratio
res@vpWidthF  = 0.9
res@vpXF      = 0.10        ; change start locations
res@vpYF      = 0.75
res@mpGeophysicalLineThicknessF = 2   ;修改陆地轮廓线加粗
res@gsnDraw = False
res@gsnFrame = False
plot1 = gsn_csm_contour_map_ce(wks,vqr,res)
res2 = True
res2@gsnMaximize           = True
res2@lbOrientation        = "Vertical"
res2@gsnLeftString = ""
res2@cnLinesOn             = True         ; turn off contour lines
res2@cnLineLabelsOn        = True          ; turn off contour line labels
res2@cnInfoLabelOn         = True
res2@cnFillColor         = "black"
res2@cnFillOpacityF    = 1.0
res2@cnFillScaleF        = 0.8         ; add extra density
res2@gsnDraw         = False                      ; do not draw  
res2@gsnFrame        = False
plot2 = gsn_csm_contour(wks,pro,res2)
plot2=ShadeLtContour(plot2,0.05,17)
  overlay(plot1,plot2)
  draw(plot1)
  frame(wks)
end

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-10 13:58:58 | 显示全部楼层
{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-1-8 22:01:01 | 显示全部楼层
请问楼主解决了吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-2-26 18:13:25 | 显示全部楼层

我后来没有用函数,直接带公式计算的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-24 10:52:11 | 显示全部楼层
楼主的siglv1取的是0.2,要想通过0.05显著性水平,是不是该取0.05呢?~
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表