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)
# provide your login credentials credentials = Credentials(username=os.environ['username'], password=os.environ['password']) # create a client for interacting with the public Amphora Data Repository client = AmphoraDataRepositoryClient(credentials) # https://beta.amphoradata.com/Amphorae/Detail?id=57d6593f-1889-410a-b1fb-631b6f9c9c85 id = "57d6593f-1889-410a-b1fb-631b6f9c9c85" try: amphora_api = a10a.AmphoraeApi(client.apiClient) print(f'Getting signals for: {amphora_api.amphorae_read(id).name}') signals = amphora_api.amphorae_signals_get_signals(id) properties = list((s._property for s in signals)) 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))
for t in range(num_dt): element_of_interest = non_none_indicies[t] data_array[i - 1][t] = time_series_data.properties[i].values[ element_of_interest] return data_array, unique_dt, data_name importCsv("dates_of_interest.csv") amphora_id = 'fca8998a-2d0e-4afa-a9aa-1467759a8d9a' T = 60 ## Get the data ts_api = a10a.TimeSeriesApi(client.apiClient) time_range = a10a.DateTimeRange(_from=datetime.utcnow() + timedelta(days=-T), to=datetime.utcnow()) variables = { "confirmedCases": a10a.NumericVariable(kind="numeric", value=a10a.Tsx(tsx="$event.confirmedCases"), aggregation=a10a.Tsx(tsx="it doesn't matter")), "activeCases": a10a.NumericVariable(kind="numeric", value=a10a.Tsx(tsx="$event.activeCases"), 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")),