solarforecastarbiter.io.utils.adjust_start_end_for_interval_label¶
-
solarforecastarbiter.io.utils.
adjust_start_end_for_interval_label
(interval_label, start, end, limit_instant=False)[source]¶ Adjusts the start and end times depending on the interval_label.
Parameters: - interval_label (str or None) – The interval label for the the object the data represents
- start (pandas.Timestamp) – Start time to restrict data to
- end (pandas.Timestamp) – End time to restrict data to
- limit_instant (boolean) – If true, an interval label of ‘instant’ will remove a nanosecond from end to ensure forecasts do not overlap. If False, instant returns start, end unmodified
Returns: start, end – Return the adjusted start and end
Raises: ValueError
– If an invalid interval_label is givenExamples
Define input start/end:
>>> start = pd.Timestamp('20190101 1200Z') >>> end = pd.Timestamp('20190101 1300Z')
Beginning:
>>> adjust_start_end_for_interval_label('beginning', start, end) (Timestamp('2019-01-01 12:00:00+0000', tz='UTC'), Timestamp('2019-01-01 12:59:59.999999999+0000', tz='UTC'))
Ending:
>>> adjust_start_end_for_interval_label('ending', start, end) (Timestamp('2019-01-01 12:00:00.000000001+0000', tz='UTC'), Timestamp('2019-01-01 13:00:00+0000', tz='UTC'))
Instantaneous:
>>> adjust_start_end_for_interval_label('instant', start, end) (Timestamp('2019-01-01 12:00:00+0000', tz='UTC'), Timestamp('2019-01-01 13:00:00+0000', tz='UTC'))
>>> adjust_start_end_for_interval_label('instant', start, end, ... limit_instant=True) (Timestamp('2019-01-01 12:00:00+0000', tz='UTC'), Timestamp('2019-01-01 12:59:59.999999999+0000', tz='UTC'))