Source code for gammapy.estimators.metadata
# Licensed under a 3-clause BSD style license - see LICENSE.rst
import logging
from enum import Enum
from typing import ClassVar, Literal, Optional
from gammapy.utils.metadata import (
METADATA_FITS_KEYS,
CreatorMetaData,
MetaData,
TargetMetaData,
)
__all__ = ["FluxMetaData"]
FLUX_METADATA_FITS_KEYS = {
"flux": {
"sed_type": "SED_TYPE",
"sed_type_init": "SEDTYPEI",
"n_sigma": "N_SIGMA",
"n_sigma_ul": "NSIGMAUL",
"sqrt_ts_threshold_ul": "STSTHUL",
"n_sigma_sensitivity": "NSIGMSEN",
},
}
METADATA_FITS_KEYS.update(FLUX_METADATA_FITS_KEYS)
log = logging.getLogger(__name__)
class SEDTYPEEnum(str, Enum):
dnde = "dnde"
flux = "flux"
eflux = "eflux"
e2dnde = "e2dnde"
likelihood = "likelihood"
[docs]
class FluxMetaData(MetaData):
"""Metadata containing information about the FluxPoints and FluxMaps.
Attributes
----------
sed_type : {"dnde", "flux", "eflux", "e2dnde", "likelihood"}, optional
SED type.
sed_type_init : {"dnde", "flux", "eflux", "e2dnde", "likelihood"}, optional
SED type of the initial data.
n_sigma : float, optional
Significance threshold above which upper limits should be used.
n_sigma_ul : float, optional
Significance value used for the upper limit computation.
sqrt_ts_threshold_ul : float, optional
Threshold on the square root of the likelihood value above which upper limits should be used.
n_sigma_sensitivity : float, optional
Sigma number for which the flux sensitivity is computed
target : `~gammapy.utils.TargetMetaData`, optional
General metadata information about the target.
creation : `~gammapy.utils.CreatorMetaData`, optional
The creation metadata.
optional : dict, optional
additional optional metadata.
Note : these quantities are serialized in FITS header with the keywords stored in the dictionary FLUX_METADATA_FITS_KEYS
"""
_tag: ClassVar[Literal["flux"]] = "flux"
sed_type: Optional[SEDTYPEEnum] = None
sed_type_init: Optional[SEDTYPEEnum] = None
n_sigma: Optional[float] = None
n_sigma_ul: Optional[float] = None
sqrt_ts_threshold_ul: Optional[float] = None
n_sigma_sensitivity: Optional[float] = None
target: Optional[TargetMetaData] = None
# TODO: add obs_ids: Optional[List[int]] and instrument: Optional[str], or a List[ObsInfoMetaData]
# TODO : add dataset_names: Optional[List[str]]
creation: Optional[CreatorMetaData] = CreatorMetaData()
optional: Optional[dict] = None