environment.models.birch_downs#
Birch and Downs Air Refractive Index Model (with NIST Modification)
This module provides a function to calculate the refractive index of air based on the revised Edlén-style equation published by K. P. Birch and M. J. Downs in 1994. This implementation includes a temperature-dependent correction to the water vapor term, as described in the NIST documentation for their “Modified Edlén” equation, which is based on the Birch and Downs model.
The calculation is valid for standard air (N₂, O₂, Ar, CO₂) and can be adjusted for varying temperature, pressure, humidity, and CO₂ concentration.
Example
>>> from optiland.environment import EnvironmentalConditions
>>> conditions = EnvironmentalConditions(
... temperature=20.0,
... pressure=101325.0,
... relative_humidity=0.5,
... co2_ppm=450.0
... )
>>> n = birch_downs_refractive_index(0.633, conditions)
>>> print(f"Refractive index at 633 nm is {n:.8f}")
Refractive index at 633 nm is 1.00027137
References
Birch, K. P., & Downs, M. J. (1994). Correction to the Updated Edlén Equation for the Refractive Index of Air. Metrologia, 31(4), 315-316.
Stone, J. A., & Zimmerman, J. H. (2001). Index of Refraction of Air (NIST Web Page). https://emtoolbox.nist.gov/Wavelength/Documentation.asp
Kramer Harrison, 2025
Functions
|
Calculates the refractive index of air using the Birch & Downs 1994 model. |
- birch_downs_refractive_index(wavelength_um: float, conditions: EnvironmentalConditions) float[source]#
Calculates the refractive index of air using the Birch & Downs 1994 model.
- Parameters:
wavelength_um – The wavelength of light in a vacuum, in micrometers (μm).
conditions – An EnvironmentalConditions object containing the temperature, pressure, relative humidity, and CO₂ concentration.
- Returns:
The refractive index of air (n).
- Raises:
ValueError – If wavelength is not positive.
TypeError – If conditions is not an EnvironmentalConditions object.