environment.models.edlen#

Edlén (1966) Air Refractive Index Model (with NIST Modification).

This module provides functions to calculate the refractive index of air based on the seminal Edlén (1966) formulation. This implementation includes the NIST-recommended temperature correction for the water vapor term, which improves accuracy over a wider range of temperatures.

The original Edlén formulas require pressure in Torr (mmHg). This implementation accepts environmental conditions in SI units (Pascals, Celsius) and performs the necessary conversions internally.

References

Kramer Harrison, 2025

Functions

edlen_refractive_index(wavelength_um, conditions)

Calculates refractive index using the modified Edlén (1966) model.

edlen_refractive_index(wavelength_um: float, conditions: EnvironmentalConditions) float[source]#

Calculates refractive index using the modified Edlén (1966) model.

This implementation uses the Edlén (1966) formula with the NIST temperature correction for the water vapor term to improve accuracy.

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 phase refractive index of air (n).

Raises:
  • ValueError – If wavelength is not positive.

  • TypeError – If conditions is not an EnvironmentalConditions object.

Example

>>> from optiland.environment import EnvironmentalConditions
>>> nist_conditions = EnvironmentalConditions(
...     temperature=20.0,
...     pressure=101325.0,
...     relative_humidity=0.0,
...     co2_ppm=450.0,
... )
>>> n = edlen_refractive_index(0.633, nist_conditions)
>>> print(f"Refractive index at 0.633 µm is {n:.8f}")
Refractive index at 0.633 µm is 1.00027176