Usage¶
ARC-ACTRIS is intended to be imported as a Python package.
from arc_actris import arc
The main entry point is the arc class.
Basic scattering cross section¶
from arc_actris import arc
rrs = arc(incident_wavelength=355)
cross_section_355 = rrs.cross_section(cross_section_type="full")
print(cross_section_355)
This calculates the Rayleigh scattering cross section at 355 nm by summing the polarized and depolarized molecular scattering components.
Backscattering cross section and MLDR¶
To calculate backscattering quantities, initialize the object with backscattering=True.
from arc_actris import arc
rrb = arc(
incident_wavelength=355,
backscattering=True,
)
bsc_cross_section_355 = rrb.cross_section(cross_section_type="full")
mldr_355 = rrb.mldr(mldr_type="full")
print(bsc_cross_section_355)
print(mldr_355)
The mldr method is available only for backscattering calculations.
Temperature¶
The atmospheric temperature is given in Kelvin. If no temperature is provided, ARC-ACTRIS uses 288.15 K.
from arc_actris import arc
rrs = arc(
incident_wavelength=532,
temperature=285.15,
)
print(rrs.cross_section(cross_section_type="full"))
Custom atmospheric mixture¶
The molar_fractions dictionary defines the relative contribution of the atmospheric gases.
from arc_actris import arc
molar_fractions = {
"N2": 0.780796,
"O2": 0.209448,
"Ar": 0.009339,
"CO2": 0.000416,
"H2O": 0.0,
}
rrb = arc(
incident_wavelength=532,
temperature=285.15,
molar_fractions=molar_fractions,
backscattering=True,
)
print(rrb.cross_section(cross_section_type="full"))
print(rrb.mldr(mldr_type="full"))
Single-gas calculation¶
To calculate the contribution of one gas, set its molar fraction to 1.0 and the others to 0.0.
from arc_actris import arc
n2_only = {
"N2": 1.0,
"O2": 0.0,
"Ar": 0.0,
"CO2": 0.0,
"H2O": 0.0,
}
rrb = arc(
incident_wavelength=355,
molar_fractions=n2_only,
backscattering=True,
)
print(rrb.cross_section(cross_section_type="full"))
Raman calculation mode¶
The mode argument selects the type of Raman calculation.
Available modes:
rotational_ramanvibrational_raman_N2vibrational_raman_O2
Example:
from arc_actris import arc
rrb = arc(
incident_wavelength=355,
backscattering=True,
mode="vibrational_raman_N2",
)
print(rrb.cross_section(cross_section_type="full"))
Cross-section types¶
The cross_section method accepts the following cross_section_type values:
| Type | Description |
|---|---|
full |
All polarized and depolarized lines. |
main_line |
Polarized part and Q branch. |
polarized |
Polarized part only. |
depolarized |
Depolarized Raman part only. |
O |
Anti-Stokes branch only. |
Q |
Q branch only. |
S |
Stokes branch only. |
wings |
Stokes and anti-Stokes branches. |
Example:
from arc_actris import arc
rrs = arc(incident_wavelength=355)
print(rrs.cross_section(cross_section_type="polarized"))
print(rrs.cross_section(cross_section_type="depolarized"))
print(rrs.cross_section(cross_section_type="wings"))
MLDR types¶
The mldr method accepts the following mldr_type values:
| Type | Description |
|---|---|
full |
MLDR for the full molecular spectrum. |
main_line |
MLDR for the main line contribution. |
polarized |
Fixed MLDR of the polarized component. |
depolarized |
Fixed MLDR of the depolarized component. |
Example:
from arc_actris import arc
rrb = arc(incident_wavelength=355, backscattering=True)
print(rrb.mldr(mldr_type="full"))
print(rrb.mldr(mldr_type="main_line"))
Interference filter example¶
An interference filter can be included through the filter_parameters dictionary. Filter calculations are meaningful for backscattering applications.
from arc_actris import arc
filter_parameters = {
"transmission_shape": "Gaussian",
"central_wavelength": 355.0,
"bandwidth": 0.5,
"peak_transmission": 1.0,
}
rrb = arc(
incident_wavelength=355,
backscattering=True,
filter_parameters=filter_parameters,
)
print(rrb.cross_section(cross_section_type="full"))
print(rrb.cross_section(cross_section_type="full", normalize=True))
print(rrb.mldr(mldr_type="full"))