Skip to main content

Time-domain Astronomy Taxonomy

Code test

This project helps us track and version a taxonomy for astronomical time-series sources, for transients (e.g., supernovae and tidal-disruption events), continuous variables (e.g., QSOs) and variable stars (RR Lyrae, δ-Scuti). It is open source and we welcome PRs to change/update this taxonomy as need be.

The generic structure is human-readable YAML and looks like:

  class: Supernova
  comments: |
      This is a diverse class of explosions related
      to the end-of-life of stars.
  links:
    - https://astrobites.org/2016/12/02/classifying-supernovae/
    - https://en.wikipedia.org/wiki/Supernova
  tags: [explosive, transient]
  other names: [SN, sn, sne, supernova, supernovae]
  subclasses:
  - class: Type I
    tags: [hydrogen poor]
    other names: [SN Type I]
    subclasses:
    - class: Ia
      tags: [white dwarf, cosmology, thermonuclear]
      other names: [Ia-p, SN Ia, SNIa, supernovae Ia, SNe Ia]
      subclasses:
      - class: Ia-pec
        tags: [peculiar]
        other names: [SN Ia-pec, SNIa-pec, Ia-p]
     ...

There are two ways to describe the class. Either refer to another YAML file:

- class: Stellar variable
    subclasses:
      - ref: cataclysmic.yaml
      - ref: eclipsing.yaml
      - ...

or define the classes outright:

  - class: Novae
    tags: [binary]
    subclasses:
      - class: Classical Nova
        other names: []

In this case only the class name is required at each level. Other keys (subclasses, comments, tags, other names, and links) are allowed but not required. The schema is created such that the classification hierarchy is nested: each member of the subclasses array is itself a class. The idea of tags is to allow for a query of different class members throughout the taxonomy by a similar observation or physical inference (e.g., a search on cosmology could return both Ia and IIP supernovae).

Installation

Using pypi:

pip install -U tdtax

Or Directly from Github:

git clone https://github.com/profjsb/timedomain-taxonomy.git
cd timedomain-taxonomy
pip install .

Usage

To get the taxonomy, after installation, as a Python dict:

import tdtax
from tdtax import taxonomy

This will merge all the YAML taxonomy files referred to in the top.yaml file and check to make sure that the taxonomy is validate against the schema.

To output the current taxonomy to a webpage that can be interactively traversed:

import tdtax
tdtax.write_viz(tdtax.vega_taxonomy, outname="viz.html")

This will write a file viz.html which can be viewed in your browser. The tags associated with each node is shown upon hover.

Contributing

The taxonomy is captured starting the file tdtax/top.yaml. It refers to other YAML files which contain classification hierarchies for subclasses.

Upon import tdtax the taxonomies are merged into a single JSON tree and this is validated against the schema file tdtax/schema.json. Before a PR, test to make sure that taxonomy validates against the schema by running the tests:

pytest

This uses PyYAML to validate the taxonomy against the schema. When you make a PR, your branch will be automatically be tested with Travis CI.

To learn more about taxonomy of variable stars and explosive transients we suggest the following links:

Acknowledgements

We thank the Gordon and Betty Moore Foundation for a Software SkyPortal grant which covered the cost of the development of this project.

Metadata

Release files for tdtax 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tdtax 0.1.7
File Size Uploaded
tdtax-0.1.7.tar.gz 727.7 kB Details

Release files / tdtax-0.1.7.tar.gz

Download URL tdtax-0.1.7.tar.gz
Size 727.7 kB
Tags Source
SHA-256 checksum
How to use checksums
aa58dbab80afdc8db75ade0500c3977de672d4f6df9a37f379b602c7e20ac3ea
BLAKE2b-256 checksum
How to use checksums
d4873af6ef5b2eea810906352a8dc3fb108dff324d01c6d773e3c3d40d563eb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.1.7 This release

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.4

1 release file

0.0.2.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page