libera_utils.footprint_matching.geometry.psf_ground_radius_km#
- libera_utils.footprint_matching.geometry.psf_ground_radius_km(satellite_radius_km: float, viewing_zenith_deg: float, fov_halfangle_deg: float = 1.0) float#
Project the PSF angular half-extent to an isotropic ground radius, in km.
A small angular offset
thetaat the satellite spansrho * tan(theta)perpendicular to the line of sight, whererhois the slant range. On a spherical Earth of radiusR, a satellite at distanceR_sfrom Earth’s center sees a point at viewing zenithvfromrho = sqrt(R_s^2 - (R sin v)^2) - R cos v. Along the view direction the line of sight strikes the surface obliquely, stretching that span by a further1/cos(v); across it there is no stretch. We return the along-view (larger) value so the radius bounds the footprint in every direction. At nadir this reduces to(R_s - R) * tan(theta).Unlike the rest of this module, which ray-traces the WGS84 ellipsoid, this is an analytic estimate on a sphere of the WGS84 equatorial radius (
WGS84_SEMI_MAJOR_AXIS_KM).The angular half-extent is the diagonal of the PSF’s along-scan and cross-scan 95%-energy half-extents, because the energy contour reaches toward the corners of that rectangle (see
_perimeter_angles). It is floored at the optical FOV half-angle so the radius is never smaller than the field of view.This is the single home for the angular-extent -> ground-radius projection, used by the per-cell PSF weighers (
libera_utils.footprint_matching.weighting).- Parameters:
satellite_radius_km (float) – Spacecraft distance from Earth’s center (L1B
Radius_of_Satellite_from_Center_of_Earth), km.viewing_zenith_deg (float) – Viewing zenith angle, degrees (clamped at
_MAX_VZA_FOR_ELONGATION_DEGfor the elongation factor).fov_halfangle_deg (float, optional) – Instrument FOV half-angle, degrees – the floor on the angular extent. Defaults to
LIBERA_FOV_HALFANGLE_DEG.
- Returns:
Ground radius in km.
- Return type: