Repository navigation
getframes 2.1.0
[2.1.0] - 2026-07-19
Added
- Five scientific-camera presets used by the Keck tip/tilt and low-bandwidth WFS
detector trade example: KURO 1200B, Prime 95B, Marana 4.2B-11, QHY530 Pro II,
and Aries 6504 Pro. All five now include a wavelength-resolvedqe_curve:
Marana and Aries from Andor's/Gpixel's published data (the Aries
QE x fill factortrace is digitized from Gpixel's graph); KURO 1200B,
Prime 95B, and QHY530 Pro II are digitized from published manufacturer QE
plots. - A
quantum_efficiencyoverride onCamera.expose_series, matching
Camera.exposeand supporting pre-integrated spectral electron-rate series. - A Keck/SciMeasure Little Joe CCD39 preset with the manufacturer CCD39-01
standard-AR/no-window spectral-response curve. getframes.analysis.matched_filter_centroid, a background-insensitive
cross-correlation centroid with sub-pixel peak refinement.Frame.binned(factor, method=...), post-read digital binning of a frame into
factor x factorsuper-pixels (sum or mean).CameraConfig.supported_binningsandCameraConfig.binning_method— binning is
now a first-class config parameter. The Keck-trade presets set these directly and
drop theextra.detector_modesper-binning tables; cameras with more than one
read-noise operating point keep a slimextra.read_modeslist instead.- Native pixel binning in the signal chain:
Camera.expose,Camera.expose_series,
andnoise.simulate_frameacceptbinningandbinning_mode."digital"
(post-read, the default) reads each native pixel with its own read noise then sums,
so binned read noise grows asbinning;"on_chip"(pre-read charge-domain /
hardware binning) sums the charge before the amplifier, so a single read noise is
applied per super-pixel. Exposednoise.block_sumfor the super-pixel summation. getframes.analysis.centroidnow accepts a per-pixel arraybackground(e.g. a
master sky+dark frame) and an optionalthreshold(scalar or per-pixel noise
map), making it a calibrated thresholded centre-of-gravity estimator suitable
for a real-time controller. Both additions are backwards compatible.- A Keck LGS tip/tilt and low-bandwidth wavefront-sensor detector trade-study
example, including physically sampled AO/sub-aperture PSFs, complete detector
Monte Carlo simulations, blackbody NGS weighting of each camera's QE curve
(--ngs-teff), the 600–950 nm TTS/LBWFS arm bandpass folded into the zero-point
bands, Monte Carlo standard errors on every point, a per-camera closed-loop
cadence optimisation (a physicala·f + b·f²noise model fitted to the Monte
Carlo data, saturation-aware, against a Tyler tilt-lag disturbance model), and
a best/worst-performer frame gallery figure beside the trade curves.
Fixed
- Type-checking compatibility with newer NumPy (2.2): tightened stub types for
_stamp_bounds/_radial_gridshape arguments, pinnedfloat64on a few
np.linspaceconstructions, and dropped now-unusedtype: ignorecomments
around thetrapz/trapezoidshim. No behavioural change.
Full Changelog: 2.0.0...2.1.0