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