xarray.cftime_range#

xarray.cftime_range(start=None, end=None, periods=None, freq='D', normalize=False, name=None, closed=_NoDefault.no_default, inclusive=None, calendar='standard')[source]#

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 (int, optional) – Number of periods to generate.

  • freq (str or None, default: "D") – 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"}, default: "NO_DEFAULT") – Make the interval closed with respect to the given frequency to the “left”, “right”, or both sides (None).

    Deprecated since version 2023.02.0: Following pandas, the closed parameter is deprecated in favor of the inclusive parameter, and will be removed in a future version of xarray.

  • inclusive ({None, "both", "neither", "left", "right"}, default None) – Include boundaries; whether to set each bound as closed or open.

    New in version 2023.02.0.

  • calendar (str, default: "standard") – Calendar type for the datetimes.

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 or semi-monthly 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

Q

Quarter-end frequency

QS

Quarter-start frequency

M

Month-end frequency

MS

Month-start frequency

D

Day frequency

H

Hour frequency

T, min

Minute frequency

S

Second frequency

L, ms

Millisecond frequency

U, us

Microsecond 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

Q(S)-JAN

Quarter frequency, anchored at the end (or beginning) of January

Q(S)-FEB

Quarter frequency, anchored at the end (or beginning) of February

Q(S)-MAR

Quarter frequency, anchored at the end (or beginning) of March

Q(S)-APR

Quarter frequency, anchored at the end (or beginning) of April

Q(S)-MAY

Quarter frequency, anchored at the end (or beginning) of May

Q(S)-JUN

Quarter frequency, anchored at the end (or beginning) of June

Q(S)-JUL

Quarter frequency, anchored at the end (or beginning) of July

Q(S)-AUG

Quarter frequency, anchored at the end (or beginning) of August

Q(S)-SEP

Quarter frequency, anchored at the end (or beginning) of September

Q(S)-OCT

Quarter frequency, anchored at the end (or beginning) of October

Q(S)-NOV

Quarter frequency, anchored at the end (or beginning) of November

Q(S)-DEC

Quarter frequency, anchored at the end (or beginning) of December

Finally, the following calendar aliases are supported.

Alias

Date type

standard, gregorian

cftime.DatetimeGregorian

proleptic_gregorian

cftime.DatetimeProlepticGregorian

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', length=6, calendar='noleap', freq='2MS')

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.