def set_isotope_detector(self, det, add=False): det, name = det.name, det.isotope # print 'setting isotope detector {} {}'.format(name, det) # print self.pairs() # name = None # if iso: # name = iso # if not isinstance(det, str): # name, det = det.isotope, det.name # # name = '{}{}'.format(det.isotope, det.name) if name in self.isotopes: iso = self.isotopes.pop(name) if add: if iso.detector != det: nn = '{}{}'.format(iso.name, iso.detector) self.isotopes[nn] = iso iso = Isotope(name, det) name = '{}{}'.format(name, det) self.isotopes[name] = iso else: self.isotopes[name] = iso else: iso = Isotope(name, det) self.isotopes[name] = iso iso.detector = det iso.ic_factor = self.get_ic_factor(det)
def set_isotope_detector(self, det, iso=None): if iso: name = iso if not isinstance(det, str): name, det = det.isotope, det.name if name in self.isotopes: iso = self.isotopes[name] else: iso = Isotope(name=name) self.isotopes[name] = iso iso.detector = det iso.ic_factor = self.get_ic_factor(det)
def set_isotope_detector(self, det, add=False): det, name = det.name, det.isotope if name in self.isotopes: iso = self.isotopes.pop(name) if add: if iso.detector != det: nn = '{}{}'.format(iso.name, iso.detector) self.isotopes[nn] = iso iso = Isotope(name, det) name = '{}{}'.format(name, det) self.isotopes[name] = iso else: self.isotopes[name] = iso else: iso = Isotope(name, det) self.isotopes[name] = iso iso.detector = det iso.ic_factor = self.get_ic_factor(det)
def _make_per_spec(self, lt): run_spec = AutomatedRunSpec() per_spec = PersistenceSpec() arar_age = ArArAge() # populate per_spec per_spec.run_spec = run_spec per_spec.arar_age = arar_age # popluate run_spec run_spec.identifier = lt.labnumber run_spec.aliquot = lt.aliquot run_spec.step = lt.step run_spec.username = '******' run_spec.uuid = lt.uuid cp = lt.collection_path man = H5DataManager() man.open_file(cp) # add signal/isotopes group = man.get_group('signal') for grp in man.get_groups(group): isok = grp._v_name iso = Isotope(name=isok, fit='linear') # only handle one detector per isotope tbl = man.get_tables(grp)[0] iso.detector = tbl._v_name xs = array([x['time'] for x in tbl.iterrows()]) ys = array([x['value'] for x in tbl.iterrows()]) iso.xs = xs iso.ys = ys arar_age.isotopes[isok] = iso # add sniffs group = man.get_group('sniff') for k, iso in arar_age.isotopes.iteritems(): grp = man.get_group(k, group) tbl = man.get_tables(grp)[0] iso.sniff.detector = tbl._v_name xs = array([x['time'] for x in tbl.iterrows()]) ys = array([x['value'] for x in tbl.iterrows()]) iso.sniff.xs = xs iso.sniff.ys = ys # add baselines group = man.get_group('baseline') for dettbl in man.get_tables(group): detname = dettbl._v_name xs = array([x['time'] for x in dettbl.iterrows()]) ys = array([x['value'] for x in dettbl.iterrows()]) for iso in arar_age.isotopes.itervalues(): if iso.detector == detname: iso.baseline.xs = xs iso.baseline.ys = ys iso.baseline.fit = 'average' return per_spec