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 (7 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.
- Electional primitives: applying/separating aspects, solar phase (cazimi/combust/under-the-beams), planetary hours, void-of-course Moon, house placement.
- A declarative
when()query engine over celestial predicates. - A turbo tier (
Turbo): segmented Chebyshev longitude packs fit to the engine for bulk scans. - 3D aspects (
angular_separation_3d): the great-circle angle between two bodies, accounting for ecliptic latitude. - Astrocartography (
astrocartography): the planetary angle lines (MC/IC meridians, ASC/DSC rising and setting tracks) across the globe.
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
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 caelus_engine-0.10.0.tar.gz.
File metadata
- Download URL: caelus_engine-0.10.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9591155572604ca75534d1e00f137add7da40c61ce6620ea2b363a3a7b6cf1db
|
|
| MD5 |
fe6e5d8340620a64af93121c6e33e934
|
|
| BLAKE2b-256 |
a1b4abd0e4d69316d8393e89b2e20d944267ad1a829dac76d7ed7df1fafdb927
|
File details
Details for the file caelus_engine-0.10.0-py3-none-any.whl.
File metadata
- Download URL: caelus_engine-0.10.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b924c8dbab5c3d847e11c06fffa26a9cb24358695b729dabb0d98b59d213b99e
|
|
| MD5 |
37749a5a1ef1ebf2427a31e28cd04051
|
|
| BLAKE2b-256 |
84b369401b04778e4344b20abed373f98ce5f1a9b2a409ae7c61c42b22b27b1d
|