Metadata-Version: 2.4
Name: visualastro
Version: 0.3.1
Summary: Astro data analysis and plotting package
Author-email: Elko Gerville-Reache <elkogerville@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/elkogerville/VisualAstro
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: astropy
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: scipy
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Provides-Extra: images
Requires-Dist: regions; extra == "images"
Requires-Dist: reproject; extra == "images"
Provides-Extra: spectralcube
Requires-Dist: spectral_cube; extra == "spectralcube"
Requires-Dist: regions; extra == "spectralcube"
Requires-Dist: reproject; extra == "spectralcube"
Provides-Extra: spectra
Requires-Dist: specutils; extra == "spectra"
Requires-Dist: dust_extinction; extra == "spectra"
Provides-Extra: styles
Requires-Dist: scienceplots; extra == "styles"
Provides-Extra: utils
Requires-Dist: cmasher; extra == "utils"
Requires-Dist: colorspacious; extra == "utils"
Requires-Dist: tol-colors; extra == "utils"
Requires-Dist: tqdm; extra == "utils"
Provides-Extra: all
Requires-Dist: cmasher; extra == "all"
Requires-Dist: colorspacious; extra == "all"
Requires-Dist: dust_extinction; extra == "all"
Requires-Dist: regions; extra == "all"
Requires-Dist: reproject; extra == "all"
Requires-Dist: scienceplots; extra == "all"
Requires-Dist: spectral_cube; extra == "all"
Requires-Dist: specutils; extra == "all"
Requires-Dist: tol-colors; extra == "all"
Requires-Dist: tqdm; extra == "all"
Dynamic: license-file

```
            /$$                            /$$                    /$$
           |__/                           | $$                   | $$
 /$$    /$$ /$$  /$$$$$$ /$$  /$$  /$$$$$ | $$  /$$$$$   /$$$$$ /$$$$$$   /$$$$$   /$$$$$$
|  $$  /$$/| $$ /$$____/| $$ | $$ |____ $$| $$ |____ $$ /$$___/|_  $$_/  /$$__ $$ /$$__  $$
 \  $$/$$/ | $$|  $$$$$ | $$ | $$  /$$$$$$| $$  /$$$$$$|  $$$$$  | $$   | $$ \__/| $$  \ $$
  \  $$$/  | $$ \___  $$| $$ | $$ /$$__ $$| $$ /$$__ $$ \___  $$ | $$ /$| $$     | $$  | $$
   \  $/   | $$ /$$$$$$/|  $$$$$/|  $$$$$$| $$|  $$$$$$ /$$$$$$/ |  $$$$| $$     |  $$$$$$/
    \_/    |__/|______/  \_____/  \______/|__/ \______/|______/   \___/ |__/      \______/
```


# VisualAstro
[![PyPI Version](https://img.shields.io/pypi/v/visualastro)](https://pypi.org/project/visualastro)
[![Tests](https://github.com/elkogerville/VisualAstro/actions/workflows/test.yml/badge.svg)](https://github.com/elkogerville/VisualAstro/actions/workflows/test.yml)

**VisualAstro** is an astrophysical visualization system with functions for easy visualization and manipulation of astronomical data. The package aims to make publication-ready plots with minimal commands.

<p align="center">
  <img src="https://github.com/elkogerville/VisualAstro/blob/main/example_figures/SN1987A.png" width="30%">
  <img src="https://github.com/elkogerville/VisualAstro/blob/main/example_figures/MIRI_spectrum_bkg_subtracted.png" width="60%">
</p>

## Features

- Unified interface for Matplotlib, Astropy, NumPy, spectral-cube, specutils, and other astronomy packages
- Custom mathtext stylesheets without `LaTeX` installation as well as many other styles for publication-quality figures
- Colorblind safe alternative colorsets, and colormaps
- User-friendly interface with many convenience methods that integrate with Matplotlib and other packages

## Installation

Currently, the most stable version of python for VisualAstro is version >=3.10.
To install VisualAstro, it is advised to create a new conda environment if possible:
```
$ conda create -n visualastro -c conda-forge python=3.13
$ conda activate visualastro
```
Then install the dependencies with:
```
$ conda install -c conda-forge \
    astropy matplotlib numpy scipy
```
Optional dependencies can also be installed if you plan to use related functionalities:
```
$ conda install -c conda-forge \
    colorspacious dust_extinction regions reproject spectral-cube scienceplots specutils tqdm
```
And finally run:
```
$ pip install visualastro
```
For additional interactive functionality inside of jupyter lab:
```
$ conda install -c conda-forge ipympl ipywidgets jupyterlab
```
For classic jupyter notebook users:
```
$ conda install -c conda-forge ipympl ipywidgets notebook jupyter_server notebook-shim
```

NOTE: To ensure that interactive mode works in notebooks, first activate your conda environment and then run jupyter notebook!


## Documentation
VisualAstro is still under development! A full documentation of the package's features is coming soon.

Check the [examples](examples/) folder for notebook tutorials!

## Dependencies

VisualAstro requires:

`astropy`, `matplotlib`, `numpy`, and `scipy`.

### Optional dependencies

Optionally, some functionalities of VisualAstro require:

* Image Data: `regions`, `reproject`
* Cube Data: `spectral-cube`
* Spectra: `specutils`, `dust_extinction`
* Extra Stylesheets: `scienceplots`
* Color Utilities: `cmasher`, `colorspacious`, `tol-colors`
* Progress Bar: `tqdm`

If you try to use functionalities that require an optionally dependent package but do not have that package installed, VisualAstro will raise an ImportError and prompt you to install that package.

## Examples

Example colorsets:
<p align="center">
  <img src="https://github.com/elkogerville/VisualAstro/blob/main/example_figures/astro_seq.png" width="45%">
  <img src="https://github.com/elkogerville/VisualAstro/blob/main/example_figures/debos.png" width="45%">
</p>

Example fontstyles:
<p align="center">
  <img src="https://github.com/elkogerville/VisualAstro/blob/main/example_figures/cm_fontstyle.png" width="45%">
  <img src="https://github.com/elkogerville/VisualAstro/blob/main/example_figures/libertinus_fontstyle.png" width="45%">
</p>

## Credits

### Fonts
VisualAstro includes multiple mathtext fonts:

Concrete Math, distributed under the SIL OPEN FONT LICENSE from a release by:
```
author = Daniel Flipo
year = 2022-2026
url = https://ctan.org/tex-archive/fonts/concmath-otf?lang=en
```

Libertinus Math, distributed under the SIL OPEN FONT LICENSE from a release by:
```
authors = Caleb Maclennan, Libertinus Project Authors
year = 2012-2024
url = https://github.com/alerque/libertinus V7.051
```

New Computer Modern, distributed under GNU GENERAL PUBLIC LICENSE from a release by:
```
author = Antonis Tsolomitis
location = Samos, Greece
year = 2019--2026
url = https://ctan.org/texarchive/fonts/newcomputermodern?lang=en
```

VisualAstro includes Hershey-style TrueType fonts from the smplotlib project
by Jiaxuan Li, used under the MIT License. Citation:
```
@software{jiaxuan_li_2023_8126529,
  author       = {Jiaxuan Li},
  title        = {AstroJacobLi/smplotlib: v0.0.9},
  month        = jul,
  year         = 2023,
  publisher    = {Zenodo},
  version      = {v0.0.9},
  doi          = {10.5281/zenodo.8126529},
  url          = {https://doi.org/10.5281/zenodo.8126529},
}
```
