Geometry#

Provides functions around the satellite’s viewing geometry.

xvamp.geometry.geometry_from_central_angle(central_angle, height_terrain, height_platform)[source]#

Calculate the geometric (in vacuum) range, look angle, and incidence angle from the central angle and the law of cosines.

Parameters:
Return type:

tuple[Quantity, Quantity, Quantity]

Returns:

  • geometric_range – Geometric range from the platform to the surface [km].

  • geometric_look_angle – Geometric look angle from the platform to the surface [rad].

  • geometric_incidence_angle – Geometric incidence angle from the surface to the platform [rad].

xvamp.geometry.get_brightness_temperature(altitude, temperature, refraction, absorption, look_angle, surface_brightness)[source]#

Calculate the brightness temperature of the planet from an assumed surface brightness as well as the temperature, refraction, and absorption profiles (across their entirety, i.e., assuming that the surface is the first and the platform is the last altitude array element, respectively). Assumes a scatter-free medium and follows Section 6-6.4 of Ulaby and Long [2013].

Parameters:
  • altitude (Quantity) – Altitude values of the profiles

  • temperature (Quantity) – Temperature profile

  • refraction (Quantity) – Refraction profile

  • absorption (Quantity) – Absorption coefficient profile

  • look_angle (Quantity) – Observer angle

  • surface_brightness (Quantity) – Assumed surface brightness temperature

Return type:

Quantity

Returns:

Brightness temperature

xvamp.geometry.get_cross_track_displacement(look_angle, central_angle, height_terrain, height_platform)[source]#

Calculate the cross-track displacement between a given central angle and one derived from a look angle assuming vacuum propagation.

Parameters:
Return type:

Quantity

Returns:

Distance along the spherical planet between the true point on the ground and the point if the look angle went through vacuum

xvamp.geometry.get_sza(lst, lat)[source]#

Calculate the solar zenith angle.

Parameters:
Return type:

float | ndarray[floating]

Returns:

Solar zenith angle [rad]

Note

Formula is from Keating et al. [1985], eq.(8). Assumes that the orbital tilt is approximately 0°.

xvamp.geometry.height_to_radius(height, planet_radius=VENUS_RADIUS, unit=u.km)[source]#

Add a planetary radius to a height and return the radius as a astropy.units.Quantity.

Parameters:
  • height (Quantity | float | ndarray[floating]) – Height to be converted to a radius. If not a Quantity, the unit keyword must match.

  • planet_radius (Quantity | float | ndarray[floating], default: VENUS_RADIUS) – Planet radius to use. If not a Quantity, the unit keyword must match.

  • unit (Unit, default: u.km) – Unit of the output.

Return type:

Quantity

Returns:

Equivalent radius of the height input