Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zodi-0.1.0.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

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

zodi-0.1.0-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

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

Hashes for zodi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2202febf11674baf7ff51b193bf99dce7f60bdf2f61ddc9b5c8c6b8765abdb57
MD5 49b881be87962025e1611d19752d540c
BLAKE2b-256 3f76bf725a427b3c7b6a5dfeda7c586e8d78519871f1fe5b376aced4f69bedaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for zodi-0.1.0.tar.gz:

Publisher: publish-to-pypi.yml on CoreySpohn/zodi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for zodi-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97723065276bd2a9262fbffa2ce8aaf20310569750e95d0b6883da4bab6d2e80
MD5 7d7a5688a304da5dee191ab910dfa7f7
BLAKE2b-256 d41d1e89203fe7c436f75a6256544b1fb1bce2422aa3db810ca220f4509f33b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for zodi-0.1.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on CoreySpohn/zodi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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