Пример #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
# 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")),