libera_utils.footprint_matching.geometry.surface_cell_ecef_km#
- libera_utils.footprint_matching.geometry.surface_cell_ecef_km(cell_lats_deg: ndarray, cell_lons_deg: ndarray) ndarray#
ECEF (km) of surface grid cells, raveled to
(N, 3)in the input’s row-major order.Thin public wrapper over curryer’s closed-form
geodetic_to_ecefthat flattens the (possibly 2-D) cell coordinate grids the same wayproject_to_angular()does, so a surface ECEF computed once with it is byte-identical to the oneproject_to_angular()would compute inline. Because the cells’ geometry is independent of the viewing frame, the result can be reused across every footprint that sees the same cells.- Parameters:
cell_lats_deg (np.ndarray) – Grid-cell latitudes/longitudes in degrees (any common shape). Assumed on the surface (ellipsoidal height 0).
cell_lons_deg (np.ndarray) – Grid-cell latitudes/longitudes in degrees (any common shape). Assumed on the surface (ellipsoidal height 0).
- Returns:
(N, 3)ECEF positions in km, whereN = cell_lats_deg.sizein row-major order.- Return type:
np.ndarray