[ncl-talk] Removing seasonal cycle from monthly data
Sri.durgesh Nandini-Weiss
sri.durgesh.nandini-weiss at uni-hamburg.de
Mon Nov 11 03:48:09 MST 2019
Hello everyone,
I am doing a simple calculation on monthly means data e.g. temp from
1850-2000.
I would like to calculate the mean, standard deviation (e.g tempfrom
1986-2006). For this the seasonal cycles of the respective periods
should be removed otherwise its probably not Gaussian so i want to
extract the seasonal cycle out of my data.
Are the below steps the correct way to do this? My script is successful
in retrieving the anomalies.
however i want which function is correct? (rmvmean or calcMonAnomTLLL)
rmvmean(x): remove mean (and returns deviation from mean)
calcMonAnomTLLL(x): Anomalies from Annual Cycle: calcMonAnomTLL:
contributed.ncl
;=================================================================
; Concepts illustrated:
; - Calculates long term monthly means (monthly climatology) from
monthly data: (time,lev,lat,lon) version
; - Compute monthly anomalies using monthly climatology
; - Calculates climatological anomalies by subtracting the long term
mean from each point.
; - Assumes monthly data. If the input data contains metadata (e.g.
coordinate variables and attributes), these will be retained.
;==================================================================
yrStrt = 1986
yrLast = 2006
f = addfile("zo_hist_1850-2005_ens_1-100.nc","r")
TIME = f->time
TIME = TIME-31
YYYY = cd_calendar(TIME,-1)/100 ; entire file
iYYYY = ind(YYYY.ge.yrStrt .and. YYYY.le.yrLast) ;this is from 1
Jan 1986 to 1 Dec 2006
zo = f->zo(iYYYY,:,:,:,:) ; [time | 240] x [ens:100] x [depth:1] x
[lat | 192] x [lon | 288]
zo at _FillValue = 9.96921e+36
printVarSummary(zo)
printMinMax(zo,0)
zo1 = dim_avg_n_Wrap( zo, 2)
;[time | 240] x [ens:100] x [lat | 192] x [lon | 288]
printVarSummary(zo1)
;==================================================================
; Compute monthly climatology
;==================================================================
zo2 = clmMonTLLL( zo1 ) ;
[month | 12] x [ens | 100] x [lat | 45] x [lon | 90]
printVarSummary(zo2)
;==================================================================
; Compute monthly anomalies from the above climatology to remove
seasonal cycle
;==================================================================
zAnom = calcMonAnomTLLL (zo1,zo2)
printVarSummary(zAnom) ;[time | 240] x [ens | 100] x [lat | 45] x [lon | 90]
zAnom at long_name = "Anomalies from monthly Climatology"
printVarSummary(zAnom)
printMinMax(zAnom, 0)
Or should i be using rmMonAnnCycLLLT (removes the annual cycle from the
monthly data) instead?
Would be grateful for some guidance on this!
Sri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20191111/16a94d40/attachment.html>
More information about the ncl-talk
mailing list