Traveling Ionospheric Disturbances Forecasting System (funded by the European Community, Horizon Europe)
We aim at the development of a machine-learning-based algorithm to forecast Large Scale Traveling Ionospheric Disturbances. The work is carried out within the "T-FORS - Traveling Ionospheric Disturbances Forecasting System" project.
This project can be run either locally or within a Docker container (recommended). Below are the instructions for both modes.
-
First, you need to clone the repo and install dependencies via Poetry with
poetry install
-
Activate a virtual environment
-
There are several virtual environments:
- one in
./src
(back-end) - one in
./app
(front-end) - one in
./jupyters
(REPL environment for prototyping)
- one in
-
cd into the directory of interest and activate the corresponding environment via
poetry shell
-
-
To launch a web server and execute jupyter notebooks, (on Windows) you can run the
scripts/run-jupyter.ps1
script; otherwise, execute thepoetry run jupyter notebook
command -
To start a MLflow tracking server, (on Windows) you can run the
scripts/run-mlflow-ui.ps1
script; the tracking UI can be accessed locally by navigating tohttp://localhost:5000/
-
To launch the Streamlit web app, execute the
streamlit run ./app/0_🏠_Home.py
command
-
Clone the repo and ensure that the Docker daemon is running
-
Build a Docker image
-
There are several Dockerfiles:
./src/Dockerfile
(back-end, exposing port 8000)./app/Dockerfile
(front-end, exposing port 8501)./jupyters/Dockerfile
(REPL environment for prototyping, exposing port 8890)
-
cd into the directory of interest and build the corresponding image via
docker build -t <image-name> .
-
-
Run a container and expose it on a preferred port (for example, 8080) via
docker run --rm -p 8080:8501 <image-name>
– or run it using the host's network viadocker run --rm --network host <image-name>
-
To orchestrate the services, you can use Docker Compose
- There are several services:
api
(back-end, exposing port 8000)web-app
(front-end, exposing port 8501)jupyter
(REPL environment for prototyping, exposing port 8890)
- There are several services:
-
Run a specific service via
docker compose up --build <service-name>
(omit the--build
flag if the image is already built) from the project root directory
Contributions are what make the open source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature_amazing_feature
) - Commit your Changes (
git commit -m 'Add some amazing stuff'
) - Push to the Branch (
git push origin feature_amazing_feature
) - Open a Pull Request
An (hopefully) up-to-date list of things to do can be found here.