astrogram 0.0.0

Astrology data-format conversion library.
Documentation

Medium Coeli

Astrology software workspace. Two Rust projects share this repo as four crates:

  • Starcat — ephemeris computation and presentation. Reads NASA JPL DE441 binary files and produces ecliptic-of-date apparent positions for Astrological placements. Supports multiple geographic coordinate systems, astronomical coordinate systems, and astrological house systems.

  • Blackmoon — chart data-format conversion. Reads and writes:

    • Solar Fire .SFcht files
    • Astrodatabank XML
    • Astrolog AAF
    • Zeus

Quick Start

brew bundle
just release
export PATH="$PATH:$PWD/target/release"

Blackmoon example

blackmoon ~/Library/Mobile\ Documents/com~apple~CloudDocs/charts/*.{SFcht,xml,zdb} --output now.sfcht
...
wrote blackmoon.20260608T224605Z.sfcht
open -a "Astro Gold.app" blackmoon.*.sfcht

Starcat example

just fetch de441
export STARCAT_JPL_DATA="$PWD/de441"
starcat compute --date 1895-12-03 --time 15:15:00 --calendar gregorian --tz=+01:00 --lat 48.208333 --lon=16.371667 --house=placidus

╭─────────────────────────────────────────────────╮
│ 1895.12.03 15:15 UTC+01:00     48°N12' 016°E22' │
│ Gregorian                           Topocentric │
│ Tropical                               Placidus │
╰─────────────────────────────────────────────────╯
╭─────────────────────────────────────────────────╮
│ JD UT 2413531.0938                      Diurnal │
├─────────────────────────────────────────────────┤
│ Placement │  Longitude │ Placement │  Longitude │
├───────────┼────────────┼───────────┼────────────┤
│ H1        │ 28°15' Tau │ Uranus    │ 21°30' Sco │
│ Ac        │ 28°15' Tau │ Mars      │ 23°58' Sco │
│ Pluto   ℞ │ 11°46' Gem │ H7        │ 28°15' Sco │
│ Neptune ℞ │ 16°48' Gem │ Ds        │ 28°15' Sco │
│ H2        │ 22°06' Gem │ Mercury   │  1°47' Sag │
│ Moon      │ 27°56' Gem │ Sun       │ 11°12' Sag │
│ H3        │ 10°47' Can │ Fortune   │ 14°59' Sag │
│ H4        │  0°05' Leo │ H8        │ 22°06' Sag │
│ Ic        │  0°05' Leo │ H9        │ 10°47' Cap │
│ Jupiter ℞ │  9°02' Leo │ H10       │  0°05' Aqu │
│ H5        │ 24°54' Leo │ Mc        │  0°05' Aqu │
│ Sn      ℞ │  7°46' Vir │ H11       │ 24°54' Aqu │
│ H6        │  3°40' Lib │ Nn      ℞ │  7°46' Pis │
│ Venus     │ 24°29' Lib │ H12       │  3°40' Ari │
│ Vx        │ 25°16' Lib │ Ax        │ 25°16' Ari │
│ Spirit    │ 11°31' Sco │ Eros      │ 11°13' Tau │
│ Saturn    │ 13°37' Sco │           │            │
╰───────────┴────────────┴───────────┴────────────╯

Shell completion

eval "$(starcat generate-completion)"
eval "$(blackmoon --generate-completion)"

Docker users

docker run --rm --pull always -v "${STARCAT_JPL_DATA}":/jpl:ro lucidaeon/starcat compute --date 1895-12-03 --time 15:15:00 --calendar gregorian --tz=+01:00 --lat 48.208333 --lon=16.371667 --house=placidus

Common tasks

just build     # cargo build
just release   # cargo build --release
just test      # cargo test --release -- --nocapture
just lint      # cargo clippy --workspace --all-targets -- -D warnings
just fmt       # cargo fmt --all

NASA JPL Ephemerides

Starcat usage and tests require STARCAT_JPL_DATA set to a directory containing the DE441 ASCII header and binary pair. Use just fetch de441 to mirror the JPL release. Tests skip cleanly when the env var is unset.

License

CC0-1.0. See LICENSE.

Disclaimer

All product names, logos, and brands are property of their respective owners. All company, product and service names used in this software and documentation are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.