Skip to main content

Clean-room astrological ephemeris engine: planetary and lunar positions, houses, aspects, and events from published sources. The Python reference for the Caelus engine.

Project description

caelus-engine

The Python reference implementation of the Caelus astrological ephemeris engine. Clean-room, MIT-licensed, written from published sources (VSOP87D, ELP/Meeus, IAU models, JPL Horizons fits). No Swiss Ephemeris code, no bundled third-party ephemeris files.

The engine reads pre-built Chebyshev and series packs shipped with the package and runs on the Python standard library alone. It is also the reference that the TypeScript engine (caelus on npm) is pinned to by a golden conformance suite.

Install

pip install caelus-engine

The import package is astroengine:

from astroengine import Engine, BODIES

eng = Engine("full")
jd = 2451545.0  # 2000-01-01 12:00 UT
for body in BODIES:
    print(f"{body:10s} {eng.longitude(body, jd):10.5f}")

What it computes

  • Planetary and lunar apparent geocentric ecliptic longitudes (VSOP87D for the planets, Meeus Ch. 47 for the Moon, Meeus Ch. 37 series for Pluto), with light-time, annual aberration, FK5 frame correction, and IAU 1980 nutation.
  • 12 house systems; tropical and sidereal (8 ayanamsas).
  • Aspects with configurable orbs.
  • Events: rise/set/transit, longitude crossings, lunar phases, stations, Gauquelin sectors, solar and lunar eclipses.
  • Fixed stars and topocentric positions.
  • Derived charts: returns, secondary progressions, solar arc, composite and Davison, harmonics, antiscia, declination aspects and parallels, out-of-bounds, dignities, sect.
  • A declarative when() query engine over celestial predicates.
  • A turbo tier (Turbo): segmented Chebyshev longitude packs fit to the engine for bulk scans.

Accuracy

Accuracy is calibrated against Swiss Ephemeris and validated against JPL Horizons, stated per body rather than as a blanket figure. See the validation tables at https://ephemengine.com.

Optional: the fitting toolchain

The engine runs without any third-party dependency. The data-fitting tools that regenerate the coefficient packs need numpy:

pip install "caelus-engine[fit]"

License

MIT. See LICENSE. Project home: https://ephemengine.com. Source: https://github.com/heavyblotto/caelus.

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

caelus_engine-0.8.0.tar.gz (3.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

caelus_engine-0.8.0-py3-none-any.whl (3.3 MB view details)

Uploaded Python 3

File details

Details for the file caelus_engine-0.8.0.tar.gz.

File metadata

  • Download URL: caelus_engine-0.8.0.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for caelus_engine-0.8.0.tar.gz
Algorithm Hash digest
SHA256 2b5f0e6194e4dad047459620b1d2abeaa272772ba85dbe6b2108dfae566096f3
MD5 5bd8e2a4eedd2f4d945e49da2f7e6ff6
BLAKE2b-256 41041ef5df67d4046a4fcde3fdc9620c564c11aa83dd4b012e62e910a792ff3b

See more details on using hashes here.

File details

Details for the file caelus_engine-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: caelus_engine-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for caelus_engine-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa31f22d7dfca5b2812217d2f197469b96a2c2ecb58b3a5417ea9f15216a593b
MD5 1ca347de23b0d35d5e3bfad4f715649a
BLAKE2b-256 2cbd2b2ad0e989cbdbedc707552138c03f3491fc23d4046c98d1a93967eeaa66

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page