libera_utils.footprint_matching.geometry.ViewingFrame#

class libera_utils.footprint_matching.geometry.ViewingFrame(satellite: ndarray, b_hat: ndarray, c_hat: ndarray, n_hat: ndarray)#

Bases: object

Radiometer viewing frames of N footprints.

The angular-frame PSF projection (project_to_angular()) needs, per footprint, the satellite ECEF position and the three orthonormal look axes (b_hat, c_hat, n_hat). compute_viewing_frames() builds all N together so the orchestrator can hand each footprint its single-footprint frame via for_index().

Variables:
  • satellite (np.ndarray) – (N, 3) satellite ECEF positions, km.

  • b_hat (np.ndarray) – (N, 3) boresight look-direction unit vectors (delta = beta = 0).

  • c_hat (np.ndarray) – (N, 3) cross-scan unit axes (perpendicular to the scan plane).

  • n_hat (np.ndarray) – (N, 3) in-scan-plane unit axes (= c_hat x b_hat).

__init__(satellite: ndarray, b_hat: ndarray, c_hat: ndarray, n_hat: ndarray) → None#

Methods

for_index(i)

Return the single-footprint frame at index i (arrays of shape (1, 3)).

for_index(i: int) → ViewingFrame#

Return the single-footprint frame at index i (arrays of shape (1, 3)).