+14
−0
+14
−0
+24
−8
+103
−37
+19
−10
Loading
stl.py: set_window()/full_frame()/half_frame()/small_frame() erano stub
(sempre full-frame). Ora self._subframe (px non-binnati) è tenuto in
memoria come il binning e applicato a ogni esposizione/readout:
top/left/height/width di StartExposureParams2 derivati dal subframe,
_read_frame() prende anche left/top (passato pure come pixelStart di
ReadoutLineParams, dato che SBIG non ha un ROI persistente). Corretto
anche xystart/xyend (prima sempre = full frame) e "size" in all()
(prima = max_range invece di xyend-xystart).
half_frame()/small_frame() in stx.py, atik.py e stl.py leggono ora le
coordinate xstart,ystart,xend,yend da cameras.ini (nuova camera_frame()
in constants.py), con fallback alla formula hardcoded precedente se la
chiave manca. Valori calcolati per scicam1/2/3 e validati contro i FITS
reali (scicam1.fits: XORGSUBF/YORGSUBF coincidono esattamente col
small_frame STX calcolato). scicam2 (Atik) pilota lo spettrografo
long-slit di stazione 2, non un teccam — il crop resta solo in Y.
Co-Authored-By:
Claude Sonnet 5 <noreply@anthropic.com>