clmDayTLL
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 clmDayTLL ( x [*][*][*] : float or double, yyyyddd [*] : integer ) return_val [366][*][*] : typeof(x)
Arguments
xA three-dimensional array (time, lat, lon) containing daily mean data.
yyyydddA one-dimensional array (same size as the "time" dimension of x) containing values of the form yyyyddd [ie: yyyy*1000 + ddd] where yyyy is a year [eg: 1993] and ddd is the sequential day of the current year [eg: Jan01=>1, Feb01=>32, 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.
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,lat,lon) <==== input dimension order 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
smthClmDayTLL, clmMonTLL, clmMonTLLL, clmMonLLLT, clmMonLLT calculate_daily_values
Examples
Please see: MJO_CLIVAR: Example 2 for a visual example.
Example 1
Compute the daily climatologies. The input is mean daily 500 hPa heights 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 ; NOte the tests for a calendar attribute are necessary for non-gregorian calendars ;*********************************************************** 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(:,0,:,:) ) ; convert to float printVarSummary( hgt ) ;*********************************************************** ; Compute daily climatology: raw daily means ;*********************************************************** hClmDay = clmDayTLL(hgt, yyyyddd) ; daily climatology at each grid point printVarSummary(hClmDay)The (edited) output yields
Variable: hgt Type: float Dimensions and sizes: [time | 3652] x [lat | 73] x [lon | 144] Coordinates: time: [17435256..17522880] lat: [90..-90] lon: [ 0..357.5] Number Of Attributes: 16 _FillValue : 1e+20 level : 500 long_name : mean Daily Geopotential heightThe climatology
Variable: hClmDay Type: float Total Size: 15389568 bytes 3847392 values Number of Dimensions: 3 Dimensions and sizes: [year_day | 366] x [lat | 73] x [lon | 144] Coordinates: year_day: [1..366] lat: [90..-90] lon: [ 0..357.5] Number Of Attributes: 4 long_name : Daily Climatology: mean Daily Geopotential height units : m information : Raw daily averages across all years smoothing : None
Example 2
Compute the climatological daily Outgoing Longwave Radiation (OLR) values. The 'time' uses a '360_day' ('360') calendar [time@calendar="360_day" or time@calendar="360"]. The input are daily olr values spanning 2001-2010 (10*360=3600 days). The values are packed as type short. The user must make certain that the calendar attribute is properly propogated to various functions. The code is nearly identical to Example 1 except for:
fili = "olr.360_day.nc" ; input file ;*********************************************************** ; Read data: short2flt ;*********************************************************** olr = short2flt( f->OLR ) ; convert to float ;*********************************************************** ; Compute daily climatology: raw and then 'smoothed' ;*********************************************************** olrClmDay = clmDayTLL(olr, yyyyddd) ; daily climatology at each grid pointThe (edited) output yields
Variable: olr Type: float Total Size: 151372800 bytes 37843200 values Number of Dimensions: 3 Dimensions and sizes: [time | 3600] x [lat | 73] x [lon | 144] Coordinates: time: [ 0..3599] lat: [90..-90] lon: [ 0..357.5] Number Of Attributes: 15 long_name : Daily OLR unpacked_valid_range : ( 0, 500 ) actual_range : ( 64.75, 344.5 ) units : W/m^2 var_desc : Outgoing Longwave Radiation precision : 2 dataset : NOAA Interpolated OLR level_desc : Other statistic : Mean parent_stat : Individual Obs _FillValue_original : 32766 _FillValue : 32766 missing_value_original : 32766 valid_range : ( 0, 500 ) missing_value : 32766The daily climatology:
Variable: olrClm Type: float Total Size: 15137280 bytes 3784320 values Number of Dimensions: 3 Dimensions and sizes: [year_day | 360] x [lat | 73] x [lon | 144] Coordinates: year_day: [1..360] lat: [90..-90] lon: [ 0..357.5] Number Of Attributes: 5 long_name : Daily Climatology: Daily OLR units : W/m^2 information : Raw daily averages across all years smoothing : None calendar : 360_dayExample 3
Same as Example 2 except that 'calendar="365_day': 10*365=3650 days. The file used was: "olr.365_day.nc"
Variable: olr Type: float Total Size: 153475200 bytes 38368800 values Number of Dimensions: 3 Dimensions and sizes: [time | 3650] x [lat | 73] x [lon | 144] [SNIP] ----------------------- Variable: olrClm Type: float Total Size: 15347520 bytes 3836880 values Number of Dimensions: 3 Dimensions and sizes: [year_day | 365] x [lat | 73] x [lon | 144] Coordinates: year_day: [1..365] lat: [90..-90] lon: [ 0..357.5]