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
Pre-computed catalogs
This repo also hosts a minimal set of pre-computed name mappings between existing
catalogues/name registries and their new starhash name, for those who want to explore
without installing anything.
The Transient Name Server
and NASA Exoplanet Archive lists
are located under paper/data and are distributed as .csv files with gzip
compression.
Direct links
nasa_exoplanet_archive_starhashed.csv.gz tns_public_objects_starhashed.csv.gz
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}
}
Metadata
Release files for starhash 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| starhash-1.1.1.tar.gz | 142.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| starhash-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 218.3 kB
Release files / starhash-1.1.1.tar.gz
| Download URL | starhash-1.1.1.tar.gz |
|---|---|
| Size | 142.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
619f2e966d18308cfe7df6022bc1c0e3607e5b47c09b800ebf9f570d4d3e55d9
|
|
BLAKE2b-256 checksum How to use checksums |
594c1d76caa5edf4a41ecc1fa1d0ee322923b5efa83926347ddef46925ab9528
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / starhash-1.1.1-py3-none-any.whl
| Download URL | starhash-1.1.1-py3-none-any.whl |
|---|---|
| Size | 76.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
25cadeec9d1df17731f743321f196b1410e02915109f4c00acf76110af4bbfaf
|
|
BLAKE2b-256 checksum How to use checksums |
05c2665cb7213e1d7459f757ff9c616b1dc83a20fbb5d6844029ad87cea6b1f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|