关于Taylor图NCL官网有代码的,懒得每次都找一遍,便再此记录下嘻嘻。
首先需要ratio和cc两个值,也就是方差之比和相关性系数。这里面由于站点数据缺少15:00数据,所以我先导出来了wrf.csv,手动筛选了下数据(别问为什么不用if直接循环,问就是懒得动脑子,Excel不香吗hhhhh。。。PS:等有空了会再出一个脚本纯享版~最近没空886~)
提前导入taylor_diagram.ncl到目录下,再load。官网有,可以自己下载。我这里也附上吧。
接下来上关键代码:
;**********************************
; taylor_4.ncl
;**********************************
;
; These files are loaded by default in NCL V6.2.0 and newer
; load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
; load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
;
; These files still have to be loaded manually
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 = (/ "QHD", "BD" ,"DL", "BZ" ,"YT", "CZ","TS", "TJ" /)
nCase = dimsizes(case) ; # of Cases [Cases]
; variables compared
var = (/ "SLP","Tempreture" ,"Wind speed","Wind direction" /)
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" /)
;ratio:方差之比
;cc:相关系数
; "Case A"
CA_ratio = (/1.01,1.107,1.001,0.955/)
CA_cc = (/0.833, 0.945,0.744, 0.558/)
; "Case B"
CB_ratio = (/0.968, 0.937, 1.044, 1.085/)
CB_cc = (/0.969, 0.86, 0.822, 0.644/)
CC_ratio = (/1.044, 0.948, 0.803, 1.075/)
CC_cc = (/0.965, 0.914, 0.488, 0.781/)
; "Case B"
CD_cc = (/0.816, 0.701, 0.628, 0.802/)
CD_ratio = (/1.115, 0.931, 0.957, 0.848/)
CE_ratio = (/1.266, 1.204, 0.925, 1.338/)
CE_cc = (/0.958, 0.889, 0.504, 0.631/)
; "Case B"
CF_ratio = (/1.039, 1.157, 0.929, 0.885/)
CF_cc = (/0.973, 0.900, 0.822, 0.718/)
CG_cc = (/0.982, 0.914, 0.652, 0.827/)
CG_ratio = (/1.181, 1.028, 0.917, 1.079/)
; "Case B"
CH_ratio = (/1.133, 0.820, 1.099, 1.167/)
CH_cc = (/0.922, 0.732, 0.707, 0.738/)
; 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
ratio(2,:) = CC_ratio
ratio(3,:) = CD_ratio
ratio(4,:) = CE_ratio
ratio(5,:) = CF_ratio
ratio(6,:) = CG_ratio
ratio(7,:) = CH_ratio
cc(0,:) = CA_cc
cc(1,:) = CB_cc
cc(2,:) = CC_cc
cc(3,:) = CD_cc
cc(4,:) = CE_cc
cc(5,:) = CF_cc
cc(6,:) = CG_cc
cc(7,:) = CH_cc
;**********************************
; create plot
;**********************************
; varSource = var +"_"+ source ; add extra info [*not* required]
ty_opt = True ; taylor diagram with options
ty_opt@Markers = (/16, 16,16, 16,16, 16,16, 16/) ; make all solid fill
ty_opt@Colors = (/"red", "blue" ,"PeachPuff", "black", "SlateBlue", \
"Khaki", "OliveDrab","BurlyWood"/)
ty_opt@varLabels = var
ty_opt@caseLabels = case
ty_opt@varLabelsYloc = 1.5 ; Move location of variable labels [default 0.45]
;ty_opt@caseLabelsYloc = 5.0
ty_opt@caseLabelsFontHeightF = 0.06 ; make slight larger [default=0.12 ]
ty_opt@varLabelsFontHeightF = 0.016 ; 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("png","taylor.000001") ; send graphics to PNG file
plot = taylor_diagram(wks,ratio,cc,ty_opt)
nc转csv不在此多叙述了,网上一大堆,需要的babe也可以联系我~