Spatial Metrics and Backgrounds#
This notebook covers the metrics that govern background noise contributions: core area and occulter transmission. The physical size of the PSF core dictates how much background noise enters the photometric aperture.
Theory#
Core Area#
The core area \(\Omega\), measured in \((\lambda/D)^2\), represents the effective solid angle of the PSF core. It enters the ETC in two ways:
Detector pixels: \(N_{\rm pix} = \Omega / \theta_{\rm det}^2\) gives the number of detector pixels subtended by the core
Background scaling: All extended-source backgrounds (zodiacal dust, exozodiacal dust, detector noise) scale with \(\Omega\)
For a fixed circular aperture, the core area is constant: \(\Omega = \pi r_{ap}^2\). For the PSF truncation ratio method, the mask shape adapts to the PSF at each separation, so \(\Omega\) varies.
Occulter Transmission#
Coronagraphs also reject light from extended background sources such as
zodiacal and exozodiacal dust. The occulter transmission is the radial
profile of the sky_trans.fits mask. In the ETC, it directly scales the
background count rates \(C_{bz}\) and \(C_{bez}\).
API: Use compute_occ_trans_curve() for the
radial profile, or access the raw 2D map via coro.sky_trans().
from yippy.performance import compute_occ_trans_curve
seps, occ_trans = compute_occ_trans_curve(coro)
# Or access the 2D sky transmission map:
sky_map = coro.sky_trans() # 2D array
/home/docs/checkouts/readthedocs.org/user_builds/yippy/envs/latest/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
Coronagraph: eac1_aavc_2d (Amplitude Apodized Vortex Coronagraph, generated by Susan Redmond)
Pixel scale: 0.25 λ/D / pix
IWA: 4.26 λ/D, OWA: 32.00 λ/D
Core Area: Fixed Aperture#
With a fixed circular aperture, core area is constant: \(\Omega = \pi r_{ap}^2\) in \((\lambda/D)^2\).
An alternative is to fit a 2D Gaussian to each PSF and compute \(\Omega = \pi \cdot \text{FWHM}_x \cdot \text{FWHM}_y / 4\) (shown below for comparison, but not typically used in ETCs).
API: Use compute_core_area_curve() for fixed
apertures (with optional Gaussian fitting), or
compute_truncation_core_area_curve() for truncation
masks.
from yippy.performance import compute_core_area_curve, compute_truncation_core_area_curve
seps, areas = compute_core_area_curve(coro, aperture_radius_lod=0.7)
seps, areas = compute_truncation_core_area_curve(coro, psf_trunc_ratio=0.3)
Core Area: Truncation Ratio Animation#
With the PSF truncation ratio method, the core area varies with separation because the mask shape adapts to the PSF structure. The animation below shows the truncation mask (cyan contour) and the corresponding core area at each position, compared with the constant fixed-aperture value.
Fixed vs Truncation Comparison#
Note how the truncation-ratio core area varies with separation while the fixed aperture is constant. When calculating exposure times, AYO loops over multiple truncation ratios and picks the one that minimizes integration time at each separation.
For a deeper comparison of these two aperture methods, including noise metrics and AYO’s optimization strategy, see the Aperture Methods Comparison.
Occulter Transmission#
Occulter transmission represents how much light from spatially extended
background sources (zodiacal dust, exozodiacal dust) survives the coronagraph
mask. It is the radial profile of the sky_trans.fits mask.
In the ETC, it scales all extended-source backgrounds (\(C_{bz}\), \(C_{bez}\)).