爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13336|回复: 6

NCL做相关,阴影图叠加相关检验

[复制链接]

新浪微博达人勋

发表于 2015-4-14 16:59:53 | 显示全部楼层 |阅读模式
GrADS
系统平台:
问题截图: -
问题概况: NCL填色图叠加通过信度检验的打点图
我看过提问的智慧: 看过
自己思考时长(天): 1

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

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

x
本帖最后由 千里草 于 2015-4-14 17:06 编辑

NCL新手,请教大神,关于用NCL做相关分析,阴影图可以,通过检验的区域打点也可以,如何将这两种图叠加在一起?即阴影图上通过检验的区域打点。做回归分析时,用overlay命令会,做相关只有相关系数一个值,就不会变通了。顺便问一下比较弱智的问题,NCL中如何去除零线,填色图如何使零附近比较小的值不上色?

填色图

填色图
填色图

通过信度的打点图

通过信度的打点图
打点图

合成后(GrADS做的参考图,数据不同)

合成后(GrADS做的参考图,数据不同)
合成图(GrADS作,仅参考)
                                                                                          



附上NCL程序

load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
begin
;************************************************
; open file and read in variable
;***********************************************
    latS   =  -40.
    latN   =  40.
    lonL   = 90.
    lonR   =  180.

        ssti             =      cbinread("F:\sst\exsst_eara\regress\B_rain.dat",(/33/),"float")
        f                =      addfile("/cygdrive/f/OLR/olr.mon.mean.nc","r")        
        time             =      cd_calendar(f->time(67:462),-1)
        sic              =      short2flt(f->olr(67:462,:,:))
        Clmsic           =      clmMonTLL(sic)        
        Anomsic          =      calcMonAnomTLL(sic,Clmsic)
        
        ;seasonal average
        sic_JJA          =      month_to_season (Anomsic,"JJA")
        olr              =      sic_JJA(:,:,:)
;   printVarSummary(sic_JJA)
;   return
        
  
ccr = escorc(ssti,olr(lat|:,lon|:,time|:))
copy_VarCoords_1(olr(lat|:,lon|:,time|:),ccr)        
;************************************************
; plot the correlations
;************************************************
  wks  = gsn_open_wks("ps","ssti_corr_JJA_olr")              ; open a ps plot
  gsn_define_colormap(wks,"BlWhRe")              ; choose colormap

  res                      = True                ; make plot mods
  res@cnFillOn             = True                ; turn on color
  res@gsnDraw              = True         

  res@cnLinesOn            = True              ; turn off contour lines
  res@gsnContourNegLineDashPattern = 1         
  res@cnLevelSelectionMode = "ManualLevels"      ; manually set cn levels
  res@cnMinLevelValF       = -0.6                 ; min level
  res@cnMaxLevelValF       =  0.6                 ; max level
  res@cnLevelSpacingF      = .2                  ; contour level spacing
  res@cnLineLabelsOn       = True   
  res@cnSmoothingOn        = True
  res@gsnAddCyclic         = False
  res@mpMinLatF            = -40.      ; range to zoom in on
  res@mpMaxLatF            =  40.
  res@mpMinLonF            =  90.
  res@mpMaxLonF            = 180.
  res@tiMainString         = "SST Index Correlations at OLR"
  plot = gsn_csm_contour_map(wks,ccr,res)
  
opt = True
opt@gsnShadeFillType = "pattern"      ; pattern fill  
opt@gsnShadeLow = 17
opt@gsnShadeHigh = 17                        ; use pattern #17         
opt@cnLineLabelsOn        = True   

plot1 = gsn_contour_shade(plot,-0.3,0.3,opt)  
; overlay(plot,plot1)
  draw(plot1)
  frame(wks)
;************************************************
end


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

新浪微博达人勋

发表于 2015-4-17 18:19:17 | 显示全部楼层

回帖奖励 +1 金钱

第一个问题我是这样处理的:打点区域画我计算的t值(变量p),绘图命令就下面四句话
plot1 = gsn_csm_contour_map(wks,x(:,:),res1)
plota = gsn_csm_contour(wks,p(:,:),rres)
plota = ShadeGtContour(plota,2.035,17)              ;t>2.035通过95%信度检验
overlay(plot1,plota)
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 1

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2015-4-18 10:47:13 | 显示全部楼层
泌泌 发表于 2015-4-17 18:19
第一个问题我是这样处理的:打点区域画我计算的t值(变量p),绘图命令就下面四句话
plot1 = gsn_csm_contou ...

这个是对的,关键我做相关分析,只有相关系数这一个数,即plot1 = gsn_csm_contour_map(wks,x(:,:),res1)
plota = gsn_csm_contour(wks,p(:,:),rres)中x场和p场是同一个量(相关系数,ps:相关系数通过查表来检验是否通过检验),如果做回归分析的话,你这样是可行的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-18 18:38:54 | 显示全部楼层
千里草 发表于 2015-4-18 10:47
这个是对的,关键我做相关分析,只有相关系数这一个数,即plot1 = gsn_csm_contour_map(wks,x(:,:),res1) ...

把相关系数画两次然后overlay。第二次用gsn_contour_shade。不画零线可以  res@cnLevelSelectionMode = "ExplicitLevels"   res@cnLevels = (/-0.2,-0.1,0.1,0.2/)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-20 09:41:33 | 显示全部楼层
0708011 发表于 2015-4-18 18:38
把相关系数画两次然后overlay。第二次用gsn_contour_shade。不画零线可以  res@cnLevelSelectionMode = " ...

先谢谢你的回复!
我第一次用的是 plot = gsn_csm_contour_map(wks,ccr,res) ;
第二次用的是 plot1 = gsn_contour_shade(plot,-0.3,0.3,opt);
最后 overlay(plot,plot1);结果还是不行的(和上面没有填色的图一样),而且还显示fatal提示,如图
最后想说的是我是想把填色图零值附近的颜色设置成空白色.....
无论怎样,谢谢了!
RP(~CIF7`@PFLQG%`$7`AZ7.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-20 10:06:38 | 显示全部楼层
标记过信度的区域:可以画两次再overlay,也可以用gsn_contour_shade
0附近设成白色:可以自己设定等值线和对应的颜色,也可以用white-in-middle的colorbar
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-20 10:59:48 | 显示全部楼层
井中月 发表于 2015-4-20 10:06
标记过信度的区域:可以画两次再overlay,也可以用gsn_contour_shade
0附近设成白色:可以自己设定等值线 ...

谢谢你的提示,终于有结果了!
plot1 = gsn_csm_contour(wks,ccr,res)
plot1 = gsn_contour_shade(plot,-0.3,0.3,opt)
overlay(plot,plot1)
7)6KIR2}CD`2F[7{8(9N[%G.png
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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