coronalyze.pipelines#

Yield simulation pipelines for coronagraphoto integration.

High-level workflows:
  • calculate_yield_snr: End-to-end subtraction + SNR calculation

  • klip_subtract: PCA/KLIP PSF subtraction

Subtraction primitives are in coronalyze.core.modeling:
  • subtract_star, subtract_disk

Submodules#

Functions#

calculate_yield_snr(science, planet_positions, fwhm[, ...])

End-to-end yield SNR calculation.

klip_subtract(science, reference_cube[, n_modes])

KLIP/PCA PSF subtraction.

Package Contents#

coronalyze.pipelines.calculate_yield_snr(science, planet_positions, fwhm, star_model=None, disk_model=None, reference_cube=None, n_modes=5, method='star', star_scale=1.0, disk_scale=1.0, exclusion_buffer=0.5, validity_map=None)[source]#

End-to-end yield SNR calculation.

Convenience function that performs subtraction and SNR calculation in one call. Selects the appropriate subtraction method based on the method argument.

Args:

science: Observed image (electrons). planet_positions: Planet positions as (N, 2) array of (y, x) coords. fwhm: PSF FWHM in pixels. star_model: Noiseless star expectation (required for ‘star’ method). disk_model: Optional noiseless disk expectation. reference_cube: Reference library for KLIP (required for ‘klip’/’rdi’). n_modes: Number of PCA modes (for klip method only). method: Subtraction method - “star”, “rdi”, or “klip”. star_scale: Scaling factor for star model (default 1.0). disk_scale: Scaling factor for disk model (default 1.0). exclusion_buffer: Gap between test and reference apertures in units

of angular step (default 0.5). Prevents PSF wing leakage.

validity_map: Optional 2D mask (1=valid, 0=invalid) to exclude

known companions, bad pixels, or edge regions.

Returns:

SNR values for each planet position.

Example:

# Fast yield calculation with static PSF
snrs = calculate_yield_snr(
    science_image,
    planet_positions,
    fwhm=4.5,
    star_model=star_expectation,
    disk_model=disk_expectation,
    method="star"
)
Parameters:
  • science (jax.numpy.ndarray)

  • planet_positions (jax.numpy.ndarray)

  • fwhm (float)

  • star_model (jax.numpy.ndarray)

  • disk_model (jax.numpy.ndarray)

  • reference_cube (jax.numpy.ndarray)

  • n_modes (int)

  • method (str)

  • star_scale (float)

  • disk_scale (float)

  • exclusion_buffer (float)

  • validity_map (jax.numpy.ndarray)

Return type:

jax.numpy.ndarray

coronalyze.pipelines.klip_subtract(science, reference_cube, n_modes=5)[source]#

KLIP/PCA PSF subtraction.

Uses PCA to build a stellar PSF model from a reference cube (e.g., images at different roll angles) and subtracts it.

This is the most physically realistic stellar subtraction mode but also the slowest.

Args:

science: Science observation (electrons). reference_cube: Reference library of shape (n_frames, ny, nx).

Typically star-only images at different roll angles.

n_modes: Number of PCA modes to use for subtraction.

Returns:

Residual image after KLIP subtraction.

Example:

# ADI with KLIP
residual = klip_subtract(science, roll_cube, n_modes=10)
# If you also need disk subtraction, do it after:
residual = subtract_disk(residual, disk_model)
Parameters:
  • science (jax.numpy.ndarray)

  • reference_cube (jax.numpy.ndarray)

  • n_modes (int)

Return type:

jax.numpy.ndarray