{"id":40043506,"url":"https://github.com/johan12345/gcs_python","last_synced_at":"2026-01-19T05:30:46.272Z","repository":{"id":41168663,"uuid":"297350666","full_name":"johan12345/gcs_python","owner":"johan12345","description":"Graduated cylindrical shell CME model in Python","archived":false,"fork":false,"pushed_at":"2024-08-29T18:54:34.000Z","size":3330,"stargazers_count":22,"open_issues_count":5,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-05T03:56:00.955Z","etag":null,"topics":["cme","coronalmassejections","gui","python","solar-physics","sunpy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johan12345.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-09-21T13:38:08.000Z","updated_at":"2025-09-05T03:07:40.000Z","dependencies_parsed_at":"2024-08-29T20:47:29.103Z","dependency_job_id":"776373ce-3bce-4248-ae04-403b5dbbd1b4","html_url":"https://github.com/johan12345/gcs_python","commit_stats":{"total_commits":52,"total_committers":4,"mean_commits":13.0,"dds":0.4807692307692307,"last_synced_commit":"ee561d1333eca84a27cb4c4ae8d20b9fd301232a"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/johan12345/gcs_python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan12345%2Fgcs_python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan12345%2Fgcs_python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan12345%2Fgcs_python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan12345%2Fgcs_python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johan12345","download_url":"https://codeload.github.com/johan12345/gcs_python/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan12345%2Fgcs_python/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28561858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cme","coronalmassejections","gui","python","solar-physics","sunpy"],"created_at":"2026-01-19T05:30:46.156Z","updated_at":"2026-01-19T05:30:46.267Z","avatar_url":"https://github.com/johan12345.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"GCS in Python\n=============\n[![DOI](https://zenodo.org/badge/297350666.svg)](https://zenodo.org/badge/latestdoi/297350666)\n\nPython 3 implementation of the Graduated Cylindrical Shell model (GCS, [Thernisien, 2011](https://dx.doi.org/10.1088%2F0067-0049%2F194%2F2%2F33)).\nBased on the existing IDL implementation in [SolarSoft](https://www.lmsal.com/solarsoft/)\n(`cmecloud.pro`, `shellskeleton.pro`).\n\nThe code in `gcs/geometry.py` provides the basic implementation of the GCS geometry, while the Qt-based GUI in\n`gcs/gui.py` uses [SunPy](https://sunpy.org/) and Matplotlib to plot the model on top of coronagraph images provided by\n[Helioviewer.org](https://www.helioviewer.org/).\n\nA more detailed description of the GCS model, this Python implementation and its validation is given in\n[this excerpt](/doc/gcs_implementation_forstner_phd_2021.pdf?raw=true) from\n[my PhD thesis](https://nbn-resolving.org/urn:nbn:de:gbv:8:3-2021-00166-5).\n\n![Screenshot](/img/screenshot.png?raw=true)\n\nNote\n----\n\nThis 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.\nPlease be careful when using it and compare to IDL when in doubt.\n\nIf you find a bug, run into technical problems during the installation, or have suggestions for improvement, please create a\nGitHub [issue](https://github.com/johan12345/gcs_python/issues/new). 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.\n\nIf you have fixed a bug or implemented improvements, please feel free to open a [Pull Request](https://github.com/johan12345/gcs_python/compare)!\n\nIf you use this code in a publication, please cite it using [the DOI generated by Zenodo](https://zenodo.org/badge/latestdoi/297350666). I would also appreciate it if you \u003ca class=\"u-email Link--primary \" href=\"mailto:\u0026#x6a;\u0026#x6f;\u0026#x68;\u0026#x61;\u0026#x6e;\u0026#x2e;\u0026#x66;\u0026#x6f;\u0026#x72;\u0026#x73;\u0026#x74;\u0026#x6e;\u0026#x65;\u0026#x72;\u0026#x40;\u0026#x67;\u0026#x6d;\u0026#x61;\u0026#x69;\u0026#x6c;\u0026#x2e;\u0026#x63;\u0026#x6f;\u0026#x6d;\"\u003edrop me an email\u003c/a\u003e and tell me what you used it for :)\n\nHow to install and run the GUI\n------------------------------\nPython 3.7 or later and Git are required for installation.\n```\n# install GCS\npip3 install git+https://github.com/johan12345/gcs_python.git\n\n# run GCS GUI, providing a date/time and the spacecraft to use\ngcs_gui \"2020-04-15 06:00\" STA SOHO\n```\n\nInformation on the available command line arguments for the GUI is given when you run the help option:\n```shell script\ngcs_gui -h\n```\n\n### Common issues\n- `command not found: gcs_gui`\\\n  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.\n- `RuntimeError: You must have a version of OpenJPEG at least as high as 2.3.0 before you can read JPEG2000 images with glymur.`\\\n   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`](https://anaconda.org/conda-forge/openjpeg/) or [manually](https://github.com/uclouvain/openjpeg/releases), as you prefer.\n\nHow to use the GCS geometry in your own plotting code\n-----------------------------------------------------\nSimply install GCS (as seen above) and use\n```python\nimport gcs.geometry\n```\nto import the code from the GCS package. You can find some examples what you can do with it in the files\n`sample.py` and `sample_sunpy.py`.\n\nDevelopment setup\n-----------------\nFirst, clone the git repository:\n```shell script\ngit@github.com:johan12345/gcs_python.git\n```\n\nIt is recommended to use a [virtual environment](https://docs.python.org/3/tutorial/venv.html) so that the\nPython packages you install as dependencies of GCS don't interfere with your globally installed packages.\nOn some Linux distributions, the additional `python3-venv` package needs to be installed for this to work.\n\n```shell script\npython3 -m venv env\n. env/bin/activate\n```\n\nThen, install the dependencies:\n```shell script\n# install requirements\npython3 -m pip install --upgrade pip setuptools\npip3 install -r requirements.txt\n```\n\nand test the GUI using\n```shell script\npython -m gcs.gui \"2020-04-15 06:00\" STA SOHO\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohan12345%2Fgcs_python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohan12345%2Fgcs_python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohan12345%2Fgcs_python/lists"}