爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11014|回复: 13

[作图] NCL 画taylor 图的问题

[复制链接]
发表于 2015-1-2 06:00:16 | 显示全部楼层 |阅读模式

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

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

x
刚开始学NCL,准备用NCL画泰勒图,在官网上看到画泰勒图的脚本,但是不知道怎么把自己的文件带入这些脚本中,就比如每个case里的ratio和cc,脚本里是直接写了几个数值,如果用自己的nc文件怎么求得这些数值呢?翻了半天还是不太明白,是有脚本来求ratio和cc吗?
;**********************************
; taylor_4.ncl
;**********************************
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"   
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"   
load "./taylor_diagram.ncl"
load "./taylor_metrics_table.ncl"
;**********************************
begin
;**********************************
; Assume the following have already been computed:
;   _ratio are the ratio:  Case_Variance/Reference_Variance
;   _cc    are the cross correlation coef of Case to Reference
; In this example, these are derived for annual mean climatologies.
;**********************************

; Cases [Model]
  case      = (/ "Case A", "Case B" /)
  nCase     = dimsizes(case )                 ; # of Cases [Cases]

; variables compared
  var       = (/ "SLP","Tsfc" ,"Prc","Prc 30S-30N","LW","SW", "U300", "Guess" \
               , "RH" ,"LHFLX","TWP","CLDTOT"     ,"O3","Q" , "PBLH", "Omega" /)
  nVar      = dimsizes(var)                   ; # of Variables

; more info to be added [all are bogus]
  source    = (/ "ERA40", "ERA40","GPCP" , "GPCP", "ERS" , "ERS", "ERA40", "BOGUS" \
               , "NCEP",  "ERA40","ERA40", "NCEP", "NASA", "JMA", "JMA"  , "CAS"  /)

; "Case A"                        
  CA_ratio   = (/1.230, 0.988, 1.092, 1.172, 1.064, 0.966, 1.079, 0.781 \
                ,1.122, 1.000, 0.998, 1.321, 0.842, 0.978, 0.998, 0.811 /)
  CA_cc      = (/0.958, 0.973, 0.740, 0.743, 0.922, 0.982, 0.952, 0.433 \
                ,0.971, 0.831, 0.892, 0.659, 0.900, 0.933, 0.912, 0.633 /)

; "Case B"
  CB_ratio   = (/1.129, 0.996, 1.016, 1.134, 1.023, 0.962, 1.048, 0.852 \
                ,0.911, 0.835, 0.712, 1.122, 0.956, 0.832, 0.900, 1.311 /)
  CB_cc      = (/0.963, 0.975, 0.801, 0.814, 0.946, 0.984, 0.968, 0.647 \
                ,0.832, 0.905, 0.751, 0.822, 0.932, 0.901, 0.868, 0.697 /)

; arrays to be passed to taylor_diagram. It will calculate the x xnd y coordinates.
  ratio      = new ((/nCase, nVar/),typeof(CA_cc) )  
  cc         = new ((/nCase, nVar/),typeof(CA_cc) )

  ratio(0,:) = CA_ratio
  ratio(1,:) = CB_ratio

  cc(0,:)    = CA_cc
  cc(1,:)    = CB_cc

;**********************************
; create plot
;**********************************
  varSource = var +"_"+ source              ; add extra info [*not* required]

  ty_opt   = True                           ; taylor diagram with options
        
  ty_opt@Markers       = (/16, 16/)         ; make all solid fill
  ty_opt@Colors        = (/"red", "blue" /)         
  ty_opt@varLabels     = varSource
  ty_opt@caseLabels    = case

  ty_opt@varLabelsYloc = 1.5                ; Move location of variable labels [default 0.45]
  ty_opt@caseLabelsFontHeightF = 0.14       ; make slight larger   [default=0.12 ]
  ty_opt@varLabelsFontHeightF  = 0.011      ; make slight smaller  [default=0.013]

  ty_opt@tiMainString  = "Annual"           ; title
  ty_opt@stnRad        = (/ 0.5, 1.5 /)     ; additional standard radii
  ty_opt@ccRays        = (/ 0.6, 0.9 /)     ; correllation rays
  ty_opt@centerDiffRMS = True               ; RMS 'circles'

  wks   = gsn_open_wks("ps","taylor")
  plot  = taylor_diagram(wks,ratio,cc,ty_opt)

;**************************************************
; fill an array for a "taylor metrics table"
;**************************************************

  season    = (/ "ANN" /)
  nSeason   = dimsizes(season)

  table     = new ( (/nCase,nSeason,nVar/), typeof(ratio) )
  table(0,0,:) = CA_ratio
  table(1,0,:) = CB_ratio

  tt_opt        = True
  tt_opt@pltType= "ps"                  ; "eps" [default], "pdf", "ps"
                                         ; "png", "gif" [if you have ImageMajik 'convert']


  taylor_metrics_table("metrics", varSource, case ,season, table, tt_opt)
end
密码修改失败请联系微信:mofangbao
发表于 2015-1-2 11:19:52 | 显示全部楼层
ratio和cc是根据你所选取的模式所计算得来的数据,可以用NCL求得,也可以用excel等其他方法求得
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-1-4 06:12:30 | 显示全部楼层
likailing2008 发表于 2015-1-2 11:19
ratio和cc是根据你所选取的模式所计算得来的数据,可以用NCL求得,也可以用excel等其他方法求得

谢了,因为0点到6点没法发帖,所以一直没回复,抱歉。
密码修改失败请联系微信:mofangbao
发表于 2015-1-4 15:27:35 | 显示全部楼层
顶顶的顶顶顶顶顶顶顶顶顶顶
密码修改失败请联系微信:mofangbao
发表于 2015-1-11 20:57:00 | 显示全部楼层
likailing2008 发表于 2015-1-2 11:19
ratio和cc是根据你所选取的模式所计算得来的数据,可以用NCL求得,也可以用excel等其他方法求得

请问,求空间相关系数之前要对数据进行标准化之类的处理吗?
密码修改失败请联系微信:mofangbao
发表于 2015-1-12 10:12:21 | 显示全部楼层
天玖Y 发表于 2015-1-11 20:57
请问,求空间相关系数之前要对数据进行标准化之类的处理吗?

根据需要决定要不要标准化
密码修改失败请联系微信:mofangbao
发表于 2015-1-13 10:37:27 | 显示全部楼层
likailing2008 发表于 2015-1-12 10:12
根据需要决定要不要标准化

昂~~好的 谢谢
密码修改失败请联系微信:mofangbao
发表于 2015-11-8 19:44:42 | 显示全部楼层
_ratio 是两个模式方差的比值吗?
密码修改失败请联系微信:mofangbao
发表于 2016-12-12 14:15:40 | 显示全部楼层
观摩观摩观摩观摩观摩
密码修改失败请联系微信:mofangbao
发表于 2016-12-22 16:52:43 | 显示全部楼层
楼主问题解决了吗?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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