StarHash
Generate unique, memorable, and deterministic names for astronomical objects.
Why?
Because modern astronomy is hard enough, without mixing up sequentially-generated object names. Assigning memorable names to objects not only minimises the chance of triggering precious telescope time on the wrong thing, but reduces cognitive load.
Every 3 arcsecond patch of sky now has a unique 3-word combination associated with it!
Example
- Instead of
SN2024cldorra=237.589792 dec=+18.93895 - You get:
armrest-fraying-bullion
Installation
To avoid issues with dependencies, we recommend setting up a virtual environment using your favourite package manager. Then:
pip install starhash
or with uv
uv add starhash
Quickstart
StarHash ships a basic CLI for quick queries by default
starhash get-name-from-coord --ra=321.4214 --dec=-54.21231
starhash get-coord-from-name gathering-equinox-approach
Development and contributing
git clone https://github.com/tkillestein/starhash.git
Then create the dev environment:
uv sync --all-groups --python>=3.11
Install the pre-commit hooks
pre-commit install
And you're ready to go!
Before committing any changes, run pytest to confirm that the hashing code still
satisfies the round-trip property.
Documentation is built via mkdocs - add Markdown files to docs and edit the
mkdocs.yml file to build pages there. Then commit and push your changes, and run
mkdocs gh-deploy to update the documentations site.
Citation
If you include StarHash in your favourite pipeline/broker/API, please cite:
@software{starhash,
author = {Tom Killestein},
title = {StarHash: Human-readable identifiers for astronomical coordinates},
year = {2026},
url = {https://github.com/tkillestein/starhash}
}