lsurf.materials.STANDARD_ATMOSPHERE
- lsurf.materials.STANDARD_ATMOSPHERE = <ExponentialAtmosphere(n_sea_level=1.000293, H=8.5 km, R_E=6371 km)>
Exponential atmosphere with radially-dependent refractive index.
Models an atmosphere where air density decreases exponentially with altitude, causing the refractive index to approach 1 at high altitudes.
The model is spherically symmetric about Earth’s center, which is assumed to be at the origin (0, 0, 0) by default, or can be specified.
This class inherits from SimpleInhomogeneousModel, implementing the n_at_altitude() method for the exponential profile. GPU support is provided automatically via lookup table interpolation.
- Parameters:
name (str, optional) – Descriptive name for this material. Default is “Exponential Atmosphere”.
n_sea_level (float, optional) – Refractive index at sea level (Earth’s surface). Default is 1.000293.
scale_height (float, optional) – Atmospheric scale height H in meters. Default is 8500.0 m.
earth_radius (float, optional) – Radius of Earth in meters. Default is 6,371,000 m.
earth_center (tuple of float, optional) – Position of Earth’s center in meters. Default is (0, 0, 0).
absorption_coef (float, optional) – Absorption coefficient at sea level in m⁻¹. Default is 0.0.
absorption_scale_height (float, optional) – Scale height for absorption (can differ from density). Default is same as scale_height.
Examples
>>> atmosphere = ExponentialAtmosphere() >>> # Get refractive index at 10 km altitude >>> n = atmosphere.get_refractive_index(0, 0, EARTH_RADIUS + 10000, 532e-9) >>> print(f"n at 10 km: {n:.6f}") # ~1.000089
>>> # Get gradient at sea level directly above Earth's center >>> grad = atmosphere.get_refractive_index_gradient(0, 0, EARTH_RADIUS, 532e-9) >>> print(f"dn/dz at sea level: {grad[2]:.2e}") # ~ -3.4e-8 m^-1