Zodiacal and exozodiacal light brightness conventions with a single-source numpy/JAX core
Project description
zodi
Zodiacal and exozodiacal light brightness conventions for exoplanet imaging, from a single source that runs on numpy and JAX.
Status: v0.1 core (pre-PyPI). The LBTI HOSTS population distributions land next.
What it owns
- Local zodiacal light surface brightness: the Leinert et al. (1998)
Table 17 position dependence and Table 19 wavelength dependence, with the
interpolation, anchoring, and near-Sun conventions of the production
codes stated explicitly (
zodi.specific_intensity,zodi.zodi_flux_ratio). - The exozodi chain of Stark et al. (2014) as implemented by EXOSIMS
(
zodi.exozodi_flux_ratio_v,zodi.jez0,zodi.scale_jez), the three published latitudinal models (zodi.latitudinal_factor), and the grey-scatterer band correction in both production flavors: the stellar-color scaling used by pyEDITH (zodi.exozodi_flux_ratio_band) and the scattered-plus-thermal spectrum model used by EXOSIMS, with its calibration as a closed-form least-squares fit (zodi.fit_grey_scatter_constants). - Unit conversions between the dialects in common use: magnitudes per
square arcsecond, flux ratio per square arcsecond, spectral radiance,
photon rates, and MJy per steradian (
zodi.units).
Coming next: the LBTI HOSTS survey n-zodi population distributions as quantile functions (callers supply their own uniform draws).
Documentation and validation
docs/conventions.md states every model, constant, and known cross-code
difference with sources and measured deltas; docs/validation.md maps
each claim to an executable check. Cross-validation scripts against
EXOSIMS, skyscapes, and zodipy live in scripts/ and are runnable by
anyone with those packages installed. Current results: exact agreement
with the EXOSIMS closed-form models and magnitude chain, float64
round-off agreement with skyscapes, and 0.95-1.23 brightness ratios
against the independent Kelsall model at 1.25 um.
Design
One implementation serves both backends through the array API standard.
Functions compute in the namespace of their array inputs (via
array-api-compat), so numpy callers get numpy in and numpy out with no JAX
anywhere in their dependency tree, while JAX callers get functions that jit,
vmap, and differentiate natively. Hard dependencies are numpy and
array-api-compat only; the [jax] extra exists so the test suite can run
the JAX side. JAX users should enable float64:
jax.config.update("jax_enable_x64", True)
Random sampling is deliberately absent from the library: distributions ship
as quantile functions (inverse CDFs), and callers bring uniforms from their
own generator, whether that is numpy.random or jax.random.
Not this library
Structured circumstellar disks (rings, gaps, offsets) and scene rendering belong to scene simulators; solar-system ephemerides belong to the caller. For thermal-infrared zodiacal emission modeling, see zodipy; this library covers the reflected-light brightness conventions used in exoplanet direct imaging.
Install
PyPI release pending; for now:
pip install git+https://github.com/CoreySpohn/zodi.git
Project details
Release history Release notifications | RSS feed
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 zodi-0.1.0.tar.gz.
File metadata
- Download URL: zodi-0.1.0.tar.gz
- Upload date:
- Size: 35.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2202febf11674baf7ff51b193bf99dce7f60bdf2f61ddc9b5c8c6b8765abdb57
|
|
| MD5 |
49b881be87962025e1611d19752d540c
|
|
| BLAKE2b-256 |
3f76bf725a427b3c7b6a5dfeda7c586e8d78519871f1fe5b376aced4f69bedaa
|
Provenance
The following attestation bundles were made for zodi-0.1.0.tar.gz:
Publisher:
publish-to-pypi.yml on CoreySpohn/zodi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zodi-0.1.0.tar.gz -
Subject digest:
2202febf11674baf7ff51b193bf99dce7f60bdf2f61ddc9b5c8c6b8765abdb57 - Sigstore transparency entry: 2194867130
- Sigstore integration time:
-
Permalink:
CoreySpohn/zodi@9f894613d41d3306040d950ab82083ea040d3736 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/CoreySpohn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9f894613d41d3306040d950ab82083ea040d3736 -
Trigger Event:
push
-
Statement type:
File details
Details for the file zodi-0.1.0-py3-none-any.whl.
File metadata
- Download URL: zodi-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97723065276bd2a9262fbffa2ce8aaf20310569750e95d0b6883da4bab6d2e80
|
|
| MD5 |
7d7a5688a304da5dee191ab910dfa7f7
|
|
| BLAKE2b-256 |
d41d1e89203fe7c436f75a6256544b1fb1bce2422aa3db810ca220f4509f33b3
|
Provenance
The following attestation bundles were made for zodi-0.1.0-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on CoreySpohn/zodi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zodi-0.1.0-py3-none-any.whl -
Subject digest:
97723065276bd2a9262fbffa2ce8aaf20310569750e95d0b6883da4bab6d2e80 - Sigstore transparency entry: 2194867134
- Sigstore integration time:
-
Permalink:
CoreySpohn/zodi@9f894613d41d3306040d950ab82083ea040d3736 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/CoreySpohn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9f894613d41d3306040d950ab82083ea040d3736 -
Trigger Event:
push
-
Statement type: