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

birch_downs_refractive_index(wavelength_um, ...)

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.