Skip to content
 
 

Repository files navigation

AstroLore

Tests PyPI Python License: MIT

Astrolore is a Python package that bridges real astronomy with science fiction. Given any astrophysical object — by name or sky coordinates — it finds the nearest object in its curated sci-fi catalog and tells you where it appears across film, TV, and literature.


What it does

  • Resolves any object name via the CDS Sesame name resolver (Simbad/NED), or accepts raw RA/DEC coordinates directly
  • Searches a catalog of ~80 real astronomical objects referenced in science fiction and finds the one with the smallest angular separation from your input
  • Returns lore — which franchises reference it and what role it plays in those universes
  • Plots a full-sky Aitoff map showing your object, the nearest sci-fi source, and the rest of the catalog
  • Opens Aladin Sky Atlas centered on the nearest sci-fi object so you can observe it in real survey imagery

Demo

Search by name Search by coordinates
Full sky map View in Aladin

Sci-fi catalog

The catalog covers ~80 real objects referenced across:

Franchise Franchise
Star Trek (TOS, TNG, DS9, VOY, TAS) Dune
The Expanse Foundation
Mass Effect Halo
Babylon 5 Ender's Game
Contact Project Hail Mary
Rick and Morty Stargate SG-1
The Hitchhiker's Guide to the Galaxy Classic sci-fi short fiction

Objects range from nearby stars (Proxima Centauri, Wolf 359, Barnard's Star) to galaxies (Andromeda, Pinwheel) and nebulae (Crab Nebula, Helix Nebula).


Installation

pip install astrolore

Dependencies: pandas · astropy · numpy · matplotlib · pywebview · Pillow

tkinter is bundled with most Python distributions. On Linux you may need sudo apt-get install python3-tk.


Usage

GUI

from astrolore import gui

gui.main_gui().start_gui()

Programmatic API

from astrolore.dataset import astrolore_dataset

ds = astrolore_dataset()

# Search by name (resolved via Simbad/NED)
closest = ds.find_closest_object(name="Betelgeuse")
print(ds.output_lore(closest))

# Search by coordinates (ICRS sexagesimal)
closest = ds.find_closest_object(coords=("5h55m10.3s", "7d24m25.4s"))
print(ds.output_lore(closest))

# Generate and save the full-sky map
fig, ax = ds.get_catalog_map()
fig.savefig("skymap.png", dpi=150, bbox_inches="tight")

Documentation

Full API reference: arnablahiry.github.io/software/astrolore


Authors

Name Email
Arnab Lahiry alahiry@ics.forth.gr
Isabele Souza Vitorio ivitorio@umich.edu
Joe Adamo jadamo@arizona.edu
Kayvon Sharifi ksharifi1@gsu.edu

About

Find the nearest sci-fi object in the sky

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages