gcs_python

Graduated cylindrical shell CME model in Python

https://github.com/johan12345/gcs_python

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 4 committers (25.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.5%) to scientific vocabulary

Keywords

cme coronalmassejections gui python solar-physics sunpy
Last synced: 6 months ago · JSON representation ·

Repository

Graduated cylindrical shell CME model in Python

Basic Info
  • Host: GitHub
  • Owner: johan12345
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 3.18 MB
Statistics
  • Stars: 18
  • Watchers: 2
  • Forks: 10
  • Open Issues: 5
  • Releases: 5
Topics
cme coronalmassejections gui python solar-physics sunpy
Created over 5 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

GCS in Python

DOI

Python 3 implementation of the Graduated Cylindrical Shell model (GCS, Thernisien, 2011). Based on the existing IDL implementation in SolarSoft (cmecloud.pro, shellskeleton.pro).

The code in gcs/geometry.py provides the basic implementation of the GCS geometry, while the Qt-based GUI in gcs/gui.py uses SunPy and Matplotlib to plot the model on top of coronagraph images provided by Helioviewer.org.

A more detailed description of the GCS model, this Python implementation and its validation is given in this excerpt from my PhD thesis.

Screenshot

Note

This code is still in a quite early stage. It has been compared with the original IDL/SolarSoft version to verify the results, but only for a few case studies. Please be careful when using it and compare to IDL when in doubt.

If you find a bug, run into technical problems during the installation, or have suggestions for improvement, please create a GitHub issue. As I have since left the Heliophysics field and am no longer actively using the tool myself, I can't promise timely responses. But it is still preferrable compared to writing me an email in private, as other users can also help you.

If you have fixed a bug or implemented improvements, please feel free to open a Pull Request!

If you use this code in a publication, please cite it using the DOI generated by Zenodo. I would also appreciate it if you drop me an email and tell me what you used it for :)

How to install and run the GUI

Python 3.7 or later and Git are required for installation. ```

install GCS

pip3 install git+https://github.com/johan12345/gcs_python.git

run GCS GUI, providing a date/time and the spacecraft to use

gcs_gui "2020-04-15 06:00" STA SOHO ```

Information on the available command line arguments for the GUI is given when you run the help option: shell script gcs_gui -h

Common issues

  • command not found: gcs_gui\ This sounds like the directory where pip installs executables (on Linux this is typically ~/.local/bin) is not on your PATH. pip probably printed a warning about this when you were installing the package.
  • RuntimeError: You must have a version of OpenJPEG at least as high as 2.3.0 before you can read JPEG2000 images with glymur.\ Loading Helioviewer images with SunPy requires the OpenJPEG library to be available on your PATH. You can install it through your system package manager (e.g., apt install libopenjp2-7-dev), through conda or manually, as you prefer.

How to use the GCS geometry in your own plotting code

Simply install GCS (as seen above) and use python import gcs.geometry to import the code from the GCS package. You can find some examples what you can do with it in the files sample.py and sample_sunpy.py.

Development setup

First, clone the git repository: shell script git@github.com:johan12345/gcs_python.git

It is recommended to use a virtual environment so that the Python packages you install as dependencies of GCS don't interfere with your globally installed packages. On some Linux distributions, the additional python3-venv package needs to be installed for this to work.

shell script python3 -m venv env . env/bin/activate

Then, install the dependencies: ```shell script

install requirements

python3 -m pip install --upgrade pip setuptools pip3 install -r requirements.txt ```

and test the GUI using shell script python -m gcs.gui "2020-04-15 06:00" STA SOHO

Owner

  • Name: Johan von Forstner
  • Login: johan12345
  • Kind: user
  • Location: Munich, Germany
  • Company: Paradox Cat GmbH

Space Physicist turned Machine Learning engineer at @Paradox-Cat-GmbH. Side project: @ev-map 🚗⚡

Citation (CITATION.cff)

# YAML 1.2
# Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/)
cff-version: 1.0.3
message: If you use this software, please cite it using these metadata.
title: 'GCS in Python'
doi: 10.5281/zenodo.12668802
authors:
- given-names: Johan L.
  family-names: Forstner
  name-particle: Freiherr von
  affiliation: Institute of Experimental and Applied Physics, University of Kiel,
    Kiel, Germany
  orcid: https://orcid.org/0000-0002-1390-4776
version: 0.2.3
date-released: 2024-07-06
repository-code: https://github.com/johan12345/gcs_python
license: other-open

GitHub Events

Total
  • Issues event: 1
  • Watch event: 4
  • Fork event: 1
Last Year
  • Issues event: 1
  • Watch event: 4
  • Fork event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 52
  • Total Committers: 4
  • Avg Commits per committer: 13.0
  • Development Distribution Score (DDS): 0.481
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Johan von Forstner j****r@g****m 27
Johan von Forstner f****r@p****e 23
Samriddhi Sankar Maity s****4@g****m 1
asahade 3****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 24
  • Total pull requests: 3
  • Average time to close issues: 18 days
  • Average time to close pull requests: 2 days
  • Total issue authors: 6
  • Total pull request authors: 2
  • Average comments per issue: 2.0
  • Average comments per pull request: 2.33
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 0
  • Average time to close issues: 7 days
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 2.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • MohamedNedal (5)
  • johan12345 (5)
  • shifanakoya (3)
  • NakoteyMinta (1)
  • ennomuller (1)
  • pameladpellot (1)
  • sheersh171 (1)
Pull Request Authors
  • ssmaity (1)
  • asahade (1)
Top Labels
Issue Labels
question (4) enhancement (2) help wanted (1)
Pull Request Labels
enhancement (1)

Dependencies

requirements.txt pypi
  • PyQt5 *
  • astroquery *
  • matplotlib *
  • numpy *
  • scipy >=1.2.0
  • sunpy >=2.1.0
setup.py pypi
  • astroquery *
  • matplotlib *
  • numpy *
  • scipy >=1.2.0
  • sunpy *