space-classy 0.8.8
classification tool for minor bodies using reflectance spectra and visual albedos
License: MIT
Requires Python: >=3.8

<p align="center">
  <img width="260" src="https://raw.githubusercontent.com/maxmahlke/classy/master/docs/_static/logo_classy.svg">
</p>

<p align="center">
  <a href="https://github.com/maxmahlke/classy#features"> Showcase </a> - <a href="https://github.com/maxmahlke/classy#install"> Install </a> - <a href="https://github.com/maxmahlke/classy#documentation"> Documentation </a>
</p>

<br>

<div align="center">
  <a href="https://img.shields.io/pypi/pyversions/space-classy">
    <img src="https://img.shields.io/pypi/pyversions/space-classy"/>
  </a>
  <a href="https://img.shields.io/pypi/v/space-classy">
    <img src="https://img.shields.io/pypi/v/space-classy"/>
  </a>
  <a href="https://readthedocs.org/projects/classy/badge/?version=latest">
    <img src="https://readthedocs.org/projects/classy/badge/?version=latest"/>
  </a>
  <a href="https://arxiv.org/abs/2203.11229">
    <img src="https://img.shields.io/badge/arXiv-2203.11229-f9f107.svg"/>
  </a>
</div>

<br>

A tool to explore, download, analyse, and classify asteroid reflectance
spectra. Originally designed for classification in the taxonomy of [Mahlke,
Carry, and Mattei 2022](https://arxiv.org/abs/2203.11229), it now offers
multiple taxonomic systems and a suite of quality-of-life features for
spectroscopic analysis.

# Showcase

Things that ``classy`` tries to do well. All functionality is available via the command line and the `python` interface.
Some functionality is available via the [web interface](https://classy.streamlit.app).

**Explore and compare.**

Quickly find and download spectra in public repositories.

*Example*: List all spectra of asteroids in the Themis family with albedos up to 0.06 that cover the 0.45-1.8μm range.

```shell
$ classy spectra --wave_min 0.45 --wave_max 1.8 --family Themis --albedo ,0.06
+-----------+--------+----------+----------+--------+---------------------+--------+--------+-----------------+
| name      | number | wave_min | wave_max | phase  | date_obs            | family | albedo | shortbib        |
+-----------+--------+----------+----------+--------+---------------------+--------+--------+-----------------+
| Themis    | 24     | 0.435    | 2.49     | 12.917 | 2005-10-08T05:28:30 | Themis | 0.051  | MITHNEOS Unpub. |
| Themis    | 24     | 0.45     | 2.4      | -      | -                   | Themis | 0.051  | Fornasier+ 2016 |
| Themis    | 24     | 0.435    | 2.49     | 12.876 | 2005-10-08T00:00:00 | Themis | 0.051  | DeMeo+ 2009     |
| Adorea    | 268    | 0.44     | 2.4      | -      | -                   | Themis | 0.039  | Fornasier+ 2016 |
| Lipperta  | 846    | 0.45     | 2.39     | -      | -                   | Themis | 0.05   | Fornasier+ 2016 |
| Lermontov | 2222   | 0.45     | 2.38     | -      | -                   | Themis | 0.051  | Fornasier+ 2016 |
+-----------+--------+----------+----------+--------+---------------------+--------+--------+-----------------+
                                                    6 Spectra
```

**Analyse and classify.**

Persistent preprocessing and feature recognition for quick classification.

*Example*: Classify the spectra above following Mahlke+ 2022, DeMeo+ 2009, and Tholen 1984.

```shell
$ classy classify --wave_min 0.45 --wave_max 1.8 --family Themis --albedo ,0.06
+-----------+--------+----------+----------+--------+--------------+-------------+--------------+-----------------+
| name      | number | wave_min | wave_max | albedo | class_mahlke | class_demeo | class_tholen | shortbib        |
+-----------+--------+----------+----------+--------+--------------+-------------+--------------+-----------------+
| Themis    | 24     | 0.435    | 2.490    | 0.0507 | C            | C           | G            | MITHNEOS Unpub. |
| Themis    | 24     | 0.450    | 2.400    | 0.0507 | C            | C           |              | Fornasier+ 2016 |
| Themis    | 24     | 0.435    | 2.490    | 0.0507 | C            | C           | G            | DeMeo+ 2009     |
| Adorea    | 268    | 0.440    | 2.400    | 0.0389 | S            |             |              | Fornasier+ 2016 |
| Lipperta  | 846    | 0.450    | 2.390    | 0.0504 | P            | X           |              | Fornasier+ 2016 |
| Lermontov | 2222   | 0.450    | 2.380    | 0.0513 | P            | C           |              | Fornasier+ 2016 |
+-----------+--------+----------+----------+--------+--------------+-------------+--------------+-----------------+
                                                      6 Spectra
```

**Visualise and export.**

Quick-look plots at any step to verify your analysis.

*Example*: Show the spectra and the classification results.

```shell
$ classy classify --wave_min 0.45 --wave_max 1.8 --family Themis --albedo ,0.06 --plot
```

![Classified spectra](https://classy.readthedocs.io/en/latest/_images/spectra_classified_dark.png)

# Install

`classy` is available on the [python package index](https://pypi.org) as `space-classy`:

``` sh
$ pip install space-classy[gui]
```

# Documentation

Check out the documentation at [classy.readthedocs.io](https://classy.readthedocs.io/en/latest/) or run

     $ classy docs