Пример #1
0
    def pull(self,
             date_time_range: api.DateTimeRange = None,
             include_wt: bool = False,
             tsi_api: str = "GetEvents") -> SignalData:
        validate_tsi_api_options(tsi_api)
        signals = self.amphoraeApi.amphorae_signals_get_signals(self._id)
        signal = utils.filter_by_id(signals,
                                    self._id)  # filter for just 1 signal
        if (date_time_range is None):
            date_time_range = default_date_time_range()

        ts_api = api.TimeSeriesApi(
            self._apiClient)  # the API for interacting with time series

        # Create a variable object for getting temperature data
        variables = get_inline_variables([signal], include_wt)
        if tsi_api == tsi_api_get_series:
            get_series = api.GetSeries([self._id],
                                       search_span=date_time_range,
                                       inline_variables=variables)
            qr = api.QueryRequest(get_series=get_series)
        elif tsi_api == tsi_api_get_events:
            get_events = api.GetEvents([self._id], search_span=date_time_range)
            qr = api.QueryRequest(get_events=get_events)
        elif tsi_api == tsi_api_aggregate_series:
            # this might not work
            aggregate_series = api.AggregateSeries([self._id],
                                                   search_span=date_time_range,
                                                   inline_variables=variables)
            qr = api.QueryRequest(aggregate_series=aggregate_series)

        time_series_data = ts_api.time_series_query_time_series(qr)
        return SignalData(time_series_data)
Пример #2
0
    def pull(self,
             date_time_range: api.DateTimeRange = None,
             include_wt: bool = False,
             tsi_api: str = "GetSeries") -> SignalData:
        '''
        Downloads the data to a local object
        params:
            date_time_range [UTC] (default to 1 day)                    amphora_api_client.DateTimeRange
            include_wt (default TRUE)                                   bool, includes the Write Time (wt)
            tsi_api (options: GetSeries, GetEvents, AggregateSeries)    str
        returns:
            amphora.SignalData
        '''
        validate_tsi_api_options(tsi_api)
        signals = self.amphoraeApi.amphorae_signals_get_signals(self._id)
        if (date_time_range is None):
            date_time_range = default_date_time_range()

        ts_api = api.TimeSeriesApi(
            self._apiClient)  # the API for interacting with time series

        # Create a variable object for getting temperature data
        variables = get_inline_variables(signals, include_wt)

        if tsi_api == tsi_api_get_series:
            get_series = api.GetSeries([self._id],
                                       search_span=date_time_range,
                                       inline_variables=variables)
            qr = api.QueryRequest(get_series=get_series)
        elif tsi_api == tsi_api_get_events:
            get_events = api.GetEvents([self._id], search_span=date_time_range)
            qr = api.QueryRequest(get_events=get_events)
        elif tsi_api == tsi_api_aggregate_series:
            # this might not work
            aggregate_series = api.AggregateSeries([self._id],
                                                   search_span=date_time_range,
                                                   inline_variables=variables)
            qr = api.QueryRequest(aggregate_series=aggregate_series)
        time_series_data = ts_api.time_series_query_time_series(qr)
        return SignalData(time_series_data)
Пример #3
0
    ts_api = a10a.TimeSeriesApi(
        client.apiClient)  # the API for interacting with time series
    tomorrow = datetime.now() + timedelta(hours=24)
    # Create a DateTimeRange to describe over what period we want data.
    time_range = a10a.DateTimeRange(_from=datetime.now(), to=tomorrow)
    # Create a variable object for getting temperature data
    temperatureVariable = a10a.NumericVariable(
        kind="numeric",
        value=a10a.Tsx(tsx="$event.temperature"),
        aggregation=a10a.Tsx(tsx="it doesn't matter"))
    get_series = a10a.GetSeries(
        [id],
        search_span=time_range,
        inline_variables={"temperature": temperatureVariable})
    time_series_data = ts_api.time_series_query_time_series(
        a10a.QueryRequest(get_series=get_series))

    print(
        f'Got {len(time_series_data.timestamps)} datapoints and {len(time_series_data.properties)} properties'
    )
    # access the data in time_series_data.properties
    print("-----------")

    # get average of tomorrow's rainfall probablility, filtered by description = Possible shower or Mostly cloudy
    variable = a10a.AggregateVariable(
        kind="aggregate", aggregation=a10a.Tsx("avg($event.rainProb)"))
    aggregate_series = a10a.AggregateSeries(
        [id],
        search_span=time_range,
        inline_variables={"rainProbAvg": variable},
        # filter is optional, for numeric filtering use `$event.rainProb.Double > 10` etc.
                         aggregation=a10a.Tsx(tsx="it doesn't matter")),
    "recoveredCases":
    a10a.NumericVariable(kind="numeric",
                         value=a10a.Tsx(tsx="$event.recoveredCases"),
                         aggregation=a10a.Tsx(tsx="it doesn't matter")),
    "deaths":
    a10a.NumericVariable(kind="numeric",
                         value=a10a.Tsx(tsx="$event.deaths"),
                         aggregation=a10a.Tsx(tsx="it doesn't matter"))
}

get_series_query = a10a.GetSeries(
    [amphora_id], search_span=time_range,
    inline_variables=variables)  # the complete query
time_series_data = ts_api.time_series_query_time_series(
    a10a.QueryRequest(get_series=get_series_query))

S0 = 1352640000  #country population

data_array, unique_dt, data_name = flatten_time_series_data(time_series_data)
print(data_name)
for i in range(4):
    if data_name[i] == 'activeCases':
        I = data_array[i]
    elif data_name[i] == 'recoveredCases':
        R = data_array[i]
    elif data_name[i] == 'deaths':
        D = data_array[i]

print(I)
print(R)