clmDayTLLL
Calculates long term daily means (daily climatology) from daily data.
Prototype
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" ; This library is automatically loaded ; from NCL V6.2.0 onward. ; No need for user to explicitly load. function clmDayTLLL ( x [*][*][*][*] : float or double, yyyyddd [*] : integer ) return_val [366][*][*][*] : typeof(x)
Arguments
xA four-dimensional array (time, lev, lat, lon).
yyyydddA one-dimensional array (same size as the "time" dimension of x) containing values of the form yyyy*1000 + Day_of_Year where yyyy is a year [eg: 1993] and ddd is the sequential day of the current year [eg: Jan01=>1, Jan31=>31, etc.
By default, this function assumes that the gregorian calendar is being used. To correcly handle other calendars, the calendar attribute must be associated with the yyyyddd argument. The user may have to be explicitly perform the assignment(s).
Return value
A climatological time series where the leftmost dimension refers to the sequential day of the year.
Description
Calculate the mean annual cycle from daily data. The return array will give the raw climatology at each grid point
x(time,lev,lat,lon) <==== input dimension order x!0 = "time" <==== time is in days x!1 = "lev" x!2 = "lat" x!3 = "lon" non-Leap yyyyddd 1905001 => Jan 1, 1905 1905032 => Feb 1, 1905 1905059 => Feb 28, 1905 1905060 => Mar 1, 1905 1905365 => Dec 31, 1905 Leap yyyyddd 1908001 => Jan 1, 1908 1908032 => Feb 1, 1908 1908059 => Feb 28, 1908 1908060 => Feb 29, 1908 1908061 => Mar 1, 1908 1908366 => Dec 31, 1908
See Also
clmDayTLL, smthClmDayTLL, calcDayAnomTLL, clmMon2clmDay, clmMonTLL, clmMonTLLL, clmMonLLLT, clmMonLLT
Examples
Please see: MJO_CLIVAR: Example 2 for a visual example of smoothing.
Example 1
Compute the long term daily means. The input is daily heights spanning 1990-1999.
The dimensions are (time,level,lat,lon). Here, the input values are packed as type short.
The time coordinate is paresable by cd_calendar.
Compute the daily climatologies. The input is mean daily heights at multiplre levels
spanning 1990-1999. The values are packed as type short and the time is in units
;;The following library is loaded by default in NCL V6.2.0 and newer ;;load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" : diri = "./" ; input directory fili = "HGT.nc" ; input file f = addfile (diri+fili , "r") ;*********************************************************** ; Read time and create required yyyyddd ;*********************************************************** time = f->time ; time:units = "hours since 1-1-1 00:00:0.0" TIME = cd_calendar(time, 0) ; type float year = toint( TIME(:,0) ) ; toint strips meta data month = toint( TIME(:,1) ) day = toint( TIME(:,2) ) ; check for calendar attribute if (isatt(TIME,"calendar")) then ; default is gregorian year@calendar = TIME@calendar end if ddd = day_of_year(year, month, day) if (isatt(year,"calendar")) then ; default is gregorian ddd@calendar = year@calendar end if yyyyddd = year*1000 + ddd ; needed for input if (isatt(ddd,"calendar")) then ; default is gregorian yyyyddd@calendar = ddd@calendar end if ;*********************************************************** ; Read data: short2flt ;*********************************************************** hgt = short2flt( f->hgt ) ; short to float printVarSummary( hgt ) ; [time | 3652] x [level | 17] x [lat | 73] x [lon | 144] printMinMax( hgt, 0 ) ;*********************************************************** ; Compute daily climatology: raw ;*********************************************************** hClmDay = clmDayTLLL(hgt, yyyyddd) ; daily climatology at each grid point printVarSummary(hClmDay) ; [time | 366] x [level | 17] x [lat | 73] x [lon | 144] printMinMax(hClmDay,0)
Other Examples: Please see examples associated with clmDayTLL. They illustrate the methodology for different calendars (360_day and 365_day).