Polarized Radiative Transfer Calculation with HRΒΆ

In this example we perform a full polarized radiative transfer calculation using the HR model.

[1]:
%matplotlib inline
[2]:
import sasktran as sk
import matplotlib.pyplot as plt
import numpy as np
from sasktran.geometry import VerticalImage

tanalts_km = np.arange(10, 50, 1)

# First recreate our geometry and atmosphere classes
geometry = VerticalImage()
geometry.from_sza_saa(sza=60, saa=60, lat=0, lon=0, tanalts_km=tanalts_km, mjd=54372, locallook=0,
                      satalt_km=600, refalt_km=20)

atmosphere = sk.Atmosphere()

atmosphere['ozone'] = sk.Species(sk.O3OSIRISRes(), sk.Labow())
atmosphere['air'] = sk.Species(sk.Rayleigh(), sk.MSIS90())

# And now make the engine
engine = sk.EngineHR(geometry=geometry, atmosphere=atmosphere)

# Choose some wavelengths to do the calculation at
engine.wavelengths = [340, 600]
engine.polarization = 'vector'

# And do the calculation
radiance = engine.calculate_radiance(full_stokes_vector=True, output_format='xarray')

plt.plot(np.sqrt((radiance.Q.T**2 + radiance.U.T**2 + radiance.V.T**2)) / radiance.I.T * 100, tanalts_km)
plt.xlabel('Degree of Polarization [%]')
plt.ylabel('Altitude [km]')

plt.legend(['340 nm', '600 nm'])

plt.show()
../../_images/examples_hr_polarized_calculation_2_0.png
[ ]: