diff --git a/AstroAtmosphere/refractivityModels.py b/AstroAtmosphere/refractivityModels.py index 3787ea0..ece68f8 100644 --- a/AstroAtmosphere/refractivityModels.py +++ b/AstroAtmosphere/refractivityModels.py @@ -244,10 +244,10 @@ def BonschPotulski(l, T=288.15, p=101325, RH=0, CO2=400, f=None): return n -def BirchDowns(l): +def BirchDowns(l, T=288.15, p=101325, RH=0, f=None): ''' From Birch & Downs, 1993 and 1994 (correction) - Equations 1 and 2 + Equations 1, 2 and 3 Only at standard conditions @@ -255,15 +255,32 @@ def BirchDowns(l): ---------- l : float wavelength in micron + T : float + Temperature in Kelvin + p : float + Atmospheric pressure in Pa + RH : float + Relative humidity (0<=H<=1) + f : float + Water vapor pressure in Pascal Returns ------- n : float Refractive index of atmospheric air at the given conditions ''' + Tc = K2C(T) s = 1 / l - R = 8342.54 + 2406147 / (130 - s**2) + 15998 / (38.9-s**2) - n = R/1e8 + 1 + Rs = 8342.54 + 2406147 / (130 - s**2) + 15998 / (38.9-s**2) + n = Rs/1e8 + 1 + + R_tp = (p * Rs/1e8) / 96095.43 * (1 + 1e-8 * (0.601 - 0.00972 * Tc) * p) / (1 + 0.0036610 * Tc) + n_tp = R_tp + 1 + + if f is None: + f = RH * svp(T) + + n = n_tp - f * (3.7345 - 0.0401 * s**2) * 1e-10 return n