[ncl-talk] Taylor diagram

Sri Nandini snandini at marum.de
Tue Jun 6 08:05:28 MDT 2017


Hello

I am plotting multiple variables in Taylor diagram between model - observations.
There are no errors but the 3rd variable is not plotting.
I have T2M and precip at same resolution [360 720] but my SLP is [192 288]
Now i have weighted it and performed taylor_stats, but it gives missing values. Part of my script for the SLP is below:

;===========================================================================================PSL
f= addfile("SLP_PHIS_Z3cam5.nc", "r") ;

 TIME   = f->time
  YYYY   = cd_calendar(TIME,-1)/100                 ; entire file
  iYYYY  = ind(YYYY461.ge.yrStrt .and. YYYY461.le.yrLast)
slpp    = f->PSL(iYYYY,:,:)
printVarSummary(slpp)                                ; (time, lat,lon)
 pm1 = slpp(:,::-1,:)                          ; make latitudes monotonically increasing (NCL syntax)
printVarSummary(pm1)                                ; (time, lat,lon)
slp    = lonFlip( slpp )
  s3w=month_to_annual(slp,1)                                           
   s3Clm = dim_avg_n_Wrap( s3w, 0)
   printVarSummary(s3Clm)                 ; (lat,lon)
   printMinMax(s3Clm, 0)        
;===================================================================================
f6 = addfile ("slp.mon.mean.nc", "r")
  TIME46   = f6->time
  YYYY46   = cd_calendar(TIME46,-1)/100                 ; entire file
  iYYYY46  = ind(YYYY46.ge.yrStrt .and. YYYY46.le.yrLast)
  psl    = f6->slp(iYYYY46,:,:)
printVarSummary(psl)                                ; (time, lat,lon)
S3 = linint2_Wrap(psl&lon, psl&lat, psl, True,  pm1&lon, pm1&lat, 0)
 PSL=month_to_annual(S3,1)                           
   pslClm = dim_avg_n_Wrap( PSL, 0)
   printVarSummary(pslClm)                 ; (lat,lon)
   printMinMax(pslClm, 0)        
;==================================================================
;Taylor diagram calculations
;===================================================================
 case      = (/ "CESM CAM5"/) 
  nCase     = dimsizes(case )                 ; # of Cases [Cases]

var       = (/ "T2M(Wilmott)", "PRECIP(Wilmott)","SLP(NCEP)"/)
  nVar      = dimsizes(var)                   ; # of Variables
  SEASONS      = (/ "ANN" /)
  nSeason     = dimsizes( SEASONS )
;==================================================================
; create weights:  sqrt(cos(lat))   [or sqrt(gw) ]
; =================================================================
  rad    = 4.*atan(1.)/180.
 lat = f->lat
   if (typeof(lat).eq."double") then
       clat = sqrt( cos(rad*tofloat(lat)) )
   else
       clat = sqrt( cos(rad*lat) )
   end if
   copy_VarCoords(lat, clat) ; contributed
   printVarSummary(clat)

;==============================Taylorstats=============
stat_taylor     = taylor_stats(t4Clm, aClm, clat, 0)

stat_taylor2     = taylor_stats(p3Clm, pClm, clat, 0)
;===============Perform another weighting for the SLP since it is on a different resolution 

  rad    = 4.*atan(1.)/180.
 lat1 = f88->lat
   if (typeof(lat1).eq."double") then
       clat1 = sqrt( cos(rad*tofloat(lat1)) )
   else
       clat1 = sqrt( cos(rad*lat1) )
   end if
   copy_VarCoords(lat1, clat1) ; contributed
   printVarSummary(clat1)
w=clat1

stat_taylor3     = taylor_stats(s3Clm, pslClm, w, 0)
print(stat_taylor3)

CA_cc = (/stat_taylor(0), stat_taylor2(0), stat_taylor3(0)/) ; pattern_cor of t2CLM and of p1CLM and SLP
CA_rat = (/stat_taylor(1), stat_taylor2(1), stat_taylor3(1)/) ; ratio of t2CLM and of p1CLM and SLP 
CA_bias = (/stat_taylor(2), stat_taylor2(2), stat_taylor3(2)/) ; bias of t2CLM and of p1CLM and SLP

;**********************************
; Put the ratios and pattern correlations into
; arrays for plotting
;**********************************
; 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)  )
  bias       = new ((/nCase, nVar/), typeof(CA_cc)  )

ratio(0,:) = CA_rat 
cc(0,:)    = CA_cc 
bias(0,:)  = CA_bias 

print(bias)
print(cc)  
print(ratio)
;================================
; PLOTS
;================================
  
res   = True                           ; default taylor diagram
        
  res at Markers      = (/16,16,16/)               ; make all solid fill
  res at Colors       = (/"red","blue","black"/)        
  res at varLabels    = var
  res at caseLabels   = case
res at varLabelsYloc = 0.6              ; Move location of variable labels ;;[default 0.45]
 res at caseLabelsFontHeightF = 0.14       ; make slight larger   [default=0.12 ]
 res at varLabelsFontHeightF  = 0.011      ; make slight smaller  [default=0.013]
 res at stnRad = (/0.5, 1.25 /) ; 
res at tiMainString = "Annual Taylor Diagram"
  wks   = gsn_open_wks("png","TaylorCAM5all")        ; send graphics to PNG file
  plot  = taylor_diagram_cam(wks,ratio,cc,bias,res)



 end



Did i misunderstand and that all variables plotted should be of same resolution?
Would deeply appreciate

Variable: stat_taylor3
Type: float
Total Size: 12 bytes
            3 values
Number of Dimensions: 1
Dimensions and sizes:    [3]
Coordinates: 
Number Of Attributes: 2
  _FillValue :    9.96921e+36
  long_name :    0-pattern_cor; 1-ratio; 2-bias (%)
(0)    -9.96921e+36
(1)    nan
(2)    -nan


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170606/bd1f2f70/attachment.html 


More information about the ncl-talk mailing list