def _get_plateau_age(self): ages, errors, k39 = self._get_steps() args = calculate_plateau_age(ages, errors, k39) if args: v, e, pidx = args self.plateau_steps = pidx self.plateau_steps_str = '{}-{}'.format(ALPHAS[pidx[0]], ALPHAS[pidx[1]]) self.nsteps = (pidx[1] - pidx[0]) + 1 pages, perrs = zip(*[(ages[i], errors[i]) for i in range(pidx[0], pidx[1])]) mswd = calculate_mswd(pages, perrs) self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps) self.plateau_mswd = mswd e = self._modify_error(v, e, self.plateau_age_error_kind, mswd=mswd, include_j_error=self.include_j_error_in_plateau) if math.isnan(e): e = 0 return ufloat(v, max(0, e))
def _get_plateau_age(self): ages, errors, k39 = self._get_steps() options = {'nsteps': self.pc_nsteps, 'gas_fraction': self.pc_gas_fraction, 'force_steps': self.calculate_fixed_plateau_steps} args = calculate_plateau_age(ages, errors, k39, options=options) if args: v, e, pidx = args if pidx[0]==pidx[1]: return self.plateau_steps = pidx self.plateau_steps_str = '{}-{}'.format(ALPHAS[pidx[0]], ALPHAS[pidx[1]]) self.nsteps = (pidx[1] - pidx[0]) + 1 # print pidx pages, perrs = zip(*[(ages[i], errors[i]) for i in range(pidx[0], pidx[1])]) mswd = calculate_mswd(pages, perrs) self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps) self.plateau_mswd = mswd e = self._modify_error(v, e, self.plateau_age_error_kind, mswd=mswd, include_j_error=self.include_j_error_in_plateau) if math.isnan(e): e = 0 return ufloat(v, max(0, e))
def _get_plateau_age(self): # ages, errors, k39 = self._get_steps() ages = [ai.age for ai in self.analyses] errors = [ai.age_err for ai in self.analyses] k39 = [ nominal_value(ai.get_computed_value('k39')) for ai in self.analyses ] options = { 'nsteps': self.pc_nsteps, 'gas_fraction': self.pc_gas_fraction, 'force_steps': self.calculate_fixed_plateau_steps } excludes = [i for i in enumerate(self.analyses) if ai.is_omitted()] args = calculate_plateau_age(ages, errors, k39, options=options, excludes=excludes) if args: v, e, pidx = args if pidx[0] == pidx[1]: return self.plateau_steps = pidx self.plateau_steps_str = '{}-{}'.format(ALPHAS[pidx[0]], ALPHAS[pidx[1]]) step_idxs = [ i for i in xrange(pidx[0], pidx[1] + 1) if not self.analyses[i].is_omitted() ] self.nsteps = len(step_idxs) pages = [ages[i] for i in step_idxs] perrs = [errors[i] for i in step_idxs] mswd = calculate_mswd(pages, perrs) self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps) self.plateau_mswd = mswd e = self._modify_error( v, e, self.plateau_age_error_kind, mswd=mswd, include_j_error=self.include_j_error_in_plateau) if math.isnan(e): e = 0 return ufloat(v, max(0, e))
def _get_plateau_age(self): ans = self.analyses v, e = 0, 0 if all((not isinstance(ai, InterpretedAgeGroup) for ai in ans)): if ans: ages = [ai.age for ai in ans] errors = [ai.age_err for ai in ans] k39 = [nominal_value(ai.get_computed_value('k39')) for ai in ans] options = {'nsteps': self.plateau_nsteps, 'gas_fraction': self.plateau_gas_fraction, 'overlap_sigma': self.plateau_overlap_sigma, 'fixed_steps': self.fixed_steps} excludes = [i for i, ai in enumerate(ans) if ai.is_omitted()] args = calculate_plateau_age(ages, errors, k39, options=options, excludes=excludes) if args: v, e, pidx = args if pidx[0] == pidx[1]: return self.plateau_steps = pidx self.plateau_steps_str = '{}-{}'.format(ALPHAS[pidx[0]], ALPHAS[pidx[1]]) step_idxs = [i for i in range(pidx[0], pidx[1] + 1) if not ans[i].is_omitted()] self.nsteps = len(step_idxs) pages = array([ages[i] for i in step_idxs]) perrs = array([errors[i] for i in step_idxs]) mswd = calculate_mswd(pages, perrs) self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps) self.plateau_mswd = mswd if self.plateau_age_error_kind == SD: e = array(pages).std() else: e = self._modify_error(v, e, self.plateau_age_error_kind, mswd=mswd) if math.isnan(e): e = 0 a = ufloat(v, max(0, e)) self._apply_j_err(a, force=self.include_j_error_in_mean or self.include_j_error_in_plateau) return a
def _get_plateau_age(self): ages, errors, k39 = self._get_steps() args = calculate_plateau_age(ages, errors, k39) if args: v, e, pidx = args self.plateau_steps = pidx self.plateau_steps_str = '{}-{}'.format(ALPHAS[pidx[0]], ALPHAS[pidx[1]]) self.nsteps = (pidx[1] - pidx[0]) + 1 pages, perrs = zip(*[(ages[i], errors[i]) for i in range(pidx[0], pidx[1])]) mswd = calculate_mswd(pages, perrs) self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps) self.plateau_mswd = mswd return ufloat(v, e)
def _get_plateau_age(self): ages, errors, k39 = self._get_steps() args = calculate_plateau_age(ages, errors, k39) if args: v, e, pidx = args self.plateau_steps = pidx self.plateau_steps_str = '{}-{}'.format(ALPHAS[pidx[0]], ALPHAS[pidx[1]]) self.nsteps = (pidx[1] - pidx[0]) + 1 pages, perrs = zip(*[(ages[i], errors[i]) for i in range(pidx[0], pidx[1])]) mswd = calculate_mswd(pages, perrs) self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps) self.plateau_mswd = mswd return ufloat(v, e)
def _get_plateau_age(self): # ages, errors, k39 = self._get_steps() ages = [ai.age for ai in self.analyses] errors = [ai.age_err for ai in self.analyses] k39 = [nominal_value(ai.get_computed_value('k39')) for ai in self.analyses] options = {'nsteps': self.pc_nsteps, 'gas_fraction': self.pc_gas_fraction, 'force_steps': self.calculate_fixed_plateau_steps} excludes = [i for i in enumerate(self.analyses) if ai.is_omitted()] args = calculate_plateau_age(ages, errors, k39, options=options, excludes=excludes) if args: v, e, pidx = args if pidx[0] == pidx[1]: return self.plateau_steps = pidx self.plateau_steps_str = '{}-{}'.format(ALPHAS[pidx[0]], ALPHAS[pidx[1]]) step_idxs = [i for i in xrange(pidx[0], pidx[1] + 1) if not self.analyses[i].is_omitted()] self.nsteps = len(step_idxs) pages = [ages[i] for i in step_idxs] perrs = [errors[i] for i in step_idxs] mswd = calculate_mswd(pages, perrs) self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps) self.plateau_mswd = mswd e = self._modify_error(v, e, self.plateau_age_error_kind, mswd=mswd, include_j_error=self.include_j_error_in_plateau) if math.isnan(e): e = 0 return ufloat(v, max(0, e))
def _get_plateau_age(self): ages, errors, k39 = self._get_steps() options = { 'nsteps': self.pc_nsteps, 'gas_fraction': self.pc_gas_fraction, 'force_steps': self.calculate_fixed_plateau_steps } args = calculate_plateau_age(ages, errors, k39, options=options) if args: v, e, pidx = args if pidx[0] == pidx[1]: return self.plateau_steps = pidx self.plateau_steps_str = '{}-{}'.format(ALPHAS[pidx[0]], ALPHAS[pidx[1]]) self.nsteps = (pidx[1] - pidx[0]) + 1 # print pidx pages, perrs = zip(*[(ages[i], errors[i]) for i in range(pidx[0], pidx[1])]) mswd = calculate_mswd(pages, perrs) self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps) self.plateau_mswd = mswd e = self._modify_error( v, e, self.plateau_age_error_kind, mswd=mswd, include_j_error=self.include_j_error_in_plateau) if math.isnan(e): e = 0 return ufloat(v, max(0, e))
def _get_plateau_age(self): ans = self.analyses v, e = 0, 0 self.plateau_steps = None self.plateau_steps_str = '' self.nsteps = 0 self.plateau_mswd = 0 self.plateau_mswd_valid = False if all((not isinstance(ai, InterpretedAgeGroup) for ai in ans)): if ans: ages = [ai.age for ai in ans] errors = [ai.age_err for ai in ans] k39 = [ nominal_value(ai.get_computed_value('k39')) for ai in ans ] options = { 'nsteps': self.plateau_nsteps, 'gas_fraction': self.plateau_gas_fraction, 'overlap_sigma': self.plateau_overlap_sigma, 'fixed_steps': self.fixed_steps } excludes = [i for i, ai in enumerate(ans) if ai.is_omitted()] args = calculate_plateau_age(ages, errors, k39, method=self.plateau_method, options=options, excludes=excludes) if args: v, e, pidx = args if pidx[0] == pidx[1]: return self.plateau_steps = pidx self.plateau_steps_str = '{}-{}'.format( alphas(pidx[0]), alphas(pidx[1])) step_idxs = [ i for i in range(pidx[0], pidx[1] + 1) if not ans[i].is_omitted() ] self.nsteps = len(step_idxs) pages = array([ages[i] for i in step_idxs]) perrs = array([errors[i] for i in step_idxs]) mswd = calculate_mswd(pages, perrs) self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps) self.plateau_mswd = mswd if self.plateau_age_error_kind == SD: e = array(pages).std() else: e = self._modify_error(v, e, self.plateau_age_error_kind, mswd=mswd) if math.isnan(e): e = 0 a = ufloat(v, max(0, e)) self._apply_j_err(a, force=self.include_j_error_in_mean or self.include_j_error_in_plateau) return a