interpret_bit_flags

astropy.nddata.interpret_bit_flags(bit_flags, flip_bits=None, flag_name_map=None)[源代码]

将输入位标志转换为单个整数值(位掩码)或 None .

当输入是一个标志列表(Python中的整数标志列表或逗号-字符串)时, '|' -,或 '+' -单独的标志列表),返回的位掩码通过对输入标志求和得到。

备注

为了翻转返回位掩码的位,输入 str 键入,在输入字符串前面加上“~”“~”必须加在 整个字符串 而不是每一个位旗!对于已经是位掩码或Python位标志列表的输入,设置 flip_bits 对于 True 以翻转返回位掩码的位。

参数
bit_flagsint,str,list,无

整数位掩码或标志, None ,一个逗号-, '|' -或者 '+' -整型位标志或助记符标志名的分隔列表,或整型位标志的Python列表。如果 bit_flags 是一个 str 如果它的前缀是“~”,那么输出位掩码的位将被翻转(与输入标志的简单总和相比)。输入 bit_flags 这已经是位掩码或Python的位标志列表,位翻转可以通过控制 flip_bits 参数。

备注

什么时候? bit_flags 是一个标志名的列表 flag_name_map 必须提供参数。

备注

一次只支持一个标志分隔符。 bit_flags 绳子不能混在一起 ',''+''|' 分离器。

flip_bits布尔,没有

指示是否翻转从输入位标志获取的返回位掩码的位。此参数必须设置为 None 输入时 bit_flags 要么是 None 或者一个Python标志列表。

flag_name_mapBitFlagNameMap

A BitFlagNameMap 对象,该对象提供从助记符位标志名到整型位值的映射,以便在 bit_flags 以逗号或“+”分隔的菜单位标志名列表。

返回
bitmaskint或无

返回由输入位值或 None 中频输入 bit_flags 参数是 None 或者一个空字符串。如果输入字符串值前面有“~”(或 flip_bits 被设定为 True ),则返回值将翻转其位(反转掩码)。

实例

>>> from astropy.nddata.bitmask import interpret_bit_flags, extend_bit_flag_map
>>> ST_DQ = extend_bit_flag_map('ST_DQ', CR=1, CLOUDY=4, RAINY=8, HOT=16, DEAD=32)
>>> "{0:016b}".format(0xFFFF & interpret_bit_flags(28))
'0000000000011100'
>>> "{0:016b}".format(0xFFFF & interpret_bit_flags('4,8,16'))
'0000000000011100'
>>> "{0:016b}".format(0xFFFF & interpret_bit_flags('CLOUDY,RAINY,HOT', flag_name_map=ST_DQ))
'0000000000011100'
>>> "{0:016b}".format(0xFFFF & interpret_bit_flags('~4,8,16'))
'1111111111100011'
>>> "{0:016b}".format(0xFFFF & interpret_bit_flags('~(4+8+16)'))
'1111111111100011'
>>> "{0:016b}".format(0xFFFF & interpret_bit_flags('~(CLOUDY+RAINY+HOT)',
... flag_name_map=ST_DQ))
'1111111111100011'
>>> "{0:016b}".format(0xFFFF & interpret_bit_flags([4, 8, 16]))
'0000000000011100'
>>> "{0:016b}".format(0xFFFF & interpret_bit_flags([4, 8, 16], flip_bits=True))
'1111111111100011'