请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13155|回复: 2

合成检验出现异常

[复制链接]

新浪微博达人勋

发表于 2020-11-19 16:35:44 | 显示全部楼层 |阅读模式
1金钱
感觉过检验区域比较异常,不知道问题出现在哪里?

uwnd.png

001.ncl

3.46 KB, 下载次数: 6, 下载积分: 金钱 -5

所用程序

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

新浪微博达人勋

 楼主| 发表于 2020-11-19 16:37:50 | 显示全部楼层
  1. begin
  2.   f    = addfile ("uwnd.mon.mean.nc", "r")
  3.   it_s = 196010
  4.   it_e = 200110
  5.   TIME   = f->time
  6.   yyyy = cd_calendar(TIME,-1)
  7.   rec_s = ind(it_s.eq.yyyy)
  8.   rec_e = ind(it_e.eq.yyyy)
  9.   slp_base = f->uwnd(:251,{995},:,:)
  10.   ;slp_base = f->slp(:257,{70:90},:)
  11.   slp_10 = f->uwnd(rec_s:rec_e:12,{995},:,:)
  12.     dims = dimsizes(slp_10)
  13.   slp_all =     new((/6,dims(0),dims(1),dims(2)/),typeof(slp_10))
  14.   slp_all(0,:,:,:) = slp_10
  15.   slp_all(1,:,:,:) = f->uwnd(rec_s+1:rec_e+1:12,{995},:,:)
  16.   slp_all(2,:,:,:) = f->uwnd(rec_s+2:rec_e+2:12,{995},:,:)
  17.   slp_all(3,:,:,:) = f->uwnd(rec_s+3:rec_e+3:12,{995},:,:)
  18.   slp_all(4,:,:,:) = f->uwnd(rec_s+4:rec_e+4:12,{995},:,:)
  19.   slp_all(5,:,:,:) = f->uwnd(rec_s+5:rec_e+5:12,{995},:,:)
  20.   ;slp = (slp_10+slp_11+slp_12+slp_01+slp_02+slp_03)/6
  21.   slp = reshape(slp_all,(/6*dims(0),dims(1),dims(2)/))
  22.   copy_VarMeta(slp_base, slp)
  23.   printVarSummary(slp)

  24.   hyear=(/1961,1967,1968,1988,1992,1994,1995/)-1960             ;
  25.   lyear=(/1969,1976,1982,1984,1989,1993,1998,1999,2000/)-1960
  26.   
  27.   high=new((/7,73,144/),"float")
  28.   low=new((/9,73,144/),"float")
  29.   
  30. do i=0,6  
  31. high(i,:,:) = dim_avg_n_Wrap(slp(hyear(i)*6:hyear(i)*6+5,:,:),0)
  32. end do

  33. do j=0,8
  34. low(j,:,:)=dim_avg_n_Wrap(slp(lyear(i)*6:lyear(i)*6+5,:,:),0)
  35. end do

  36. high1=dim_avg_n_Wrap(high,0)
  37. low1=dim_avg_n_Wrap(low,0)

  38. ;x_end = high1-low1
  39. x_end = low1 - high1
  40. ;print(x_end)

  41. copy_VarMeta(high1, x_end)
  42. printVarSummary(x_end)





  43. ;t=(Xn-Yn)/(sqrt(((n1-1)*s1^2+(n2-1)*s2^2)/(n1+n2-2))*sqrt(1/n1+1/n2))   
  44. n1       = 7
  45. n2       = 9               
  46. df       = n1+n2-2        
  47. ;ts合成差值的显著性检验
  48. Xn_ts       =high1;样本均值
  49. Yn_ts       =low1 ;样本均值
  50. s1_ts       =dim_variance_n(high(:,:,:),0) ;样本方差
  51. s2_ts       =dim_variance_n(low(:,:,:),0)  ;样本方差
  52. s1s2_ts    =(n1-1)*s1_ts+(n2-1)*s2_ts  
  53. t_ts       =(Xn_ts-Yn_ts)/(sqrt(s1s2_ts/df)*sqrt(1.0/n1+1.0/n2))   
  54. prob_ts_diff    = student_t(t_ts,df)
  55. copy_VarMeta(slp_base(0,:,:),prob_ts_diff)
  56. printVarSummary(prob_ts_diff)
  57. printMinMax(prob_ts_diff,True)



  58. wks  = gsn_open_wks("png","uwnd")   
  59.   gsn_define_colormap(wks,"hotcold_18lev")
  60.   res                     = True     
  61.    res@gsnDraw               = False
  62.    res@gsnFrame              = False      
  63.   res@gsnPolar            = "NH"
  64.   res@cnFillOn            = True         
  65.   res@mpFillOn = False
  66.   res@cnLevelSelectionMode = "ExplicitLevels"
  67.   res@cnLevels = (/-1,-0.5,0,0.5,1/)
  68.   res@cnFillColors = (/6,7,10,13,14,15/)
  69.   res@mpMinLatF  = 65.
  70.   res@mpMaxLatF  = 90.
  71.   res@mpCenterLonF = -90
  72.   
  73.   res@tiMainString    = "" ;主标题空白
  74.   res@gsnRightString  = "" ;"unit: K/decade"右上方字符空白
  75.   res@gsnLeftString   = ""   
  76.    
  77.   base = gsn_csm_contour_map_polar(wks, x_end, res)

  78.      res2 = True
  79.    res2@gsnDraw = False;
  80.    res2@gsnFrame =False;
  81.    
  82.    res2@cnFillOn = True
  83.    res2@cnLinesOn = False;
  84.    res2@cnLineLabelsOn = False
  85.    res2@cnInfoLabelOn = False;
  86.    res2@lbLabelBarOn = False;
  87.    res2@cnMonoFillPattern = False
  88.    res2@cnLevelSelectionMode ="ExplicitLevels"
  89.    res2@cnLevels = (/0.01/);
  90.    res2@cnFillPatterns = (/17,-1/);
  91.    res2@cnFillColors = (/1,-1/);
  92.    res2@cnFillDotSizeF  = 0.003
  93.    res2@gsnLeftString = ""
  94.    res2@tiMainString    = ""
  95.    res2@gsnRightString  = ""
  96.    
  97.    plot = gsn_csm_contour(wks,prob_ts_diff,res2)

  98.    overlay(base, plot)
  99.    draw(base)
  100.    frame(wks)









































  101. end
复制代码
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-11-23 21:00:31 | 显示全部楼层
prob_ts_diff    = student_t(t_ts,df)
貌似应该对prob_ts_diff 做一个筛选,比如其值小于0.05才通过了95%的显著性检验
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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