Generate unique, memorable, and deterministic names for astronomical objects.
Project description
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}
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file starhash-1.1.0.tar.gz.
File metadata
- Download URL: starhash-1.1.0.tar.gz
- Upload date:
- Size: 6.4 MB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
add799f0f7d4fd47fe98a94c606e7cc394bf4ec445478266124ef9404e8d7e6f
|
|
| MD5 |
ff0503ad2fb815ff98a2bc0254065b59
|
|
| BLAKE2b-256 |
ee8ac023074ae471294ed96c131804c8e9b7b39f4b29f2a9ae0ac7894ba96ccc
|
File details
Details for the file starhash-1.1.0-py3-none-any.whl.
File metadata
- Download URL: starhash-1.1.0-py3-none-any.whl
- Upload date:
- Size: 76.2 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15cfe2d410924f195ada4c4a7d5030277237b8145bf572cefaec544ea3b4ef80
|
|
| MD5 |
c27eb94e6ab2cf36b37d7e87d4a10c95
|
|
| BLAKE2b-256 |
5678835bb1f093cf4bdbbb450f6e2d8e92779640ad5905f526168437093672ba
|