@@ -1486,6 +1486,63 @@ def select(self, meta, proc_aman=None, in_place=True):
14861486 else :
14871487 return keep
14881488
1489+ class LoadPremadeFlags (_Preprocess ):
1490+ """Load premade flags from aman.
1491+
1492+ Saves results in proc_aman under the "premade_flags_name" field.
1493+
1494+ Example config block::
1495+
1496+ - name : "load_premade_flags"
1497+ load_premade_flag_name: 'premade_flags'
1498+ calc:
1499+ inv_flag: True
1500+ save: True
1501+ select: # optional
1502+ kind: "any"
1503+ invert: True
1504+
1505+ """
1506+ name = "load_premade_flags"
1507+ def __init__ (self , step_cfgs ):
1508+ self .premade_flags_name = step_cfgs .get ('load_premade_flag_name' , 'premade_flags' )
1509+ super ().__init__ (step_cfgs )
1510+
1511+ def calc_and_save (self , aman , proc_aman ):
1512+ print ('flags_name' , self .premade_flags_name )
1513+ premade_flags = aman .flags .get (self .premade_flags_name )
1514+ source_aman = core .AxisManager (aman .dets , aman .samps )
1515+ source_aman .wrap (self .premade_flags_name , premade_flags , [(0 , 'dets' ), (1 , 'samps' )])
1516+
1517+ if self .calc_cfgs .get ('inv_flag' ):
1518+ source_aman .wrap (self .premade_flags_name + '_inv' ,
1519+ RangesMatrix .from_mask (~ premade_flags .mask ()),
1520+ [(0 , 'dets' ), (1 , 'samps' )])
1521+
1522+ self .save (proc_aman , source_aman )
1523+ return aman , proc_aman
1524+
1525+ def save (self , proc_aman , source_aman ):
1526+ if self .save_cfgs is None :
1527+ return
1528+ if self .save_cfgs :
1529+ proc_aman .wrap (self .premade_flags_name , source_aman )
1530+
1531+ def select (self , meta , proc_aman = None , in_place = True ):
1532+ if self .select_cfgs is None :
1533+ return meta
1534+ if proc_aman is None :
1535+ proc_aman = meta .preprocess
1536+ keep = flag_cut_select (proc_aman [self .premade_flags_name ][self .premade_flags_name ],
1537+ kind = self .select_cfgs .get ("kind" , 'all' ),
1538+ invert = self .select_cfgs .get ('invert' , False ))
1539+ if in_place :
1540+ meta .restrict ("dets" , meta .dets .vals [keep ])
1541+ return meta
1542+ else :
1543+ return keep
1544+
1545+
14891546class SourceFlags (_Preprocess ):
14901547 """Calculate the source flags in the data.
14911548 All calculation configs go to `get_source_flags`.
@@ -2685,6 +2742,7 @@ def process(self, aman, proc_aman, sim=False):
26852742_Preprocess .register (DetBiasFlags )
26862743_Preprocess .register (SSOFootprint )
26872744_Preprocess .register (DarkDets )
2745+ _Preprocess .register (LoadPremadeFlags )
26882746_Preprocess .register (SourceFlags )
26892747_Preprocess .register (HWPAngleModel )
26902748_Preprocess .register (GetStats )
0 commit comments