Пример #1
0
    def _calculate_F(self, iso_intensities=None):
        if iso_intensities is None:
            iso_intensities = self._assemble_isotope_intensities()

        if iso_intensities:
            ifc = self.interference_corrections
            f, f_wo_irrad, non_ar, computed, interference_corrected = calculate_F(iso_intensities,
                                                                                  decay_time=self.decay_days,
                                                                                  interferences=ifc,
                                                                                  arar_constants=self.arar_constants,
                                                                                  fixed_k3739=self.fixed_k3739)
            self.uF = f
            self.F = f.nominal_value
            self.F_err = f.std_dev
            self.F_err_wo_irrad = f_wo_irrad.std_dev
            return f, f_wo_irrad, non_ar, computed, interference_corrected
Пример #2
0
    def _calculate_F(self, iso_intensities=None):
        if iso_intensities is None:
            iso_intensities = self._assemble_isotope_intensities()

        if iso_intensities:
            ifc = self.interference_corrections
            f, f_wo_irrad, non_ar, computed, interference_corrected = calculate_F(
                iso_intensities,
                decay_time=self.decay_days,
                interferences=ifc,
                arar_constants=self.arar_constants,
                fixed_k3739=self.fixed_k3739)
            self.uF = f
            self.F = f.nominal_value
            self.F_err = f.std_dev
            self.F_err_wo_irrad = f_wo_irrad.std_dev
            return f, f_wo_irrad, non_ar, computed, interference_corrected
Пример #3
0
    def _calculate_age(self, include_decay_error=None):
        """
            approx 2/3 of the calculation time is in _assemble_ar_ar_isotopes.
            Isotope.get_intensity takes about 5ms.
        """
        isos = self._assemble_ar_ar_isotopes()
        if not isos:
            return

        arc = self.arar_constants
        isos = abundance_sensitivity_correction(isos, arc.abundance_sensitivity)
        isos[1] *= self.ar39decayfactor
        isos[3] *= self.ar37decayfactor

        f, f_wo_irrad, non_ar, computed, interference_corrected = calculate_F(isos,
                                                                              decay_time=self.decay_days,
                                                                              interferences=self.interference_corrections,
                                                                              arar_constants=self.arar_constants)

        self.non_ar_isotopes = non_ar
        self.computed = computed
        self.rad40_percent = computed['rad40_percent']
        for k, v in interference_corrected.iteritems():
            self.isotopes[k].interference_corrected_value = v

        self.uF = f
        self.F = f.nominal_value
        self.F_err = f.std_dev
        self.F_err_wo_irrad = f_wo_irrad.std_dev

        if self.j is not None:
            j = copy(self.j)
        else:
            j = ufloat(1e-4,1e-7)

        age = age_equation(j, f, include_decay_error=include_decay_error,
                           arar_constants=self.arar_constants)

        self.uage = age

        self.age = float(age.nominal_value)
        self.age_err = float(age.std_dev)

        j.std_dev = 0
        self.age_err_wo_j = float(age.std_dev)

        if self.j is not None:
            j = copy(self.j)
        else:
            j = ufloat(1e-4, 1e-7)
        age = age_equation(j, f_wo_irrad, include_decay_error=include_decay_error,
                           arar_constants=self.arar_constants)

        self.age_err_wo_irrad = float(age.std_dev)
        j.std_dev = 0
        self.age_err_wo_j_irrad = float(age.std_dev)

        #print 'asddsadf'
        #print self.age_err
        #print self.age_err_wo_j
        #print self.age_err_wo_j_irrad

        for iso in self.isotopes.itervalues():
            iso.age_error_component = self.get_error_component(iso.name)
Пример #4
0
    def _calculate_age(self, include_decay_error=None):
        """
            approx 2/3 of the calculation time is in _assemble_ar_ar_isotopes.
            Isotope.get_intensity takes about 5ms.
        """
        isos = self._assemble_ar_ar_isotopes()
        if not isos:
            return

        arc = self.arar_constants
        isos = abundance_sensitivity_correction(isos, arc.abundance_sensitivity)
        isos[1] *= self.ar39decayfactor
        isos[3] *= self.ar37decayfactor

        f, f_wo_irrad, non_ar, computed, interference_corrected = calculate_F(
            isos,
            decay_time=self.decay_days,
            interferences=self.interference_corrections,
            arar_constants=self.arar_constants,
        )

        self.non_ar_isotopes = non_ar
        self.computed = computed
        self.rad40_percent = computed["rad40_percent"]
        for k, v in interference_corrected.iteritems():
            self.isotopes[k].interference_corrected_value = v

        self.uF = f
        self.F = f.nominal_value
        self.F_err = f.std_dev
        self.F_err_wo_irrad = f_wo_irrad.std_dev

        if self.j is not None:
            j = copy(self.j)
        else:
            j = ufloat(1e-4, 1e-7)

        age = age_equation(j, f, include_decay_error=include_decay_error, arar_constants=self.arar_constants)

        self.uage = age

        self.age = float(age.nominal_value)
        self.age_err = float(age.std_dev)

        j.std_dev = 0
        self.age_err_wo_j = float(age.std_dev)

        if self.j is not None:
            j = copy(self.j)
        else:
            j = ufloat(1e-4, 1e-7)
        age = age_equation(j, f_wo_irrad, include_decay_error=include_decay_error, arar_constants=self.arar_constants)

        self.age_err_wo_irrad = float(age.std_dev)
        j.std_dev = 0
        self.age_err_wo_j_irrad = float(age.std_dev)

        # print 'asddsadf'
        # print self.age_err
        # print self.age_err_wo_j
        # print self.age_err_wo_j_irrad

        for iso in self.isotopes.itervalues():
            iso.age_error_component = self.get_error_component(iso.name)