Source code for jwst.datamodels.utils.group_id

__all__ = ["attrs_to_group_id"]


[docs] def attrs_to_group_id(obs_meta): """ Combine a number of file metadata values into a ``group_id`` string. Parameters ---------- obs_meta : dict or ObjectNode A dictionary or ObjectNode containing meta.observation metadata, either ``model.meta.observation`` or ``meta["meta"]["observation"]`` from :meth:`~jwst.datamodels.library.ModelLibrary.read_metadata`. Returns ------- str The ``group_id`` string. """ obs_meta = dict(obs_meta.items()) # a bit circular to do to a dict, but needed for ObjectNode for key in [ "program_number", "observation_number", "visit_number", "visit_group", "sequence_id", "activity_id", "exposure_number", ]: if key not in obs_meta: raise KeyError(f"Missing required keyword in meta.observation for group_id: {key}") return ( f"jw{obs_meta['program_number']}" f"{obs_meta['observation_number']}" f"{obs_meta['visit_number']}" f"_{obs_meta['visit_group']}" f"{obs_meta['sequence_id']}" f"{obs_meta['activity_id']}" f"_{obs_meta['exposure_number']}" )