orca.transform.spectrum_v3 ========================== .. py:module:: orca.transform.spectrum_v3 .. autoapi-nested-parse:: Dynamic-spectrum helpers (v3) * 100% read-only MeasurementSet access * Optionally respects MS FLAG column * bcal optional; if present, used at native resolution (NO rebin) * NO spectral averaging: 192 chans/subband → 16 SPWs → 3072 total chans Attributes ---------- .. autoapisummary:: orca.transform.spectrum_v3.logger orca.transform.spectrum_v3.N_CHAN_OUT orca.transform.spectrum_v3.REDIS_URL orca.transform.spectrum_v3.REDIS_EXPIRE_S orca.transform.spectrum_v3.REDIS_KEY_PREFIX orca.transform.spectrum_v3.ROW_NUMS Functions --------- .. autoapisummary:: orca.transform.spectrum_v3.dynspec_map_v3 orca.transform.spectrum_v3.dynspec_reduce_v3 Module Contents --------------- .. py:data:: logger .. py:data:: N_CHAN_OUT :value: 192 .. py:data:: REDIS_URL .. py:data:: REDIS_EXPIRE_S :value: 36000 .. py:data:: REDIS_KEY_PREFIX :value: 'spec-v3-' .. py:data:: ROW_NUMS :value: [('LWA-128&LWA-160', 54282), ('LWA-048&LWA-051', 33335), ('LWA-018&LWA-237', 30360),... .. py:function:: dynspec_map_v3(subband_no: int, scan_no: int, ms: str, bcal: str | None = None, use_ms_flags: bool = True) -> List[_SnapshotSpectrumV3] Map step on a SINGLE MS: • Reads DATA & FLAG (cross-correlations only) • Optionally applies bcal at native resolution (192 channels) — NO rebin • Stores incoherent-sum and selected-baseline spectra in Redis Returns JSONable _SnapshotSpectrumV3 list (for the reducer). .. py:function:: dynspec_reduce_v3(spectra: Iterable[List[_SnapshotSpectrumV3]], start_ts: datetime.datetime, out_dir: str) -> None Reduce step: • Gathers Redis blobs from dynspec_map_v3 outputs • Builds 4×(time×freq) cubes per type, freq = 192×16 = 3072 • Writes FITS into {out_dir}/{type}/{DATE}-{corr}.fits