def __init__(self, an, *args, **kw): super(SpectrometerView, self).__init__(*args, **kw) # source sp = an.source_parameters sd = [DValue(k, v) for k, v in sp.items()] self.source_parameters = sd # filament sp = an.filament_parameters sd = [DValue(k.capitalize(), v) for k, v in sp.items()] t = sp.get('trap') e = sp.get('emission') et = 0 if t and e: et = e / t sd.append(DValue('E/T', et)) self.filament_parameters = sd # deflections defls = an.deflections names = sort_detectors(list(defls.keys())) ds = [DValue(ni, defls[ni]) for ni in names] self.deflections = ds # gains gains = an.gains gs = [DValue(ni, gains.get(ni, 0)) for ni in names] self.gains = gs
def _sync_measurement(self, meas_analysis, load_aux): if meas_analysis: meas = meas_analysis.measurement if meas: if meas.script: self.measurement_script_name = remove_extension(meas.script.name) self.analysis_type = meas.analysis_type.name self.mass_spectrometer = meas.mass_spectrometer.name.lower() self.collection_time_zero_offset = meas.time_zero_offset or 0 if load_aux: try: sp = meas.spectrometer_parameters keys = QTEGRA_SOURCE_KEYS names = QTEGRA_SOURCE_NAMES sd = [DValue(n, getattr(sp, k)) for n, k in zip(names, keys)] self.source_parameters = sd except AttributeError, e: # self.source_parameters = [DValue(str(i), i) for i in range(10)] self.debug('No source parameters available') defls = meas.deflections try: names = sort_detectors([di.detector.name for di in meas.deflections]) self.deflections = [DValue(ni, defls[i].deflection or '---') for i, ni in enumerate(names)] except AttributeError, e: # self.deflections = [DValue(str(i), i * 34) for i in range(10)] self.debug('No deflection available')
def set_columns(self, isos, dets): cs = [('RunID', 'record_id'), ('Date', 'rundate')] for i in sort_isotopes(isos): for k in ('rev.', 'fit', 'bs. fit'): cs.append(('{} {}'.format(i, k), 'iso:{}:{}'.format(k, i))) for d in sort_detectors(dets): for k in ('rev.', ): cs.append(('{} IC {}'.format(d, k), 'ic:{}:{}'.format(k, d))) self.columns = cs
def set_columns(self, isos, dets): cs = [('RunID', 'record_id'), ('Date', 'rundate')] for i in sort_isotopes(isos): for k in ('rev.', 'fit', 'bs. fit'): cs.append(('{} {}'.format(i, k), 'iso:{}:{}'.format(k, i))) for d in sort_detectors(dets): for k in ('rev.',): cs.append(('{} IC {}'.format(d, k), 'ic:{}:{}'.format(k, d))) self.columns = cs
def _get_detectors(self, grps): def rec_dets(dets, a): if isinstance(a, InterpretedAgeGroup): for aa in a.analyses: rec_dets(dets, aa) else: return dets.update({i.detector for i in a.isotopes.values()}) d = set() for g in grps: for a in g.analyses: rec_dets(d, a) # detectors = {i.detector for g in grps # for a in g.analyses # for i in a.isotopes.values()} return sort_detectors(d)
def _sync_measurement(self, meas_analysis, load_aux): if meas_analysis: meas = meas_analysis.measurement if meas: if meas.script: self.measurement_script_name = remove_extension( meas.script.name) self.analysis_type = meas.analysis_type.name self.mass_spectrometer = meas.mass_spectrometer.name.lower() self.collection_time_zero_offset = meas.time_zero_offset or 0 if load_aux: try: sp = meas.spectrometer_parameters keys = ('extraction_lens', 'ysymmetry', 'zsymmetry', 'zfocus') names = ('ExtractionLens', 'Y-Symmetry', 'Z-Symmetry', 'Z-Focus') sd = [ DValue(n, getattr(sp, k)) for n, k in zip(names, keys) ] self.source_parameters = sd except AttributeError, e: # self.source_parameters = [DValue(str(i), i) for i in range(10)] self.debug('No source parameters available') defls = meas.deflections try: names = sort_detectors( [di.detector.name for di in meas.deflections]) self.deflections = [ DValue(ni, defls[i].deflection or '---') for i, ni in enumerate(names) ] except AttributeError, e: # self.deflections = [DValue(str(i), i * 34) for i in range(10)] self.debug('No deflection available')
def __init__(self, an, *args, **kw): super(SpectrometerView, self).__init__(*args, **kw) # source sp = an.source_parameters sd = [DValue(n, sp.get(k, NULL_STR)) for n, k in zip(QTEGRA_SOURCE_NAMES, QTEGRA_SOURCE_KEYS)] self.source_parameters = sd # deflections defls = an.deflections names = sort_detectors(defls.keys()) ds = [DValue(ni, defls.get(ni, NULL_STR)) for ni in names] self.deflections = ds # gains gains = an.gains gs = [DValue(ni, gains.get(ni, NULL_STR)) for ni in names] self.gains = gs
def __init__(self, an, *args, **kw): super(SpectrometerView, self).__init__(*args, **kw) # source sp = an.source_parameters sd = [ DValue(n, sp.get(k, NULL_STR)) for n, k in zip(QTEGRA_SOURCE_NAMES, QTEGRA_SOURCE_KEYS) ] self.source_parameters = sd # deflections defls = an.deflections names = sort_detectors(defls.keys()) ds = [DValue(ni, defls.get(ni, NULL_STR)) for ni in names] self.deflections = ds # gains gains = an.gains gs = [DValue(ni, gains.get(ni, NULL_STR)) for ni in names] self.gains = gs
def _tool_default(self): with self.processor.db.session_ctx(): atypes = [ai.name for ai in self.processor.db.get_analysis_types()] ntypes = [''] for ai in atypes: if ai in IC_ANALYSIS_TYPE_MAP: idx = IC_ANALYSIS_TYPE_MAP[ai] while idx > len(ntypes): ntypes.append('') ntypes[idx] = ai else: ntypes.append(ai) tool = DetectorCalibrationTool() tool.analysis_types = [''] + ntypes dets = [det.name for det in self.processor.db.get_detectors()] tool.detectors = sort_detectors(dets) return tool
def _configure_hook(self): pom = self.plotter_options_manager if self.unknowns: unk = self.unknowns[0] names = [] iso_keys = unk.isotope_keys if iso_keys: names.extend(iso_keys) names.extend(['{}bs'.format(ki) for ki in iso_keys]) names.extend(['{}ic'.format(ki) for ki in iso_keys]) names.extend(ratio(iso_keys)) if unk.analysis_type in (UNKNOWN, COCKTAIL): names.append(AGE) names.append(RADIOGENIC_YIELD) if unk.analysis_type in (DETECTOR_IC, ): isotopes = unk.isotopes dets = sort_detectors( list({i.detector for i in isotopes.values()})) for i, di in enumerate(dets): for j, dj in enumerate(dets): if j < i: continue if di == dj: continue names.append('{}/{} DetIC'.format(di, dj)) names.extend([ PEAK_CENTER, ANALYSIS_TYPE, LAB_TEMP, LAB_HUM, EXTRACT_VALUE, EXTRACT_DURATION, CLEANUP ]) pom.set_names(names)
def detector_keys(self): return sort_detectors(set((d.detector for d in self.isotopes.values())))
def _load_refiso(self, refiso): #keys = refiso.isotope_keys dets = [iso.detector for iso in refiso.isotopes.itervalues()] dets = sort_detectors(dets) self.tool.detectors = dets