geometry_contract()
Human-readable spec of every geometry array expected for dims.
Usage
geometry_contract(
dims,
*,
rings_in_fov=False,
edge_on=False,
)Shapes are given in numpy order – the order the arrays must actually have in memory. That is the reverse of the TDIM order the proposal writes, because FITS lists the fastest-varying axis first and numpy lists it last. Getting this backwards is the easiest mistake to make here, so both are shown.
nrows is per-HDU: one row per body for SC_GEOM, one per resolved body for BODY_GEOM, and exactly one for the singleton tables.