Source code for sofia_redux.scan.flags.channel_flags

# Licensed under a 3-clause BSD style license - see LICENSE.rst

from sofia_redux.scan.flags.flags import Flags
import enum

__all__ = ['ChannelFlags']


[docs] class ChannelFlags(Flags): class ChannelFlagTypes(enum.Flag): DEAD = enum.auto() BLIND = enum.auto() DISCARD = enum.auto() GAIN = enum.auto() SENSITIVITY = enum.auto() DOF = enum.auto() SPIKY = enum.auto() DAC_RANGE = enum.auto() PHASE_DOF = enum.auto() TIME_WEIGHTING = enum.auto() flags = ChannelFlagTypes descriptions = { flags.DEAD: 'Dead', flags.BLIND: 'Blind', flags.DISCARD: 'Discarded', flags.GAIN: 'Gain', flags.SENSITIVITY: 'Noisy', flags.DOF: 'Degrees-of-freedom', flags.SPIKY: 'Spiky', flags.DAC_RANGE: 'Railing/Saturated', flags.PHASE_DOF: 'Insufficient phase degrees-of-freedom', flags.TIME_WEIGHTING: 'Time weighting' } letters = { 'X': flags.DEAD, 'B': flags.BLIND, 'd': flags.DISCARD, 'g': flags.GAIN, 'n': flags.SENSITIVITY, 'f': flags.DOF, 's': flags.SPIKY, 'r': flags.DAC_RANGE, 'F': flags.PHASE_DOF, 't': flags.TIME_WEIGHTING }
[docs] @classmethod def hardware_flags(cls): return cls.flags.DEAD | cls.flags.BLIND
[docs] @classmethod def software_flags(cls): return cls.all_excluding(cls.hardware_flags())
[docs] @classmethod def critical_flags(cls): return cls.flags.DEAD | cls.flags.BLIND | cls.flags.GAIN
[docs] @classmethod def non_detector_flags(cls): return cls.flags.DEAD
[docs] @classmethod def sourceless_flags(cls): return cls.flags.BLIND | cls.flags.DEAD | cls.flags.DISCARD
[docs] @classmethod def source_flags(cls): return cls.all_excluding(cls.sourceless_flags())