Example #1
0
    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
Example #2
0
    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')
Example #3
0
    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
Example #4
0
    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
Example #5
0
    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
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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')
Example #9
0
    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
Example #10
0
    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
Example #11
0
    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 _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
Example #13
0
    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)
Example #14
0
 def detector_keys(self):
     return sort_detectors(set((d.detector for d in self.isotopes.values())))
Example #15
0
 def detector_keys(self):
     return sort_detectors(set((d.detector for d in self.isotopes.values())))
Example #16
0
    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
    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