xarray.cftime_range

xarray.cftime_range(start=None, end=None, periods=None, freq='D', normalize=False, name=None, closed=None, calendar='standard')

Return a fixed frequency CFTimeIndex.

Parameters:
start : str or cftime.datetime, optional

Left bound for generating dates.

end : str or cftime.datetime, optional

Right bound for generating dates.

periods : integer, optional

Number of periods to generate.

freq : str, default ‘D’, BaseCFTimeOffset, or None

Frequency strings can have multiples, e.g. ‘5H’.

normalize : bool, default False

Normalize start/end dates to midnight before generating date range.

name : str, default None

Name of the resulting index

closed : {None, ‘left’, ‘right’}, optional

Make the interval closed with respect to the given frequency to the ‘left’, ‘right’, or both sides (None, the default).

calendar : str

Calendar type for the datetimes (default ‘standard’).

Returns:
CFTimeIndex

Notes

This function is an analog of pandas.date_range for use in generating sequences of cftime.datetime objects. It supports most of the features of pandas.date_range (e.g. specifying how the index is closed on either side, or whether or not to normalize the start and end bounds); however, there are some notable exceptions:

  • You cannot specify a tz (time zone) argument.
  • Start or end dates specified as partial-datetime strings must use the ISO-8601 format.
  • It supports many, but not all, frequencies supported by pandas.date_range. For example it does not currently support any of the business-related, semi-monthly, or sub-second frequencies.
  • Compound sub-monthly frequencies are not supported, e.g. ‘1H1min’, as these can easily be written in terms of the finest common resolution, e.g. ‘61min’.

Valid simple frequency strings for use with cftime-calendars include any multiples of the following.

Alias Description
A, Y Year-end frequency
AS, YS Year-start frequency
M Month-end frequency
MS Month-start frequency
D Day frequency
H Hour frequency
T, min Minute frequency
S Second frequency

Any multiples of the following anchored offsets are also supported.

Alias Description
A(S)-JAN Annual frequency, anchored at the end (or beginning) of January
A(S)-FEB Annual frequency, anchored at the end (or beginning) of February
A(S)-MAR Annual frequency, anchored at the end (or beginning) of March
A(S)-APR Annual frequency, anchored at the end (or beginning) of April
A(S)-MAY Annual frequency, anchored at the end (or beginning) of May
A(S)-JUN Annual frequency, anchored at the end (or beginning) of June
A(S)-JUL Annual frequency, anchored at the end (or beginning) of July
A(S)-AUG Annual frequency, anchored at the end (or beginning) of August
A(S)-SEP Annual frequency, anchored at the end (or beginning) of September
A(S)-OCT Annual frequency, anchored at the end (or beginning) of October
A(S)-NOV Annual frequency, anchored at the end (or beginning) of November
A(S)-DEC Annual frequency, anchored at the end (or beginning) of December

Finally, the following calendar aliases are supported.

Alias Date type
standard, proleptic_gregorian cftime.DatetimeProlepticGregorian
gregorian cftime.DatetimeGregorian
noleap, 365_day cftime.DatetimeNoLeap
all_leap, 366_day cftime.DatetimeAllLeap
360_day cftime.Datetime360Day
julian cftime.DatetimeJulian

Examples

This function returns a CFTimeIndex, populated with cftime.datetime objects associated with the specified calendar type, e.g.

>>> xr.cftime_range(start='2000', periods=6, freq='2MS', calendar='noleap')
CFTimeIndex([2000-01-01 00:00:00, 2000-03-01 00:00:00, 2000-05-01 00:00:00,
             2000-07-01 00:00:00, 2000-09-01 00:00:00, 2000-11-01 00:00:00],
            dtype='object')

As in the standard pandas function, three of the start, end, periods, or freq arguments must be specified at a given time, with the other set to None. See the pandas documentation for more examples of the behavior of date_range with each of the parameters.