Skip to main content

Multi-spacecraft longitudinal configuration plotter

Project description

pypi Version conda version python version pytest codecov docs Project Status: Active – The project has reached a stable, usable state and is being actively developed. license zenodo

The Solar MAgnetic Connection Haus (Solar-MACH) tool is a multi-spacecraft longitudinal configuration plotter. This is the repository of the pip/conda package of Solar-MACH, called solarmach. For the corresponding streamlit repository, which is used for solar-mach.github.io, see github.com/jgieseler/Solar-MACH.

Installation

solarmach requires python >= 3.10.

It can be installed either from PyPI using:

pip install solarmach

or from conda using:

conda install -c conda-forge solarmach

Basic usage

from solarmach import SolarMACH, print_body_list

# optional: get list of available bodies/spacecraft
print(print_body_list().index)

# necessary options
body_list = ['STEREO-A', 'Earth', 'BepiColombo', 'PSP', 'Solar Orbiter', 'Mars']
date = '2021-10-28 15:15:00'

# Previously you needed to define position-sensitive solar wind speed per
# body in body_list, e.g., vsw_list = [400, 400, 400, 400, 400, 400, 400]
# Now you can skip this parameter or provide an empty list. Then solarmach
# will try to automatically obtain measured solar wind speeds from each
# spacecraft
vsw_list = []

# optional parameters
coord_sys = 'Carrington'                         # 'Carrington' (default) or 'Stonyhurst'
reference_long = 273                             # longitude of reference (None to omit)
reference_lat = 0                                # latitude of reference (None to omit)
plot_spirals = True                              # plot Parker spirals for each body
plot_sun_body_line = True                        # plot straight line between Sun and body
long_offset = 270                                # longitudinal offset for polar plot; defines where Earth's longitude is (by default 270, i.e., at "6 o'clock")
reference_vsw = 400                              # define solar wind speed at reference
return_plot_object = False                       # figure and axis object of matplotib are returned, allowing further adjustments to the figure
transparent = False                              # make output figure background transparent
markers = 'numbers'                              # use 'numbers' or 'letters' for the body markers (use False for colored squares)
filename = 'solarmach.png'                       # define filename of output figure. can be .png or .pdf

# initialize
sm = SolarMACH(date, body_list, vsw_list, reference_long, reference_lat, coord_sys)

# make plot
sm.plot(
   plot_spirals=plot_spirals,
   plot_sun_body_line=plot_sun_body_line,
   reference_vsw=reference_vsw,
   transparent=transparent,
   markers=markers,
   long_offset=long_offset,
   return_plot_object=return_plot_object,
   outfile=filename
)

# obtain data as Pandas DataFrame
display(sm.coord_table)
Example output figure

Documentation

Full documentation for the package can be found at https://solarmach.readthedocs.io

Example Notebooks

solarmach can easily be run in a Jupyter Notebook.

Contributing

Contributions to this package are very much welcome and encouraged! Contributions can take the form of issues to report bugs and request new features or pull requests to submit new code.

Please make contributions specific to the streamlit web-version that is used for solar-mach.github.io in the corresponding repository at github.com/jgieseler/Solar-MACH.

Citation

Please cite the following paper if you use solarmach in your publication:

Gieseler, J., Dresing, N., Palmroos, C., von Forstner, J.L.F., Price, D.J., Vainio, R. et al. (2022). Solar-MACH: An open-source tool to analyze solar magnetic connection configurations. Front. Astronomy Space Sci. 9. doi:10.3389/fspas.2022.1058810

Acknowledgements

The Solar-MACH tool was originally developed at Kiel University, Germany and further discussed within the ESA Heliophysics Archives USer (HAUS) group.

This project has received funding from the European Union’s Horizon Europe research and innovation programme under grant agreement No 101134999 (SOLER) and from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 101004159 (SERPENTINE).

Powered by: matplotlib sunpy speasy plotly

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

solarmach-0.5.3.tar.gz (456.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

solarmach-0.5.3-py3-none-any.whl (445.8 kB view details)

Uploaded Python 3

File details

Details for the file solarmach-0.5.3.tar.gz.

File metadata

  • Download URL: solarmach-0.5.3.tar.gz
  • Upload date:
  • Size: 456.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for solarmach-0.5.3.tar.gz
Algorithm Hash digest
SHA256 2e798975eb0660fedc39615ea2b46e0458ea0b33bc20137d25d315d44d223ea4
MD5 e0a259d2517da014cc42df4953f8bbf0
BLAKE2b-256 cc5a40706f2a0602c9853b0e69743e279e25401cf03e70d02fcf25b2c351bf1a

See more details on using hashes here.

File details

Details for the file solarmach-0.5.3-py3-none-any.whl.

File metadata

  • Download URL: solarmach-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 445.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for solarmach-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 431b6b9fbfed2368ec61a1534bac1505bbe53a48c5cb16da9227a9e6f20960d7
MD5 5ff82fc42a6dc2f5eb8d954c7f4b5d5b
BLAKE2b-256 0b9a0cf42c1e82cf6ce684441f6751c41105e00fa424b8899fdb6ce59a4ff713

See more details on using hashes here.

Supported by

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