Skip to main content

A Python package for the fetching (and some processing) of eCallisto data via the eCallisto API.

Project description

Ecallisto NG

Ecallisto NG is a compact yet effective Python package designed to facilitate seamless interaction with the Ecallisto API (Rest API built with FastAPI). It provides a simple interface to fetch data from the API, as well as some basic data processing and plotting capabilities. Behind the Rest API, there is a TimeScaleDB database, which is a time-series database. Thus, data access by time, with aggregation functions, is fast and possible.

Background

The package is constructed in Python 3.9 and utilizes the requests library to directly access the Ecallisto Rest API via the link: https://v000792.fhnw.ch/api/redoc. Currently, not all data is added to the database. Feel free to reach out if you need data before 2020.

Installation

To install this package, clone this repository and use pip for installation. Execute the following command in your terminal: pip install -e .

Creation of the virtual Antenna

For this, you need to install PyTorch.

PyPI

Ecallisto NG is conveniently available on PyPI as well. To download, visit the following link: https://pypi.org/project/ecallisto-ng/

Examples

Please have a look at the jupyter notebook under example. ¨

Usage

Here's a guide on how to use the different features of Ecallisto NG. Be aware that data is cached automatically in your working directory under ecallisto_ng_cache. Feel free to delete this folder if you want to fetch the data again.

Data Fetching

Fetching data is easy using the get_data function, housed under the ecallisto_ng.data_fetching.get_data module. Here's an example:

from ecallisto_ng.data_fetching.get_data import get_data

parameters = {
    "instrument_name": "austria_unigraz_01",
    "start_datetime": "2021-03-01 06:30:00",
    "end_datetime": "2021-03-07 23:30:00",
    "timebucket": "15m",
    "agg_function": "MAX",
}

df = get_data(**parameters)

Getting Data Availability

You can also check the availability of data using the get_tables and get_table_names_with_data_between_dates function, housed under the ecallisto_ng.data_fetching.get_information module. Here's an example:

from ecallisto_ng.data_fetching.get_information import get_tables, get_table_names_with_data_between_dates
from datetime import datetime, timedelta

get_tables()[:5]

get_table_names_with_data_between_dates(
    start_datetime=(datetime.now() - timedelta(hours=24)).strftime("%Y-%m-%d %H:%M:%S"),
    end_datetime=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
)

Plotting

Ecallisto NG provides basic plotting capabilities. Here's an example of how to generate a spectogram:

from ecallisto_ng.plotting.utils import fill_missing_timesteps_with_nan, plot_spectogram

df_filled = fill_missing_timesteps_with_nan(df)
plot_spectogram(df_filled,  parameters["instrument_name"], parameters["start_datetime"], parameters["end_datetime"])

Spectogram editing

We also provide some basic functionalities to edit the spectogram. Here's how you can do it:

from ecallisto_ng.data_processing.utils import elimwrongchannels, subtract_constant_background, subtract_rolling_background

df = elimwrongchannels(df)
df = fill_missing_timesteps_with_nan(df)
df = subtract_constant_background(df)
df = subtract_rolling_background(df)

plot_spectogram(df,  parameters["instrument_name"], parameters["start_datetime"], parameters["end_datetime"])

These simple commands allow you to easily manipulate spectogram data, enabling effective use of the Ecallisto API for your needs.

Others

Please have a look at the example-notebooks under example for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecallisto_ng-0.4.3.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

ecallisto_ng-0.4.3-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file ecallisto_ng-0.4.3.tar.gz.

File metadata

  • Download URL: ecallisto_ng-0.4.3.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for ecallisto_ng-0.4.3.tar.gz
Algorithm Hash digest
SHA256 bd5eeb800c4936b67b5afeaa51ec07b32b5834751b36c23f42880d42e7f1a9ad
MD5 0bf98c0d70e27c3517fd23ed8af6bc48
BLAKE2b-256 ca6d63ef7349bf0d4cf203a80b198a7ae90dec9aaf961b0fdf543c88a8040185

See more details on using hashes here.

File details

Details for the file ecallisto_ng-0.4.3-py3-none-any.whl.

File metadata

File hashes

Hashes for ecallisto_ng-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ce0980695c6cef17399393c0a7bc0e35f42965b2f9310a88518d28a92a14da43
MD5 2c3f3860df418dcd8739d53f63332af0
BLAKE2b-256 0094e79e86282ee77532043596ff9e63ce6d713f121de899db02070fd29bc0cd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page