<div dir="ltr"><div><div><div><div>I must leave so not much time to respond.<br><br>Correlation (r) is a bounded quantity: -1 to +1.<br><br></div>[1]<br>I think the correct way to compute a mean correlation is via the Fischer z-transform<br><br>rz  = 0.5*log((1+r)/(1-r))      ; Fischer z-transform of correlations<br><br>[2]<br></div>Average the z-transformed quantities: rz_avg <br><br>[3] <br></div>Perform the inverse transform.<br><br>r_avg = tanh(rz_avg)            ;    same as =(exp(2*rz)-1)/(exp(2*rz)+1)<br><br></div>Good luck<br><div><br><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 13, 2016 at 9:15 AM, Melissa Lazenby <span dir="ltr">&lt;<a href="mailto:M.Lazenby@sussex.ac.uk" target="_blank">M.Lazenby@sussex.ac.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">Dear NCL Users   
<br>
<br>
I am wanting to create 1 plot of averaged spatial correlations.<br>
I currently have 40 global spatial correlation plots but would like to average those all out to 1 global plot with the overall average spatial correlations at each gridpoint.<br>
<br>
I am not sure whether to use the average function or to sum them up first and divide by 40.<br>
<br>
Your help would be very much appreciated.<br>
<br>
Below is the code I am trying to create this average plot from.<br>
<br>
Kindest Regards<br>
Melissa<br>
<br>
; ==============================================================<br>
; eof_1.ncl<br>
; ==============================================================<br>
<br>
load &quot;$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl&quot;<br>
load &quot;$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl&quot;<br>
load &quot;$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl&quot;<br>
<br>
begin<br>
; ==============================================================<br>
; User defined parameters that specify region of globe and<br>
; ==============================================================<br>
  latS   =  -40.<br>
  latN   =  0. <br>
  lonL   =  10.<br>
  lonR   =  60.<br>
<br>
  yrStrt = 1975<br>
  yrLast = 2004<br>
<br>
  season = &quot;DJF&quot;    ; choose Dec-Jan-Feb seasonal mean<br>
<br>
  neof   = 1        ; number of EOFs<br>
  optEOF = True       <br>
  optEOF@jopt = 0   ; This is the default; most commonly used; no need to specify.<br>
  optETS = False<br>
<br>
model = (/&quot;ACCESS1-0&quot;,&quot;ACCESS1-3&quot;,&quot;bcc-csm1-1&quot;,&quot;bcc-csm1-1-m&quot;,&quot;BNU-ESM&quot;,&quot;CanESM2&quot;,&quot;CCSM4&quot;,&quot;CESM1-BGC&quot;,&quot;CESM1-CAM5&quot;,&quot;CESM1-FASTCHEM&quot;,&quot;CESM1-WACCM&quot;,&quot;CMCC-CESM&quot;,&quot;CMCC-CM&quot;,&quot;CMCC-CMS&quot;,&quot;CNRM-CM5&quot;,&quot;CSIRO-Mk3-6-0&quot;,&quot;EC-EARTH&quot;,&quot;FGOALS-g2&quot;,&quot;GFDL-CM3&quot;,&quot;GFDL-ESM2G&quot;,&quot;GFDL-ESM2M&quot;,&quot;GISS-E2-H&quot;,&quot;GISS-E2-H-CC&quot;,&quot;GISS-E2-R&quot;,&quot;GISS-E2-R-CC&quot;,&quot;HadGEM2-AO&quot;,&quot;HadGEM2-CC&quot;,&quot;HadGEM2-ES&quot;,&quot;inmcm4&quot;,&quot;IPSL-CM5A-LR&quot;,&quot;IPSL-CM5A-MR&quot;,&quot;IPSL-CM5B-LR&quot;,&quot;MIROC5&quot;,&quot;MIROC-ESM&quot;,&quot;MIROC-ESM-CHEM&quot;,&quot;MPI-ESM-LR&quot;,&quot;MPI-ESM-MR&quot;,&quot;MPI-ESM-P&quot;,&quot;MRI-CGCM3&quot;,&quot;NorESM1-M&quot;,&quot;NorESM1-ME&quot;/)<br>
<br>
<br>
wks  = gsn_open_wks(&quot;X11&quot;,&quot;ALL_40_MMM_Eof_cor_SST&quot;)              ; specifies a plot<br>
gsn_define_colormap(wks,&quot;ncl_default&quot;)  ; choose color map<br>
plot = new (dimsizes(model),&quot;graphic&quot;)<br>
do gg = 0,dimsizes(model)-1<br>
    <br>
; read in model data<br>
<br>
  in=addfile(&quot;/mnt/geog/ml382/melphd/eof_sicz/eof90models/pr_&quot;+model(gg)+&quot;_eof_DJF_Anom.nc&quot;,&quot;r&quot;) 
<br>
 <br>
  lat    = in-&gt;lat<br>
  lon    = in-&gt;lon<br>
  time   = in-&gt;time<br>
  YYYY   = cd_calendar(time,-1)/100                 ; entire file<br>
  iYYYY  = ind(YYYY.ge.yrStrt .and. YYYY.le.yrLast)<br>
 <br>
  if((gg.eq.19) .or. (gg.eq.20)) then   ;(gg.eq.17) .or. <br>
        PR = in-&gt;pr(iYYYY,:,:)<br>
    else<br>
  PR    = in-&gt;pr(iYYYY,0,:,:)<br>
  end if<br>
; <br>
  nyrs   = dimsizes(PR&amp;time)<br>
; =================================================================<br>
; normalize data at each gridpoint by local standard deviation at each grid pt<br>
; =================================================================<br>
  PR = dim_standardize_n(PR,1,0)<br>
<br>
; =================================================================<br>
; Reorder (lat,lon,time) the *weighted* input data<br>
; Access the area of interest via coordinate subscripting<br>
; =================================================================<br>
  x      = PR({lat|latS:latN},{lon|lonL:lonR},time|:)<br>
<br>
  eof    = eofunc_Wrap(x, neof, optEOF) <br>
  eof_ts = eofunc_ts_Wrap (x, eof, optEOF)<br>
<br>
  printVarSummary( eof )                         ; examine EOF variables<br>
  printVarSummary( eof_ts )<br>
<br>
; =================================================================<br>
; Extract the YYYYMM from the time coordinate <br>
; associated with eof_ts [same as SLP&amp;time] <br>
; =================================================================<br>
<br>
  yyyymm = cd_calendar(eof_ts&amp;time,-2)/100  <br>
<br>
; ==============================================================<br>
; Open the file: Read only the user specified period<br>
; ==============================================================<br>
  s      = addfile (&quot;/mnt/nfs2/geog/ml382/melphd/global/sstmodel90/tos_Omon_&quot;+model(gg)+&quot;_historical_safrica_climDJF.nc&quot;, &quot;r&quot;)
<br>
 <br>
 <br>
  TIME1   = s-&gt;time<br>
  YYYYZ   = cd_calendar(TIME1,-1)/100                 ; entire file<br>
  iYYYYZ  = ind(YYYYZ.ge.yrStrt .and. YYYYZ.le.yrLast)<br>
  <br>
  sst    = s-&gt;tos(iYYYYZ,:,:)<br>
  printVarSummary(sst)                 <br>
<br>
  sst1 =sst(:,:,:)<br>
<br>
<br>
  printVarSummary(eof_ts)                              ; variable overview<br>
  eof1 = eof_ts(0,:)<br>
<br>
 sst1 = lonFlip(sst1)<br>
; =================================================================<br>
; Reorder (latitude,longitude,time) the *weighted* input data<br>
; Access the area of interest via coordinate subscripting<br>
; =================================================================<br>
 <br>
  q      = eof_ts(0,:)<br>
<br>
  y      = sst1(lat|:,lon|:,time|:)<br>
    <br>
     y&amp;lat@units = &quot;degrees_north&quot;<br>
     y&amp;lon@units = &quot;degrees_east&quot;<br>
     <br>
     x&amp;lat@units = &quot;degrees_north&quot;<br>
     x&amp;lon@units = &quot;degrees_east&quot;<br>
     <br>
 printVarSummary(q)<br>
 printVarSummary(y)<br>
<br>
<br>
 ccr = escorc(q, y)<br>
<br>
 printVarSummary(ccr)<br>
<br>
  ccr!0 = &quot;lat&quot; ; name dimensions <br>
  ccr!1 = &quot;lon&quot; <br>
  ccr&amp;lat = y&amp;lat ; assign coordinate values and <br>
  ccr&amp;lon = y&amp;lon ; units attributes <br>
<br>
 printVarSummary(ccr)<br>
<br>
<br>
 ;ensccrdimavg = dim_avg_Wrap( ccr(lat|:, lon|:)<br>
 ensccr = new((/dimsizes(lat),dimsizes(lon)/), typeof(ccr))<br>
    ;ensccr!0=&quot;lat&quot;<br>
    ;ensccr&amp;lat=lat<br>
    ;ensccr!1=&quot;lon&quot;<br>
    ;ensccr&amp;lon=lon<br>
;ensccr(gg) = ensccrsum<br>
<br>
;ensccrsum(gg) = sum( ccr(lat|:, lon|: ))<br>
 ;ensccr = ensccrsum / 40<br>
 <br>
ensccr = dim_avg_n_Wrap(ccr,0)<br>
<br>
   <br>
  ensccr!0 = &quot;lat&quot; ; name dimensions <br>
  ensccr!1 = &quot;lon&quot; <br>
  ensccr&amp;lat = lat ; assign coordinate values and <br>
  ensccr&amp;lon = lon ; units attributes <br>
<br>
 printVarSummary(ensccr)<br>
;============================================================<br>
; PLOT<br>
;============================================================<br>
  <br>
<br>
;*******************************************<br>
; first plot<br>
;*******************************************<br>
   <br>
  rescn                       = True<br>
  rescn@cnFillOn              = True     <br>
  rescn@cnLinesOn            = False        ; True is default            <br>
  rescn@gsnDraw              = False              ; don&#39;t draw<br>
  rescn@gsnFrame             = False              ; don&#39;t advance frame<br>
  rescn@cnLineLabelsOn       = False        ; True is default<br>
  rescn@lbLabelBarOn         = False        ; turn off individual lb&#39;s<br>
  <br>
  rescn@cnLevelSelectionMode = &quot;ManualLevels&quot;     ; set manual contour levels<br>
  rescn@cnMinLevelValF       = -0.5                ; set min contour level<br>
  rescn@cnMaxLevelValF       =  0.5                ; set max contour level<br>
  rescn@cnLevelSpacingF      =  0.1               ; set contour spacing<br>
<br>
  ;rescn@lbOrientation        = &quot;Vertical&quot;         ; vertical label bar<br>
  rescn@tiMainString = &quot;&quot;+model(gg)+&quot;&quot;<br>
;---This resource defaults to True in NCL V6.1.0<br>
  rescn@lbLabelAutoStride    = True               ; optimal label stride<br>
<br>
  rescn@gsnSpreadColors      = True               ; use full range of colors<br>
  rescn@mpCenterLonF         = 180.               ; center plot at 180<br>
  rescn@lbLabelFontHeightF = 0.015 <br>
 <br>
  rescn@gsnAddCyclic         = True <br>
 ; reverse the first two colors<br>
  setvalues wks            <br>
    &quot;wkColorMap&quot;        : &quot;ncl_default&quot;  <br>
    &quot;wkForegroundColor&quot; : (/0.,0.,0./)  <br>
    &quot;wkBackgroundColor&quot; : (/1.,1.,1./) <br>
  end setvalues<br>
   <br>
 <br>
end do<br>
<br>
plot = gsn_csm_contour_map(wks,ensccr,rescn)<br>
<br>
<br>
draw(plot)<br>
frame(wks)<br>
<br>
end<br>
<br>
<br>
</div>
</div>

<br>_______________________________________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
<br></blockquote></div><br></div>