Skip to main content

StarHash

Generate unique, memorable, and deterministic names for astronomical objects.

Documentation Python Version PyPI version uv ruff ty License: MIT HEALPix

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 SN2024cld or ra=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.

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)

Source distribution for starhash 1.1.1
File Size Uploaded
starhash-1.1.1.tar.gz 142.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for starhash 1.1.1
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.0

2 release files

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