爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8128|回复: 7

[其他] 【已解决】求助T检验的结果叠加画图出问题

[复制链接]

新浪微博达人勋

发表于 2016-8-25 09:25:33 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 潇潇 于 2016-8-29 09:30 编辑

已通过SVD选出了≥0.5倍方差和≤0.5倍方差的典型年份,将两者相减,并做T检验。结果就出问题了,T检验的结果和原图叠加不到一起,求助。脚本如下:
latS     = -30               
  latN     =  30
  lonL     =   0
  lonR     = 360

  nf_olr     = addfile(file_olr,"r")
  olrx = nf_olr->olr(:,:,:)
  olr   = olrx(time|:,{lat|latS:latN},{lon|lonL:lonR})
printVarSummary(olr)

leftb=new((/6,25,144/),"float")
   leftb(0,:,:) =olr(1,:,:)
   leftb(1,:,:) =olr(12,:,:)
   leftb(2,:,:) =olr(17,:,:)
   leftb(3,:,:) =olr(20,:,:)
   leftb(4,:,:) =olr(27,:,:)
   leftb(5,:,:) =olr(32,:,:)
   zleft=dim_avg_n_Wrap(leftb,0)


   lefta=new((/5,25,144/),"float")
   lefta(0,:,:) =olr(13,:,:)
   lefta(1,:,:) =olr(19,:,:)
   lefta(2,:,:) =olr(26,:,:)
   lefta(3,:,:) =olr(31,:,:)
   lefta(4,:,:) =olr(33,:,:)
   fleft=dim_avg_n_Wrap(lefta,0)

  left=zleft-fleft
  copy_VarCoords(zleft,left)

    Var1 = dim_variance_n_Wrap(leftb,0)
    Var2 = dim_variance_n_Wrap(lefta,0)
    s1=dimsizes(leftb&lat)*dimsizes(leftb&lon)
    s2=dimsizes(lefta&lat)*dimsizes(lefta&lon)
    sigr = 0.05
    iflag   = False
    prob = ttest(zleft,Var1,s1,fleft,Var2,s2,iflag,False)
    printVarSummary(prob)
        
wks = gsn_open_wks("pdf","olrleft1")
  gsn_define_colormap(wks,"NCV_blu_red")

  res                     = True
  res@gsnFrame            = False           ; don't advance frame
  res@cnInfoLabelOn       = False           ; turn off cn info label 等高线标签
  res@tiMainString            = "The first mode of olr"
  res@tiMainFont = 30
  res@tiMainFontHeightF = 0.02
  res@mpMinLatF         = -30
  res@mpMaxLatF        = 30
  res@mpMinLonF         = 0
  res@mpMaxLonF        = 360
  res@mpCenterLonF = 180
  res@cnFillOn            = True           
  res@cnLinesOn     = False         
  res@cnLevelSelectionMode = "ManualLevels"     
  res@cnFillColors        =(/32,35,38,41,44,47,50,53,56,59,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,118,119,121,140,144,150,153,157,160,163,167,170,173,177,180,183,187,190,193,197,200,203,207,210,213,217,220,223,227,230,233,237,240,243/)
  res@cnMinLevelValF       = -3000             ; set min contour level
  res@cnMaxLevelValF       =  3000              ; set max contour level
  res@cnLevelSpacingF      =  100              ; set contour spacing
  res@gsnMajorLatSpacing = 10
  res@gsnMajorLonSpacing = 60
  res@tmXBLabelFont = 30
  res@tmYLLabelFont = 30
  res@gsnSpreadColors     = True           
  res@gsnAddCyclic = False
  res@gsnMaximize = False
  res@tmXBLabelFontHeightF = 0.02
  res@tmYLLabelFontHeightF = 0.02
  res@cnMonoLevelFlag = True
  res@mpShapeMode = "FreeAspect"
  res@vpHeightF = 0.4                 
  res@vpWidthF = 0.81
  res@lbLabelBarOn = True      
  res@lbAutoManage          = False             ; we control label bar
  res@pmLabelBarDisplayMode = "Always"          ; turns on label bar
  res@lbOrientation         = "Horizontal"       ; ncl default is vertical
  res@pmLabelBarSide        = "Bottom"          ; default is right
  res@lbLabelAutoStride     = True              ; auto stride
  res@pmLabelBarWidthF      = 0.8              ; default is shorter
  res@pmLabelBarHeightF     = 0.16            ; default is taller
  res@lbLabelFontHeightF    = 0.02             ; default is HUGE
  res@lbPerimOn             = False             ; default has box  
  res@lbLabelFont = 30

   plot1 = gsn_csm_contour_map_ce(wks,left,res)

  res2 = True
  res2@gsnFrame = False
  res2@cnFillOn = True
  res@cnLinesOn = False
  res2@cnLineLabelsOn = False
  res2@cnInfoLabelOn = False
  res2@lbLabelBarOn = False
  res2@cnMonoFillPattern = False
  res2@cnLevelSelectionMode = "ExplicitLevels"
  res2@cnLevels = (/0.05/)                       ;; set to significance level
  res2@cnFillPatterns = (/17,-1/)
  res2@cnFillColors = (/1,0/)
  res2@gsnLeftString = ""
  res2@cnInfoLabelString =""
  res2@gsnRightString =""
  res2@gsnLeftString =""
  res2@vpHeightF = 0.4                  ; change aspect ratio of plot
  res2@vpWidthF = 0.81
  plot2 = gsn_csm_contour(wks,prob,res2)
  overlay(plot1,plot2)


QQ图片20160825093126.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-8 16:26:52 | 显示全部楼层
我也是!把需要的变量加上经纬度信息就好了:
tval_hist!0 = "lat"
tval_hist@long_name  = "lat"
tval_hist@units      = "degrees_north"
tval_hist&lat        = lat
tval_hist!1 = "lon"
tval_hist@long_name  = "lon"
tval_hist@units      = "degrees_east"
tval_hist&lon        = lon
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2016-8-26 11:35:24 | 显示全部楼层
  res@gsnDraw                 = False
  res@gsnFrame                = False
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-8-29 09:29:50 | 显示全部楼层
freekiller 发表于 2016-8-26 11:35
res@gsnDraw                 = False
  res@gsnFrame                = False

谢谢! 其实主要是得出显著性检验的值没有经纬度信息。不过你说的这个确实也存在问题,综合了一下,就解决了!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-8-29 10:58:01 | 显示全部楼层
多谢楼主分享{:5_213:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-14 11:05:15 | 显示全部楼层
楼主能不能分享一下计算svd的ncl脚本呀,最近一直在算,可惜Fortran程序看不太明白,多谢了{:eb511:}{:eb511:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-22 18:38:11 | 显示全部楼层
想请教一下你做SVD的时候有没有对原始场做标准化处理呀???
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-12-3 11:21:55 | 显示全部楼层
大佬,您好,我想请问一下ttest中的 iflag 这一项,什么时候设置False,什么时候设置为True,官网上说具有相同的总体方差,设置为False,具有不同的总体方差,设置为True,但我论坛上的例子好像都是设置的False。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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