classy¶
A tool to explore, download, analyse, and classify asteroid reflectance spectra. Originally designed for classification in the taxonomy of Mahlke, Carry, and Mattei 2022, it now offers multiple taxonomic systems and a suite of quality-of-life features for spectroscopic analysis.[1]
Using the classy web interface.
Install and use classy on your machine.
Showcase¶
Things that classy tries to do well.
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.
$ 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
>>> import classy
>>> spectra = classy.Spectra(wave_min=0.45, wave_max=1.8, family="Themis", albedo=",0.06")
>>> print(f"Found {len(spectra)} spectra from {[spec.shortbib for spec in spectra]}.")
Found 6 spectra from ['MITHNEOS Unpub.', 'Fornasier+ 2016', 'DeMeo+ 2009', 'Fornasier+ 2016', 'Fornasier+ 2016', 'Fornasier+ 2016'].
Coming soon.
Analyse and classify.
Persistent preprocessing and feature recognition for quick classification.
Example: Classify the spectra above following Mahlke+ 2022, DeMeo+ 2009, and Tholen 1984.
$ 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
>>> spectra.classify(taxonomy="mahlke")
>>> spectra.classify(taxonomy="demeo")
>>> spectra.classify(taxonomy="tholen")
>>> for spec in spectra:
... print(f"{spec.name} is {spec.class_mahlke} in Mahlke+ 2022, {spec.class_demeo} in DeMeo+ 2009, and {spec.class_tholen} in Tholen 1984")
MITHNEOS/Themis is C in Mahlke+ 2022, C in DeMeo+ 2009, and G in Tholen 1984
M4AST/Themis is C in Mahlke+ 2022, C in DeMeo+ 2009, and in Tholen 1984
DM09/Themis is C in Mahlke+ 2022, C in DeMeo+ 2009, and G in Tholen 1984
M4AST/Adorea is S in Mahlke+ 2022, in DeMeo+ 2009, and in Tholen 1984
M4AST/Lipperta is P in Mahlke+ 2022, X in DeMeo+ 2009, and in Tholen 1984
M4AST/Lermontov is P in Mahlke+ 2022, C in DeMeo+ 2009, and in Tholen 1984
Coming soon.
Visualise and export.
Quick-look plots at any step to verify your analysis.
Example: Show the spectra and the classification results.
$ classy classify --wave_min 0.45 --wave_max 1.8 --family Themis --albedo ,0.06 --plot
>>> spectra.plot(taxonomy='mahlke')
Coming soon.