/PyThea

PyThea is an open-source software package to perform coronal mass ejection (CME) and shock wave 3D reconstruction using multi-viewpoint remote-sensing observations.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

PyThea: A software package to reconstruct the 3D structure of CMEs and shock waves

made-with-python Version Release Date License: GPL v3 flake8 pytest pypi

Logo

PyThea is an open-source software package that can be used to reconstruct the 3D structure of Coronal Mass Ejections (CMEs) and shock waves and determine their kinematics using remote-sensing observations. The tool implements the Graduated Cylindrical Shell (GCS) model that can be used to reconstruct CMEs and two geometrical models, namely a spheroid and ellipsoid model to reconstruct shock waves. It also implements remote-sensing observations from multiple viewpoints such as the Solar and Heliospheric Observatory (SoHO) and Solar Terrestrial Relations Observatory (STEREO).

Note

The lead author of PyThea (A. Kouloumvakos) has been awarded a NASA Grant (80NSSC24K0071) for further developing and improving PyThea, during fiscal year 2024. The awarded proposal is part of the NASA Headquarters Heliophysics Tools and Methods Program in response to NASA ROSES–2022 (NNH22ZDA001N). The proposed software enhancements and new features encompass a range of improvements, including but not limited to: improved code documentation, expanded and improved code testing, improved image processing and visualization, and the incorporation of new solar mission imaging data.

πŸ’Ύ Installation

We recommend, creating a virtual environment for PyThea and installing the package from PyPI using pip.

If you use Anaconda or Miniconda (which we also recommend) you can create a virtual environment using conda and then install PyThea using from PyPI using pip. In the terminal do the following:

# Create a virtual environment. Use python>3.9
conda create --name PyThea python=3.10

# Activate the environment
conda activate PyThea

# install the required packages using pip3
pip3 install PyThea

# Run locally the application with streamlit (see also the section "Run locally the PyThea application" )
PyThea streamlit

# When you are done you can deactivate the virtual environment
conda deactivate

If conda is not your favorite way of creating a virtual environment in python, then you can manually create it and install PyThea with pip as previously shown. For example, you can do the following:

# Create a virtual environment.
python3 -m venv PyThea

# Activate the environment
source PyThea/bin/activate

# install the required packages using pip3
pip3 install PyThea

# Run locally the application with streamlit (see also the section "Run locally the PyThea application" )
PyThea streamlit

# When you are done you can deactivate the virtual environment
deactivate

At the directory where the terminal is open, this method will create a folder named /PyThea and install PyThea and all the required packages inside.

⬆️ Update

To update the package to the latest version activate the environment first and then:

# Update _PyThea_ using pip3
pip3 install PyThea -U

One way to see witch version is installed in your environment is to open a python session and do:

import PyThea
PyThea.__version__

You can also see the verion used and the latest version on the main page of the application.

🐾 Run locally the PyThea application

After installing PyThea software package you can run the application using the terminal.

If the environment is not active then use conda activate PyThea or source PyThea/bin/activate to activate this and then run PyThea with

PyThea streamlit

The application should now open in the default browser!

Deactivate the environment when you finish.

If there is an error when running PyThea streamlit then you can manually run PyThea following these steps:

  1. Locate where PyThea_app.py have been instaled. This is usually inside the anaconda3 enviroment folder. For example here ~/opt/anaconda3/envs/PyThea/lib/python3.9/site-packages/PyThea

  2. Then run the PyThea_app.py using: streamlit run <PyTheaRootDir>/PyThea_app.py replacing <PyTheaRootDir> with your path first.

πŸ“™ Usage

Complete documentation of the PyThea can be found in https://www.pythea.org/.

πŸ“¦ Useful Python packages

  • SunPy: The community-developed, free and open-source solar data analysis environment for Python.
  • AstroPy: The Astropy Project is a community effort to develop a single core package for Astronomy in Python.
  • gcs_python: An implementation of the Graduated Cylindrical Shell model in python.

πŸ“œ Acknowledging or Citing PyThea https://www.frontiersin.org/articles/10.3389/fspas.2022.974137/ https://doi.org/10.5281/zenodo.5713659

If you use PyThea for scientific work or research presented in a publication, please mention it in the main text and cite PyThea paper (see Paper or ADS). Additionally, add in the methods or acknowledgements section the following: "This research has made use of PyThea v?.?.?, an open-source and free Python package to reconstruct the 3D structure of CMEs and shock waves (Zenodo: https://doi.org/10.5281/zenodo.5713659)." and changing the v?.?.? to the version you have used. To acknowledge PyThea in posters or talks include the project logo or icon. PyThea has a strong dependency on SunPy and AstroPy Python packages, consider citing these packages as well.

β“˜ The mythology of Thea:

In Greek mythology, Thea, also called Euryphaessa "wide-shining", is the Titaness of sight and the shining light of the clear blue sky. Her brother/consort is Hyperion, a Titan and god of the sun, and together they are the parents of Helios (the Sun), Selene (the Moon), and Eos (the Dawn).