transmittance#

optika.sensors.transmittance(wavelength, direction=1, n=1, thickness_oxide=<Quantity 50. Angstrom>, thickness_substrate=<Quantity 7. um>, chemical_oxide='SiO2', chemical_substrate='Si', roughness_oxide=<Quantity 0. nm>, roughness_substrate=<Quantity 0. nm>)[source]#

The fraction of incident energy transmitted through the oxide layer into the light-sensitive material.

Parameters:
  • wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.

  • direction (float | AbstractScalar) – The component of the incident light’s propagation direction antiparallel to the surface normal of the sensor. Default is normal incidence.

  • n (float | AbstractScalar) – The index of refraction in the ambient medium.

  • thickness_oxide (Quantity | AbstractScalar) – The thickness of the oxide layer on the illuminated surface of the sensor. Default is the value given in Stern et al. [1994].

  • thickness_substrate (Quantity | AbstractScalar) – The thickness of the light-sensitive substrate layer. Default is the value given in Stern et al. [1994].

  • chemical_oxide (str | AbstractChemical) – The chemical formula of the oxide layer on the illuminated surface of the sensor. Default is silicon dioxide.

  • chemical_substrate (str | AbstractChemical) – The chemical formula of the light-sensitive portion of the sensor. Default is silicon.

  • roughness_oxide (Quantity | AbstractScalar) – The RMS roughness the oxide layer surface.

  • roughness_substrate (Quantity | AbstractScalar) – The RMS roughness of the substrate surface.

Return type:

PolarizationVectorArray

Examples

Plot the transmittance as a function of wavelength.

import matplotlib.pyplot as plt
import astropy.units as u
import named_arrays as na
import optika

# Define a grid of wavelengths
wavelength = na.geomspace(10, 10000, axis="wavelength", num=1001) * u.AA

# Compute the transmittance vs wavelength
transmittance = optika.sensors.transmittance(
    wavelength=wavelength,
)

# Plot the average transmittance vs. wavelength
fig, ax = plt.subplots(constrained_layout=True)
na.plt.plot(
    wavelength,
    transmittance.average,
    ax=ax,
);
ax.set_xscale("log");
ax.set_xlabel(f"wavelength ({wavelength.unit:latex_inline})");
ax.set_ylabel("incident energy fraction");
../_images/optika.sensors.transmittance_0_0.png