The Viewing Geometry#

The viewing geometry can be thought of as specifying what output quantities we need from the model. These can be things like radiances at the top of the atmosphere, ground, or anywhere inbetween. Or they can be fluxes that are automatically integrated by the model.

Radiance Output#

We specify radiance output through a list of single positions and look vectors. These are stored inside the sasktran2.ViewingGeometry object.

import sasktran2 as sk

viewing_geo = sk.ViewingGeometry()

Rather than specifying look directions and positions directly, they are specified through objects that we colloquially refer to as Viewing Policies. One example of a viewing policy is the sasktran2.TangentAltitudeSolar object, which defines a position and viewing direction based off an observer altitude, as well as various parameters that are defined at the tangent point of the measurement. For example,

ray = sk.TangentAltitudeSolar(tangent_altitude_m=10000,
                                relative_azimuth=0,
                                observer_altitude_m=200000,
                                cos_sza=0.6)

To add it to our overall container, we can do,

viewing_geo.add_ray(ray)

And we can look at all of the rays in our container

viewing_geo.observer_rays
[<sasktran2._core.TangentAltitudeSolar at 0x7f127007a630>]

Viewing Policies#

sasktran2.TangentAltitudeSolar(self, ...)

Defines a viewing ray from the observer altitude, and tangent point parameters.

sasktran2.GroundViewingSolar(self, cos_sza, ...)

Defines a viewing ray that is looking at the ground from angles defined at the ground location.

Flux Output#

Flux output is planned for a future version.