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
startstr or cftime.datetime, optional

Left bound for generating dates.

endstr or cftime.datetime, optional

Right bound for generating dates.

periodsinteger, optional

Number of periods to generate.

freqstr, default ‘D’, BaseCFTimeOffset, or None

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

normalizebool, default False

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

namestr, 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).

calendarstr

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

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

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')

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.