コード例 #1
0
def test_adjust_timeseries_for_interval_label_no_tz():
    test_data = TEST_DATA.tz_localize(None)
    label = None
    start = pd.Timestamp('2019-01-24T00:00Z')
    end = pd.Timestamp('2019-01-24T00:04Z')
    with pytest.raises(ValueError):
        utils.adjust_timeseries_for_interval_label(test_data, label, start,
                                                   end)
コード例 #2
0
def test_adjust_timeseries_for_interval_label_no_tz_empty():
    test_data = pd.DataFrame()
    label = None
    start = pd.Timestamp('2019-01-24T00:00Z')
    end = pd.Timestamp('2019-01-24T00:04Z')
    out = utils.adjust_timeseries_for_interval_label(test_data, label, start,
                                                     end)
    pdt.assert_frame_equal(test_data, out)
コード例 #3
0
    def get_observation_values(self,
                               observation_id,
                               start,
                               end,
                               interval_label=None):
        """
        Get observation values from start to end for observation_id from the
        API

        Parameters
        ----------
        observation_id : string
            UUID of the observation object.
        start : timelike object
            Start time in interval to retrieve values for
        end : timelike object
            End time of the interval
        interval_label : str or None
            If beginning, ending, adjust the data to return only data that is
            valid between start and end. If None or instant, return any data
            between start and end inclusive of the endpoints.

        Returns
        -------
        pandas.DataFrame
            With a datetime index and (value, quality_flag) columns

        Raises
        ------
        ValueError
            If start or end cannot be converted into a Pandas Timestamp
        """
        req = self.get(f'/observations/{observation_id}/values',
                       params={
                           'start': start,
                           'end': end
                       })
        out = json_payload_to_observation_df(req.json())
        return adjust_timeseries_for_interval_label(out, interval_label, start,
                                                    end)
コード例 #4
0
    def get_forecast_values(self,
                            forecast_id,
                            start,
                            end,
                            interval_label=None):
        """
        Get forecast values from start to end for forecast_id

        Parameters
        ----------
        forecast_id : string
            UUID of the forecast object
        start : timelike object
            Start of the interval to retrieve values for
        end : timelike object
            End of the interval
        interval_label : str or None
            If beginning, ending, adjust the data to return only data that is
            valid between start and end. If None or instant, return any data
            between start and end inclusive of the endpoints.

        Returns
        -------
        pandas.Series
           With the forecast values and a datetime index

        Raises
        ------
        ValueError
            If start or end cannot be converted into a Pandas Timestamp
        """
        req = self.get(f'/forecasts/single/{forecast_id}/values',
                       params={
                           'start': start,
                           'end': end
                       })
        out = json_payload_to_forecast_series(req.json())
        return adjust_timeseries_for_interval_label(out, interval_label, start,
                                                    end)
コード例 #5
0
def test_adjust_timeseries_for_interval_label_series(label, exp):
    start = pd.Timestamp('2019-01-24T00:00Z')
    end = pd.Timestamp('2019-01-24T00:04Z')
    out = utils.adjust_timeseries_for_interval_label(TEST_DATA['value'], label,
                                                     start, end)
    pdt.assert_series_equal(exp, out)
コード例 #6
0
def test_adjust_timeseries_for_interval_label(label, exp, start, end):
    start = start or pd.Timestamp('2019-01-24T00:00Z')
    end = end or pd.Timestamp('2019-01-24T00:04Z')
    out = utils.adjust_timeseries_for_interval_label(TEST_DATA, label, start,
                                                     end)
    pdt.assert_frame_equal(exp, out)
コード例 #7
0
 def load_data(observation, data_start, data_end):
     data = obs_data.loc[data_start:data_end]
     return adjust_timeseries_for_interval_label(data,
                                                 observation.interval_label,
                                                 data_start, data_end)