爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 31672|回复: 23

[作图] NCL对变量场相关系数的显著性检验及打点处理问题

[复制链接]

新浪微博达人勋

发表于 2017-10-17 18:14:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 逝风丝痕 于 2017-10-17 18:17 编辑

各位大神前辈,本人用NCL处理来自NCEP再分析资料air.mon.mean.nc(1948-2016)数据,目的是为了求得500hPa高度多年全球气温场与时间的相关性(即气候趋势系数),并做显著性检验。
问题1:如图所示,打点区域只显示在颜色较浅(且大部分为负值区),感觉很怪
       2:在用student_函数进行检验后采用where函数返回通过显著性的相关系数值(已查明通过检验的概率值p与对应的相关系数值Rxt下标相同),未通过的以缺失值返回,这里查明已通过的Rxt,即Rxt_test的最大值为0.236861,最小值为-0.2366571。即在最大值与最小值之间的值是通过显著性检验的。是否因为这个原因导致问题1的发生
       3:2的问题是否由于相关性的计算问题导致的
       4:希望与各位交流一下其他显著性检验方法与打点技巧。
感谢各位不吝赐教~~~
脚本:
begin
  lats = -90
  latn = 90
  lev = 500
  yrstrt = 1948
  yrlast = 2016
  ymstrt = yrstrt * 100 + 1
  ymlast = yrlast * 100 + 12
  year = ispan(yrstrt, yrlast, 1)
  f = addfile("./bdshare/data/air.mon.mean.nc", "r")

  time = f->time ;读取日期
  YYYMM = cd_calendar(time, -1) ;转成公历日期
  rec_s = ind(ymstrt.eq.YYYMM) ;开始日期的记录号,对应着1948年01月
  rec_e = ind(ymlast.eq.YYYMM) ;结束日期的记录号,对应着2016年12月
  tas = f->air(rec_s:rec_e,{lev},{lats:latn},:) ;1948年01月至2016年12月时段的资料
  tas_ann = month_to_annual(tas, 1)
  tasx = tas_ann({lat|lats:latn},lon|:,year|:)


  Rxt = escorc(year, tasx);求变量场与时间的相关,即气候趋势系数Rxt
  Rxt!0 = "lat"
  Rxt&lat = tasx&lat
  Rxt!1= "lon"
  Rxt&lon = tasx&lon

  ;显著性检验
  n = dimsizes(year)
  df = n-2
  t = Rxt*sqrt((n-2)/(1-Rxt^2)) ;t检验
  p = student_t(t, df) ;两侧student-t分布概率值
  psig = 0.05
  copy_VarMeta(Rxt(:,:), p(:,:))


  wks = gsn_open_wks("png", "tas-ann-time")
  gsn_define_colormap(wks, "GMT_panoply")

  res = True
  res@gsnDraw = False
  res@gsnFrame = False
  res@gsnAddCyclic = True
  res@cnFillOn = True
  res@pmTitleDisplayMode = "Always"
  res@pmTickMarkDisplayMode = "Always" ;坐标标签上添加度符号
  res@gsnLeftString = ""
  res@gsnRightString = ""
  res@cnLevelSelectionMode = "ExplicitLevels"
  plot = gsn_csm_contour_map(wks, Rxt, res)

  sres                             = True                                                           ; set up a second resource list
  sres@gsnDraw            = False                                                          ; do not draw the plot
  sres@gsnFrame           = False                                                          ; do not advance the frame
  sres@cnLineLabelsOn  = False                                                          ; do not use line labels
  sres@cnLinesOn          = False                                                          ; do not draw contour lines
  sres@cnInfoLabelOn    = False
  sres@cnFillOn              = False                                                           ; color fill
  sres@lbLabelBarOn      = False
  sres@cnInfoLabelOn    = False

  sres@cnFillDotSizeF  = 0.005

  opt = True
  opt@gsnShadeFillType = "pattern"
  opt@gsnShadeMid     = 17

  Rxt_test = where(p.ge.0.05, Rxt, Rxt@_FillValue)
  copy_VarMeta(Rxt(:,:), Rxt_test(:,:))
  printVarSummary(Rxt_test)

  Rxt_max = max(Rxt_test)
  Rxt_min = min(Rxt_test)

  plot1                = gsn_csm_contour(wks,Rxt_test,sres)
  plot1                = gsn_contour_shade(plot1,Rxt_min,Rxt_max,opt)

  overlay(plot,plot1)
  draw(plot)
  frame(wks)
end

图:

                               
登录/注册后可看大图


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

新浪微博达人勋

发表于 2018-10-5 16:23:10 | 显示全部楼层
Rxt_test = where(p.ge.0.05, Rxt, Rxt@_FillValue),这里应该是p.le.0.05
密码修改失败请联系微信:mofangbao
回复 支持 5 反对 1

使用道具 举报

新浪微博达人勋

发表于 2017-10-18 06:59:50 | 显示全部楼层
相关系数计算有问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-10-18 12:36:10 | 显示全部楼层
weiyuntao 发表于 2017-10-18 06:59
相关系数计算有问题

还请指教需要怎样改?是按照官网给出的例子:x(N),y(K,L,N)作的相关,后面我重新给时间序列单独定义并附上corrdinates后,即x(N),结果还是和以前一样
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-22 06:38:51 | 显示全部楼层
过来学习知识
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-24 10:24:05 | 显示全部楼层
路过帮顶一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-24 12:07:41 | 显示全部楼层
我以前做的时候通常把相关系数场取一下绝对值,在做检验,这样就把正负都包进去啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-25 19:22:01 | 显示全部楼层
mark学习{:5_213:}{:5_213:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-7-20 11:07:24 | 显示全部楼层
WLT打点一日游。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-8-15 10:08:15 | 显示全部楼层
刚好要做差值检验,学习一下
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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