libera_utils.footprint_matching.psf.conservative_along_scan_extent#

libera_utils.footprint_matching.psf.conservative_along_scan_extent(extent: PSFAngularExtent) → float#

Return a single, scan-direction-independent along-scan half-extent.

The true along-scan footprint is asymmetric and which side is “leading” depends on the scan direction: the sign of L1B RAD Cone_Angle_Rate, negative when scanning toward nadir and positive away from it, with a rate of 0 marking a stationary scanner. For a bounding box (a safe superset used only to select which ancillary samples the readers serve) we do not need the exact asymmetry. Taking the larger of the two half-extents guarantees the box encloses the footprint regardless of scan direction.

The PSF weighting, which needs the exact footprint rather than a superset, uses the true (asymmetric) front/back extents for the scan direction and the static FOV for a stationary scanner instead of this conservative maximum.

TODO[LIBSDC-884]: Cone_Angle_Rate is populated on libera_rad main as the time derivative of curryer’s orbital cone angle; libera_rad PR #34 (LIBSDC-739, open) redefines it from the motor encoders, with -999 where the rate is undefined. Adopt that definition once it merges.

Parameters:

extent (PSFAngularExtent) – The PSF angular extent.

Returns:

max(delta_back_deg, delta_front_deg) in degrees.

Return type:

float