2. Antenna#
- class Antenna(name: str, turn_ratio: float = 1.1748998664886516, pos_craft_centrd: ArrayWFrame = None, spice_id: int | str = None)#
Bases:
InstrumentClass defining the antenna, to receive and transmit radiometric data for navigation.
- Parameters:
name (
str) – The name of the Antenna object.turn_around_ratio (
float, optional) – Transponder ratio between received and transmitted frequencies. Defaults to Xband value from Moyer:880.0 / 749.0.pos_craft_cntrd (
ArrayWFrame, optional) – Antenna shift position-vector. Defaults toNone.spice_id (
intorstr, optional) – The NAIF ID code of the object. May be given as an integer ID or as a string. Defaults toNone.
Attributes
The cross-sectional area of the spacecraft.
The SPICE ID assigned to the spacecraft's body-fixed frame.
The list of instruments attached to the spacecraft.
Stored constant or polynomial mass profile.
Description.
The N-Plate model representing the spacecraft's geometry.
The name of the spacecraft.
The reflectivity coefficient of the spacecraft.
The SPICE ID of the Body object.
DEF :base: Spacecraft :type:
Store the turn-around-ratio between transmitted and received frequency a the transponder.
Methods
add_instrument(instruments)Adds an instrument or instruments to the spacecraft.
Placeholder for Field of View functionality.
fit_mass_profile_from_data(t_array, m_array, ...)Fits a polynomial to a mass time history and sets it as the new mass profile.
get_attitude(from_frame, epoch[, tol])Computes the Direction Cosine Matrix (DCM) to transform vectors from a given inertial frame to the spacecraft-fixed frame.
Collects the SPICE ID's of all attached frames and instruments into a dictionary.
get_mass(t)Evaluates the time-varying mass profile at specified epochs.
get_state(epoch_0[, reference_frame, origin])Retrieves the state of the body relative to a given origin in a specified reference frame.
Computes the Direction Cosine Matrix (DCM) that points the body frame's -X axis toward the Sun (nadir-to-sun), using inertial quantities.
mass([t])Returns the mass of the body.
set_mass_profile(poly, units)Sets the mass profile of the body using a polynomial function and associated units.
- add_instrument(instruments) None#
Adds an instrument or instruments to the spacecraft.
- Parameters:
instruments (
InstrumentorlistofInstrument) – The instrument or instruments to be attached to the spacecraft.- Return type:
- field_of_view()#
Placeholder for Field of View functionality.
- Returns:
None
- fit_mass_profile_from_data(t_array: ndarray, m_array: ndarray, domain: tuple, units: Units)#
Fits a polynomial to a mass time history and sets it as the new mass profile.
- Parameters:
t_array (
np.ndarray) – Time values in seconds (ephemeris time).m_array (
np.ndarray) – Corresponding mass values.deg (
int) – Degree of the polynomial.domain (
tuple) – Domain [t0, tf] for the polynomial conversion.units (
ArrayWUnits) – Units to assign to the mass profile. If None, uses existing mass profile units.
- Return type:
- get_attitude(from_frame: Frame, epoch: EpochArray, tol: int = 0) ndarray#
Computes the Direction Cosine Matrix (DCM) to transform vectors from a given inertial frame to the spacecraft-fixed frame.
- Parameters:
from_frame (
Frame) – The intertial reference frame for which the spacecraft-fixed frame will be transformed from.epoch (
EpochArray) – The epoch at which the transformation will be performed. Given in ephemeris time (seconds past J2000).tol (
int, optional) – The time tolerance for retrieving attitude and angular velocity from the specified spacecraft clock time, given in sclock ticks. Defaults to0.
- Returns:
DCM – The DCM for transforming inertial vectors to spacecraft-fixed coordinates.
- Return type:
Notes
The
epochargument is converted from ephemeris time in seconds to continuous encoded spacecraft clock ticks.
- get_dependent_spice_ids()#
Collects the SPICE ID’s of all attached frames and instruments into a dictionary.
- Parameters:
None
- Returns:
ids – A dictionary containing the keys:
'instruments': list The SPICE ID’s of all attachedInstrumentobjects.'plates': list The SPICE ID’s of all C-frames for CK type panels defined in thenPlateModelif one has been assigned to the Spacecraft.
- Return type:
- get_mass(t: EpochArray) ArrayWUnits#
Evaluates the time-varying mass profile at specified epochs.
- Parameters:
t (
EpochArray) – Time(s) in ephemeris seconds (TDB).- Returns:
Evaluated mass at each input epoch.
- Return type:
- get_state(epoch_0, reference_frame: str = 'J2000', origin: str = 'EARTH')#
Retrieves the state of the body relative to a given origin in a specified reference frame.
- Parameters:
epoch_0 (
EpochArray) – The epoch times for which the state is to be computed.reference_frame (
str) – The reference frame in which the state is desired. Defaults to ‘J2000’.origin (
str) – The origin body relative to which the state is computed. Defaults to'EARTH'.
- Returns:
state_vector – The state vector of the body relative to the origin.
- Return type:
- inertial_to_body_DCM_nadir_pointing_to_sun(origin_name, frame, sun2body_pos, current_state: dict, epoch, body)#
Computes the Direction Cosine Matrix (DCM) that points the body frame’s -X axis toward the Sun (nadir-to-sun), using inertial quantities.
- Parameters:
origin_name (
str) – Name of the origin at which current_state is defined (e.g., ‘EARTH’, ‘SUN’).frame (
Frameorstr) – Frame in which current_state is expressed (e.g., J2000).sun2body_pos (
ArrayWUnits) – Position of the body w.r.t. SUN (km).current_state (
dict) –State of the body w.r.t. the origin. Accepts either: - {(‘velocity’, spice_id): Array/ArrayWUnits or ‘velocity’: Array/ArrayWUnits}
(and similarly for ‘position’ if ever needed)
epoch (
float) – Epoch (TDB seconds past J2000) at which the state is computed.body (
CelestialBodyorSpacecraft) – The body whose state we are extracting from current_state (used for spice_id lookup).
- Returns:
DCM_inertial_to_body – DCM that rotates inertial vectors into the body-fixed frame realizing the nadir-to-sun pointing.
- Return type:
(3,3) ndarray
- mass(t: EpochArray | float | ndarray = None) ArrayWUnits#
Returns the mass of the body. If the mass is time-varying, evaluates it at time t. If the mass is constant, returns the same value regardless of t.
- Parameters:
t (
EpochArray,float, ornp.ndarray, optional) – Time(s) in ephemeris seconds (TDB) at which to evaluate the mass. Or None for constant mass.- Returns:
Mass at time t or constant mass.
- Return type:
- set_mass_profile(poly: SCBPolynomial, units: Units)#
Sets the mass profile of the body using a polynomial function and associated units. :param poly: A polynomial object representing the mass profile. :type poly:
SCBPolynomial:param units: The units associated with the mass profile. :type units:Units- Returns:
None
- property area: ArrayWUnits#
The cross-sectional area of the spacecraft. Expressed in units of square meters.
- property mass_profile: ArrayWUnits | SCBPolynomial#
Stored constant or polynomial mass profile.
- property measurement_type#
Description.
- property n_plate_model: nPlateModel#
The N-Plate model representing the spacecraft’s geometry.
- property thruster#
DEF :base: Spacecraft :type: