In [1]:
from ahh import exp, era
import pandas as pd

In [2]:
dt_arr = pd.date_range('2016-01-01', '2016-12-31', freq='MS')
dt_arr


Out[2]:
DatetimeIndex(['2016-01-01', '2016-02-01', '2016-03-01', '2016-04-01',
               '2016-05-01', '2016-06-01', '2016-07-01', '2016-08-01',
               '2016-09-01', '2016-10-01', '2016-11-01', '2016-12-01'],
              dtype='datetime64[ns]', freq='MS')

In [3]:
list(zip(dt_arr, era.dt2seas(dt_arr))) # convert a datetime array to either DJF, MAM, JJA, and SON


Out[3]:
[(Timestamp('2016-01-01 00:00:00', freq='MS'), 'DJF'),
 (Timestamp('2016-02-01 00:00:00', freq='MS'), 'DJF'),
 (Timestamp('2016-03-01 00:00:00', freq='MS'), 'MAM'),
 (Timestamp('2016-04-01 00:00:00', freq='MS'), 'MAM'),
 (Timestamp('2016-05-01 00:00:00', freq='MS'), 'MAM'),
 (Timestamp('2016-06-01 00:00:00', freq='MS'), 'JJA'),
 (Timestamp('2016-07-01 00:00:00', freq='MS'), 'JJA'),
 (Timestamp('2016-08-01 00:00:00', freq='MS'), 'JJA'),
 (Timestamp('2016-09-01 00:00:00', freq='MS'), 'SON'),
 (Timestamp('2016-10-01 00:00:00', freq='MS'), 'SON'),
 (Timestamp('2016-11-01 00:00:00', freq='MS'), 'SON'),
 (Timestamp('2016-12-01 00:00:00', freq='MS'), 'DJF')]

In [4]:
list(zip(dt_arr, era.dt2seas(dt_arr, target='end')
         )) # can also convert to rolling seasons, ending at that month


Out[4]:
[(Timestamp('2016-01-01 00:00:00', freq='MS'), 'NDJ'),
 (Timestamp('2016-02-01 00:00:00', freq='MS'), 'DJF'),
 (Timestamp('2016-03-01 00:00:00', freq='MS'), 'JFM'),
 (Timestamp('2016-04-01 00:00:00', freq='MS'), 'FMA'),
 (Timestamp('2016-05-01 00:00:00', freq='MS'), 'MAM'),
 (Timestamp('2016-06-01 00:00:00', freq='MS'), 'AMJ'),
 (Timestamp('2016-07-01 00:00:00', freq='MS'), 'MJJ'),
 (Timestamp('2016-08-01 00:00:00', freq='MS'), 'JJA'),
 (Timestamp('2016-09-01 00:00:00', freq='MS'), 'JAS'),
 (Timestamp('2016-10-01 00:00:00', freq='MS'), 'ASO'),
 (Timestamp('2016-11-01 00:00:00', freq='MS'), 'SON'),
 (Timestamp('2016-12-01 00:00:00', freq='MS'), 'OND')]

In [5]:
list(zip(dt_arr, era.dt2seas(dt_arr, target='begin')
         )) # can also convert to rolling seasons, beginning at that month


Out[5]:
[(Timestamp('2016-01-01 00:00:00', freq='MS'), 'JFM'),
 (Timestamp('2016-02-01 00:00:00', freq='MS'), 'FMA'),
 (Timestamp('2016-03-01 00:00:00', freq='MS'), 'MAM'),
 (Timestamp('2016-04-01 00:00:00', freq='MS'), 'AMJ'),
 (Timestamp('2016-05-01 00:00:00', freq='MS'), 'MJJ'),
 (Timestamp('2016-06-01 00:00:00', freq='MS'), 'JJA'),
 (Timestamp('2016-07-01 00:00:00', freq='MS'), 'JAS'),
 (Timestamp('2016-08-01 00:00:00', freq='MS'), 'ASO'),
 (Timestamp('2016-09-01 00:00:00', freq='MS'), 'SON'),
 (Timestamp('2016-10-01 00:00:00', freq='MS'), 'OND'),
 (Timestamp('2016-11-01 00:00:00', freq='MS'), 'NDJ'),
 (Timestamp('2016-12-01 00:00:00', freq='MS'), 'DJF')]

In [ ]: