EclairsOrbit

class EclairsOrbit(orbit_filename=None, attitude_filename=None)[source]

Bases: object

Manage orbital aspects for the SVOM mission.

Constructor

Parameters:
  • orbit_filename (str) – name of the orbit .fits file
  • attitude_filename (str) – name of the attitude .fits file

Methods Summary

compute_earth_frac(open_fov_map) Compute earth fraction in FOV;
earth_position([position, quater, idx_row]) Return Earth angular position (theta_E, phi_E) in field of view.
get_field(field) Get field column from already loaded data.
is_earth_in_fov([position, quater, idx_row]) Check whether Earth appears in the instrument FOV.
is_in_saa() Check whether the satellite is in the South Atlantic Anomaly (SAA).
limb_angle([position, idx_row]) Compute alpha limb angle at different times so as to determine whether a given pixel falls on the Earth surface or not.
open_fov_map([position, quater, idx_row]) Create the open field of view map, ie.

Methods Documentation

compute_earth_frac(open_fov_map)[source]

Compute earth fraction in FOV;

Parameters:open_fov_map (array(bool)) – sky map with directions occulted by Earth
Returns:earth fraction
Return type:float
earth_position(position=None, quater=None, idx_row=None)[source]

Return Earth angular position (theta_E, phi_E) in field of view.

See section 9.1 (p.50/65) in SV-SY-NT-242-JPO document (v4). See mail/code from Sujay 17 Sept 2019

Note

transformation (dir, elev) <-> (theta, phi) is

theta = 90 - elev and phi = dir.

Parameters:position – instrument position (X, Y, Z) in geocentric frame.

Assume coordinates are given in km. Default is None. :type position: array :param quater: quaternion (q0, q1, q2, q3). Default is None. :type quater: array :param n: row index in astropy table. Default is None. :type n: int :return: unit vector pointing to the center of the Earth in FOV frame :rtype: array(float) of shape (3,)

get_field(field)[source]

Get field column from already loaded data.

Parameters:field (str) – name of the required field
is_earth_in_fov(position=None, quater=None, idx_row=None)[source]

Check whether Earth appears in the instrument FOV.

documentation: * simulation_correction_cxb_earth_15_05_2020_v2_alg.pdf (version 2) p.6 * simulation_correction_pipeline_cxb_earth_15_05_2020_v2_pb.pdf (version 2) p.3

Parameters:position – instrument position (X, Y, Z) in geocentric frame.

Assume coordinates are given in km. Default is None. :type position: array :param quater: quaternion (q0, q1, q2, q3). Default is None. :type quater: array :param idx_row: row index in astropy table. Default is None. :type idx_row: int :return: if Earth is in FOV :rtype: bool

is_in_saa()[source]

Check whether the satellite is in the South Atlantic Anomaly (SAA).

Note

likely to be provided by a .fits file. No need to be recomputed.

limb_angle(position=None, idx_row=None)[source]

Compute alpha limb angle at different times so as to determine whether a given pixel falls on the Earth surface or not.

Limb angle is defined to be the angle between the earth direction and a tangent line (see AlG slides for scheme and maths)

documentation: * simulation_correction_cxb_earth_15_05_2020_v2_alg.pdf (version 2) p.5 * simulation_correction_pipeline_cxb_earth_15_05_2020_v2_pb.pdf (version 2) p.3

Parameters:position – instrument position (X, Y, Z) in geocentric frame.

Assume coordinates are given in km. Default is None. :type position: array :param idx_row: row index in astropy table. Default is None. :type idx_row: int :return: limb angle in degrees :rtype: float

open_fov_map(position=None, quater=None, idx_row=None)[source]

Create the open field of view map, ie. a detector size array (199x199) filled with 0 and 1. Each pixel value is 0 if Earth is present in the LoS and 1 otherwise.

docstring TBC

Parameters:idx_row (int) – row index in astropy table
Returns:open fov 199x199 map
Return type:2D array(bool)