Return to Ferret FAQ


Creating a Daily Climatology


Question:

How do I create a daily climatology for a time series?

Example:

Daily data series with climatology

Explanation:

We need the length of the "climatological year". This can be obtained from the climatological_axes data set. Then define a modulo axis with units of days, and regrid the time series data using the @mod transformation to this axis. See the command reference for an explanation of the qualifiers to the DEFINE AXIS command.

yes? DEFINE AXIS/T/=0:365.2425/EDGES/NPOINTS=365/T0=1-JAN-0001/UNITS=DAYS/MODULO tdaily
yes? LET dailyclim = udaily[GT=tdaily@MOD]



Solution:

The figure above was created with:

! Get the length of a climatological year; 365.2425 days

yes? USE climatological_axes
*** NOTE: regarding climatological_axes.cdf ...
*** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, AND MONTH_IRREG defined
yes? LIST/PRECISION=7 T[GT=MONTH_IRREG,L=13] - T[GT=MONTH_IRREG,L=1]
            T[GT=MONTH_IRREG,L=13] - T[GT=MONTH_IRREG,L=1]
            TIME: 15-JAN      17:49
         365.2426
yes? CANCEL DATA climatological_axes

! use the length of the "climatological year" to define a daily axis

yes? DEFINE AXIS/T=0:365.2425/EDGES/NPOINTS=365/T0=1-JAN-0001/UNITS=DAYS/MODULO tdaily

! get some data to use for example. Manufacture some daily data...

yes? USE monthly_navy_winds
yes? DEFINE AXIS/T=16-JAN-1982:18-DEC-1992:1/UNITS=DAYS tnavydaily

yes? LET udaily = uwnd[GT=tnavydaily]

! define the daily climatology

yes? LET dailyclim = udaily[GT=tdaily@mod]

! sample plot

PLOT/X=180/Y=0 udaily
PLOT/X=180/Y=0/OVER/NOLABEL/T=16-Jan-1982:18-DEC-1992 dailyclim


Last modified: Jun 30, 1999