Skip to content

Commit 661ff6d

Browse files
author
Yoshinori Sueno
committed
add loadpremadeflags
1 parent fffee35 commit 661ff6d

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

sotodlib/preprocess/processes.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
14891546
class 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

Comments
 (0)