Lines of Sight

Module: sasktran.lineofsight

This is an object that describes a line of sight. A line of sight is made up of three components:

  • A look vector (a unit vector in Geodetic coordinates)

  • An observer location (a position vector in Geodetic coordinates)

  • An observation time in MJD

A list of these objects are usually added to a Geometry object to describe lines of sight to calculate radiances for.

class sasktran.LineOfSight(mjd: float, observer: array, look_vector: array)

Bases: object

Class which represents a single line of sight in SASKTRAN. A single line of sight is defined by the observer position, a timestamp, and a unit look vector.

Parameters:
  • mjd (float) – Modified julian date for the measurement

  • observer (np.array) – Three element array indicating the observer position for the measurement.

  • look_vector (np.array) – Three element array which is the unit look vector away from the instrument

Examples

>>> from sasktran import LineOfSight
>>> los = LineOfSight(mjd=54832.5, observer=[3.6760131547888e+005, 1.0099763136400e+006, -6.871601202127e+006],                          look_vector=[2.884568631765662e-001, 7.925287180643269e-001,  5.372996083468238e-001])
>>> print(los)
Observer: [367601.31547888, 1009976.31364, -6871601.202127]
Look: [0.2884568631765662, 0.7925287180643269, 0.5372996083468238]
MJD: 54832.5
>>> print(los.mjd)
54832.5
>>> print(los.observer)
[367601.31547888, 1009976.31364, -6871601.202127]
>>> print(los.look_vector)
[0.2884568631765662, 0.7925287180643269, 0.5372996083468238]
ground_intersection(altitude: float = 0.0)

Returns an sk.Geodetic object containing the location where the line of sight intersects the earth at the given altitude. Returns None if the intersection does not exist.

Parameters:

altitude (float) – The altitude of the desired intersection in meters. Default 0.

Examples

>>> from sasktran import LineOfSight
>>> los = LineOfSight(mjd=54832.5, observer=[3.6760131547888e+005, 1.0099763136400e+006, -6.871601202127e+006],                              look_vector=[2.878657667526608e-001, 7.909046939869273e-001, 5.400028382900848e-001])
>>> print(los.ground_intersection(altitude=1000.0))
ISKGeodetic: IAU 1976
 Latitude: -57.4997267221534, Longitude: 69.99999999999979, Altitude: 999.9999956705142
tangent_location()

Returns an sk.Geodetic object containing the location where the line of sight is tangent to the surface of the earth. Returns None if the line of sight intersects the earth.

Examples

>>> from sasktran import LineOfSight
>>> los = LineOfSight(mjd=54832.5, observer=[3.6760131547888e+005, 1.0099763136400e+006, -6.871601202127e+006],                              look_vector=[2.884568631765662e-001, 7.925287180643269e-001,  5.372996083468238e-001])
>>> print(los.tangent_location())
ISKGeodetic: IAU 1976
 Latitude: -57.49972673428996, Longitude: 69.99999999999979, Altitude: 10000.000072206138

See Also

Geometry

Objects which describe the geometry of the calculations to the engine. At a minimum these objects define the Lines of Sight, but can also specify things such as the suns position and the polling reference point.

Geodetic

Internally SASKTRAN use a Geodetic coordinate system. This class implements some helpers for working with geodetic coordinates.