Changelog

This page summarizes notable changes. The authoritative history is the git log and the design specs under docs/superpowers/.

v0.1.0

Initial public release. Highlights:

  • Scene abstraction: Scene and SceneElement manage source, host, and background elements, built through get_scene().

  • Selectable magnitude system: magsys="vegamag" (default) or magsys="abmag" (case-insensitive) on SceneElement and get_scene(). Note that magnitudes without an explicit magsys — including the built-in zodi background (mag=22.5) — are Vega magnitudes. The AB offset is negligible in Johnson V (~0.002 mag) but grows toward the red (~0.26 mag in R, ~1.9 mag in K).

  • Separate Sensor and Telescope objects, with sensor bit_depth / bias_level / adc_max properties.

  • 2-D image SNR by default: get_snr() delegates to get_image_snr() and returns a dict (index ["snr"]). The analytic Airy form remains as get_snr_airy (deprecated) for cross-checks.

  • Exposure-time inversion: get_exptime_for_snr().

  • PSF simulator and PSF-aware SNR: AiryPSF, DefocusPSF, CustomPSF, ImageSimulator, and aperture optimization in get_image_snr().

  • Saturation flagging: get_peak_pixel() and is_saturated().

  • Parametric source spectra in get_scene(): blackbody, flat (\(F_\nu\)/\(F_\lambda\)), powerlaw, and emission; shape parameters are rebuildable via update.

  • Background spectrum support and a selection of filters.

  • Convenience plotting (wcc_etc.plotting): matplotlib and bokeh variants of image, image-row, radial-profile, and encircled-energy plots, plus a shared house style (set_wcc_style / WCC_STYLE) and dispatch methods on SimulatedImage.