Occultation Sources

Occultation Sources#

SASKTRAN2 can be used in pure occultation mode, i.e., to calculate transmittances instead of radiances. To do this, we disable all other sources and enable the occultation source.

import sasktran2 as sk

config = sk.Config()

config.single_scatter_source = sk.SingleScatterSource.NoSource
config.multiple_scatter_source = sk.MultipleScatterSource.NoSource
config.emission_source = sk.EmissionSource.NoSource

config.occultation_source = sk.OccultationSource.Standard
import numpy as np

model_geometry = sk.Geometry1D(cos_sza=0.6,
                                solar_azimuth=0,
                                earth_radius_m=6372000,
                                altitude_grid_m=np.arange(0, 65001, 1000),
                                interpolation_method=sk.InterpolationMethod.LinearInterpolation,
                                geometry_type=sk.GeometryType.Spherical)

viewing_geo = sk.ViewingGeometry()

for alt in [10000, 20000, 30000, 40000]:
    ray = sk.TangentAltitudeSolar(tangent_altitude_m=alt,
                                    relative_azimuth=0,
                                    observer_altitude_m=200000,
                                    cos_sza=0.6)
    viewing_geo.add_ray(ray)

wavel = np.arange(280.0, 800.0, 0.01)
atmosphere = sk.Atmosphere(model_geometry, config, wavelengths_nm=wavel)

atmosphere['rayleigh'] = sk.constituent.Rayleigh()

atmosphere['ozone'] = sk.climatology.mipas.constituent("O3", sk.optical.O3DBM())
atmosphere['no2'] = sk.climatology.mipas.constituent("NO2", sk.optical.NO2Vandaele())

sk.climatology.us76.add_us76_standard_atmosphere(atmosphere)

engine = sk.Engine(config, model_geometry, viewing_geo)

output = engine.calculate_radiance(atmosphere)


output['radiance'].isel(los=0).plot()
WARNING:matplotlib.font_manager:Matplotlib is building the font cache; this may take a moment.
[<matplotlib.lines.Line2D at 0x763e3136a180>]
../../_images/9d1d2293f0d665b3602ec18359c2248ffdcfdb80c527b991debdb1450d6913d0.png

Note that in occultation mode the model produces transmittances, i.e., values between 0 and 1 where 0 is completely attenuated and 1 is no attenuation.

Relevant Configuration Options#

sasktran2.Config.occultation_source

Sets which (if any) occultation source is to be used inside the calculation.