geometry_contract()

Human-readable spec of every geometry array expected for dims.

Usage

Source

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.