ppcpy.misc.molecular_second_try#

Functions

air_refractive_index

Calculate the refractive index of air.

beta_pi_cabannes

Calculate the backscattering coefficient for the Cabannes line.

compressibility_of_moist_air

Compressibility of moist air.

enhancement_factor_f

Enhancement factor for moist air.

moist_air_density

Calculate the density of moist air.

molar_fraction_water_vapor

Molar fraction of water vapor.

molar_mass_dry_air

Molar mass of dry air as a function of CO2 concentration.

n_standard_air

Calculate the refractive index of standard air at a given wavelength.

n_standard_air_with_CO2

Calculate the refractive index of air at a specific wavelength with CO2 concentration.

n_water_vapor

Calculate the refractive index of water vapor.

number_density_at_pt

Calculate the number density of gas at a given pressure and temperature.

physical_constants

Basic physics constants used in calculations.

pressure_to_rh

Convert water vapor partial pressure to relative humidity.

rayleigh_scattering

Calculate the molecular volume backscatter coefficient and extinction coefficient.

rh_to_pressure

Calculate the partial pressure of water vapor given relative humidity and temperature.

saturation_vapor_pressure

Calculate the saturation vapor pressure of water as a function of temperature.

sigma_pi_cabannes

Calculate the backscattering cross section for the Cabannes line.

ppcpy.misc.molecular_second_try.physical_constants()[source]#

Basic physics constants used in calculations. Values taken from NIST (2014 values).

ppcpy.misc.molecular_second_try.molar_mass_dry_air(C)[source]#

Molar mass of dry air as a function of CO2 concentration. C: CO2 concentration [ppmv] Returns: Molar mass of dry air [kg/mol]

ppcpy.misc.molecular_second_try.compressibility_of_moist_air(pressure, temperature, molar_fraction)[source]#

Compressibility of moist air. pressure: Total pressure [hPa] temperature: Temperature [K] molar_fraction: Molar fraction of water vapor

ppcpy.misc.molecular_second_try.moist_air_density(pressure, temperature, C, Xw)[source]#

Calculate the density of moist air. pressure: Total pressure [hPa] temperature: Temperature [K] C: CO2 concentration [ppmv] Xw: Molar fraction of water vapor

ppcpy.misc.molecular_second_try.molar_fraction_water_vapor(pressure, temperature, relative_humidity)[source]#

Molar fraction of water vapor. pressure: Total pressure [hPa] temperature: Temperature [K] relative_humidity: Relative humidity [%] (0-100)

ppcpy.misc.molecular_second_try.enhancement_factor_f(pressure, temperature)[source]#

Enhancement factor for moist air. pressure: Total pressure [hPa] temperature: Temperature [K]

ppcpy.misc.molecular_second_try.air_refractive_index(wavelength, pressure, temperature, C, relative_humidity)[source]#

Calculate the refractive index of air. wavelength: Wavelength [nm] pressure: Atmospheric pressure [hPa] temperature: Atmospheric temperature [K] C: CO2 concentration [ppmv] relative_humidity: Relative humidity [%] Returns: Refractive index of air.

ppcpy.misc.molecular_second_try.sigma_pi_cabannes(wavelength, pressure, temperature, C, rh)[source]#

Calculate the backscattering cross section for the Cabannes line.

Parameters:#

wavelengthfloat

Light wavelength in nanometers [nm].

pressurefloat

Atmospheric pressure [hPa].

temperaturefloat

Atmospheric temperature [K].

Cfloat

CO2 concentration [ppmv].

rhfloat

Relative humidity as a percentage (0 to 100).

Returns:#

sigma_pifloat

Backscattering cross section of the Cabannes line [m^2*sr^{-1}].

ppcpy.misc.molecular_second_try.beta_pi_cabannes(wavelength, pressure, temperature, C, rh)[source]#

Calculate the backscattering coefficient for the Cabannes line.

Parameters:#

wavelengthfloat

Light wavelength in nanometers [nm].

pressurefloat

Atmospheric pressure [hPa].

temperaturefloat

Atmospheric temperature [K].

Cfloat

CO2 concentration [ppmv].

rhfloat

Relative humidity as a percentage (0 to 100).

Returns:#

beta_pifloat

Backscattering coefficient of the Cabannes line [m^{-1}*sr^{-1}].

ppcpy.misc.molecular_second_try.pressure_to_rh(partial_pressure, temperature)[source]#

Convert water vapor partial pressure to relative humidity.

Parameters:#

partial_pressurefloat

Water vapor partial pressure [hPa].

temperaturefloat

Temperature in Kelvin [K].

Returns:#

rhfloat

Relative humidity as a percentage (0 to 100).

ppcpy.misc.molecular_second_try.number_density_at_pt(pressure, temperature)[source]#

Calculate the number density of gas at a given pressure and temperature.

Parameters:
  • pressure (float) – Pressure [hPa].

  • temperature (float) – Temperature [K].

Returns:

Number density of gas [molecules/cm³].

Return type:

float

Notes

Number density is calculated using the ideal gas law:

n = P / (k_B * T),

where k_B is Boltzmann’s constant, and n is expressed in molecules/cm³.

ppcpy.misc.molecular_second_try.n_standard_air_with_CO2(wavelength, C)[source]#

Calculate the refractive index of air at a specific wavelength with CO2 concentration.

Parameters:
  • wavelength (float) – Wavelength [nm].

  • C (float) – CO2 concentration [ppmv].

Returns:

Refractive index of air for the given CO2 concentration.

Return type:

float

ppcpy.misc.molecular_second_try.n_standard_air(wavelength)[source]#

Calculate the refractive index of standard air at a given wavelength.

Parameters:

wavelength (float) – Wavelength [nm].

Returns:

Refractive index of standard air.

Return type:

float

ppcpy.misc.molecular_second_try.n_water_vapor(wavelength)[source]#

Calculate the refractive index of water vapor.

Parameters:

wavelength (float) – Wavelength [nm].

Returns:

Refractive index of water vapor.

Return type:

float

ppcpy.misc.molecular_second_try.saturation_vapor_pressure(temperature)[source]#

Calculate the saturation vapor pressure of water as a function of temperature.

Parameters:

temperature (float) – Temperature [K].

Returns:

Saturation vapor pressure [hPa].

Return type:

float

Notes

Uses the Tetens equation for vapor pressure:

es = 6.112 * exp((17.62 * Tc) / (243.12 + Tc)),

where Tc = temperature in Celsius. The result is in hPa.

ppcpy.misc.molecular_second_try.rh_to_pressure(rh, temperature)[source]#

Calculate the partial pressure of water vapor given relative humidity and temperature.

Parameters:
  • rh (float) – Relative humidity [%] (0-100 scale).

  • temperature (float) – Temperature [K].

Returns:

Partial pressure of water vapor [hPa].

Return type:

float

Notes

Partial pressure is calculated using the equation:

e = (rh / 100) * es,

where es is the saturation vapor pressure, calculated based on temperature.

ppcpy.misc.molecular_second_try.rayleigh_scattering(wavelength, pressure, temperature, C, rh)[source]#

Calculate the molecular volume backscatter coefficient and extinction coefficient.

Parameters:#

wavelengthfloat

Wavelength in nanometers [nm].

pressurefloat

Atmospheric pressure [hPa].

temperaturefloat

Atmospheric temperature [K].

Cfloat

CO2 concentration [ppmv].

rhfloat

Relative humidity as a percentage (0 to 100).

Returns:#

beta_molfloat

Molecular backscatter coefficient [m^{-1}*sr^{-1}].

alpha_molfloat

Molecular extinction coefficient [m^{-1}].

References:#

Bucholtz, A.: Rayleigh-scattering calculations for the terrestrial atmosphere, Appl. Opt. 34, 2765-2773 (1995). A. Behrendt and T. Nakamura, “Calculation of the calibration constant of polarization lidar and its dependency on atmospheric temperature,” Opt. Express, vol. 10, no. 16, pp. 805-817, 2002.

History:#

First edition by Zhenping, 2017-12-16. Based on the Python source code of Ioannis Binietoglou’s [repo](https://bitbucket.org/iannis_b/lidar_molecular).