def calc_Zlim(X, Y, NX, NY): """ X = atom X Y = atom Y NX = lower lim, best, upper lim NY = lower lim, best, upper lim """ Zmin = calc_abund(X, Y, NX[0], NY[2]) Z = calc_abund(X, Y, NX[1], NY[1]) Zmax = calc_abund(X, Y, NX[2], NY[0]) return np.array([Zmin, Z, Zmax])
def calc_kappa(idep, inodep, obs): eldep, elnodep = (split_trans_name(k)[0] for k in (idep, inodep)) Ndep = obs[idep][0] Nnodep = obs[inodep][0] NH = obs['HI'][0] Ndeplo = obs[idep][0] - obs[idep][1] Nnodeplo = obs[inodep][0] - obs[inodep][1] NHlo = obs['HI'][0] - obs['HI'][1] Ndephi = obs[idep][0] + obs[idep][2] Nnodephi = obs[inodep][0] + obs[inodep][2] NHhi = obs['HI'][0] + obs['HI'][2] t1 = 10**calc_abund(elnodep, 'H', Nnodep, NH) t2 = (1 - 10**calc_abund(eldep, elnodep, Ndep, Nnodep)) kappa = t1 * t2 # upper limit t1 = 10**calc_abund(elnodep, 'H', Nnodephi, NHlo) t2 = (1 - 10**calc_abund(eldep, elnodep, Ndeplo, Nnodephi)) kappahi = t1 * t2 # lower limit t1 = 10**calc_abund(elnodep, 'H', Nnodeplo, NHhi) t2 = (1 - 10**calc_abund(eldep, elnodep, Ndephi, Nnodeplo)) kappalo = t1 * t2 return np.array([kappa, kappalo, kappahi])
def calc_abund_range(k1, k2, obs): el1, el2 = (split_trans_name(k)[0] for k in (k1, k2)) best = calc_abund(el1, el2, obs[k1][0], obs[k2][0]) lo = calc_abund(el1, el2, obs[k1][0]-obs[k1][1], obs[k2][0]+obs[k2][1]) hi = calc_abund(el1, el2, obs[k1][0]+obs[k1][1], obs[k2][0]-obs[k2][1]) return np.array([best, lo, hi])