optixstuff.coronagraph#
Coronagraph abstractions.
Classes#
Abstract interface for coronagraph performance models. |
|
Base for ETC-only coronagraph models that lack 2D PSF generation. |
Module Contents#
- class optixstuff.coronagraph.AbstractCoronagraph[source]#
Bases:
equinox.ModuleAbstract interface for coronagraph performance models.
Provides both scalar performance curves (for ETC use) and 2D PSF generation (for image simulation). Implementations can be backed by pre-computed interpolation tables (yippy), physical wavefront propagation, or analytical models.
All wavelength arguments are in nanometres throughout. All separations are in lambda/D units.
- abstractmethod throughput(separation_lod, wavelength_nm, *, time_s=0.0)[source]#
Core (off-axis planet) throughput.
- Args:
separation_lod: Angular separation in lambda/D. wavelength_nm: Wavelength in nanometres. time_s: Time since mission start in seconds.
- Returns:
Fractional throughput in [0, 1].
- Parameters:
separation_lod (jax.typing.ArrayLike)
wavelength_nm (jax.typing.ArrayLike)
time_s (jax.typing.ArrayLike)
- Return type:
jax.typing.ArrayLike
- abstractmethod core_area(separation_lod, wavelength_nm, *, time_s=0.0)[source]#
Photometric aperture area in (lambda/D)^2.
- Args:
separation_lod: Angular separation in lambda/D. wavelength_nm: Wavelength in nanometres. time_s: Time since mission start in seconds.
- Returns:
Core area in (lambda/D)^2.
- Parameters:
separation_lod (jax.typing.ArrayLike)
wavelength_nm (jax.typing.ArrayLike)
time_s (jax.typing.ArrayLike)
- Return type:
jax.typing.ArrayLike
- abstractmethod core_mean_intensity(separation_lod, wavelength_nm, *, time_s=0.0)[source]#
Mean stellar intensity within the photometric aperture.
- Args:
separation_lod: Angular separation in lambda/D. wavelength_nm: Wavelength in nanometres. time_s: Time since mission start in seconds.
- Returns:
Mean stellar leakage intensity in (lambda/D)^-2.
- Parameters:
separation_lod (jax.typing.ArrayLike)
wavelength_nm (jax.typing.ArrayLike)
time_s (jax.typing.ArrayLike)
- Return type:
jax.typing.ArrayLike
- abstractmethod occulter_transmission(separation_lod, wavelength_nm, *, time_s=0.0)[source]#
Off-axis (sky/zodi) transmission through the occulter.
- Args:
separation_lod: Angular separation in lambda/D. wavelength_nm: Wavelength in nanometres. time_s: Time since mission start in seconds.
- Returns:
Fractional sky transmission in [0, 1].
- Parameters:
separation_lod (jax.typing.ArrayLike)
wavelength_nm (jax.typing.ArrayLike)
time_s (jax.typing.ArrayLike)
- Return type:
jax.typing.ArrayLike
- abstractmethod on_axis_psf(wavelength_nm, pixel_scale_rad, npixels)[source]#
On-axis (stellar leakage) PSF.
Returns the coronagraphic PSF for an on-axis point source, normalized to unit stellar flux before the coronagraph.
- Args:
wavelength_nm: Wavelength in nanometres. pixel_scale_rad: Output pixel scale in radians/pixel. npixels: Output array side length in pixels. Must be a
Python int (not a JAX array) as it determines the output shape at compile time.
- Returns:
2D float array of shape (npixels, npixels).
- abstractmethod off_axis_psf(wavelength_nm, separation_lod, pixel_scale_rad, npixels)[source]#
Off-axis PSF at a given angular separation.
- Args:
wavelength_nm: Wavelength in nanometres. separation_lod: Source separation in lambda/D. pixel_scale_rad: Output pixel scale in radians/pixel. npixels: Output array side length in pixels. Must be a
Python int (not a JAX array) as it determines the output shape at compile time.
- Returns:
2D float array of shape (npixels, npixels).
- class optixstuff.coronagraph.AbstractScalarCoronagraph[source]#
Bases:
AbstractCoronagraphBase for ETC-only coronagraph models that lack 2D PSF generation.
Stubs out the image interface with zero arrays so the class satisfies AbstractCoronagraph without requiring a full optical model.