madlib._satellite.Satellite

class madlib._satellite.Satellite(epoch: float, pos: ndarray[Any, dtype[float64]], vel: ndarray[Any, dtype[float64]], acc: ndarray[Any, dtype[float64]] = array([0., 0., 0.]), maneuver_info: ImpulsiveManeuver | None | ContinuousManeuver = None, epoch_true: float | None = None, pos_true: ndarray[Any, dtype[float64]] | None = None, vel_true: ndarray[Any, dtype[float64]] | None = None, acc_true: ndarray[Any, dtype[float64]] | None = None, **kwargs)[source]

Satellite class for propagating a satellite (either with or without a maneuver).

__init__(epoch: float, pos: ndarray[Any, dtype[float64]], vel: ndarray[Any, dtype[float64]], acc: ndarray[Any, dtype[float64]] = array([0., 0., 0.]), maneuver_info: ImpulsiveManeuver | None | ContinuousManeuver = None, epoch_true: float | None = None, pos_true: ndarray[Any, dtype[float64]] | None = None, vel_true: ndarray[Any, dtype[float64]] | None = None, acc_true: ndarray[Any, dtype[float64]] | None = None, **kwargs)[source]

Instantiate a Satellite object.

Parameters:
  • epoch (float) – Timestamp (MJD, UTC) indicating the time at which this orbital state is defined

  • pos (NDArray[np.float64]) – Vector describing the satellite position at epoch. Coordinate system is TETED. Units are km. Shape: (3,)

  • vel (NDArray[np.float64]) – Vector describing the satellite velocity at epoch. Coordinate system is TETED. Units are km/s. Shape: (3,)

  • acc (NDArray[np.float64], optional) – Vector describing the satellite anomalous acceleration at epoch. Coordinate system is TETED. Units are km/s/s. Shape: (3,), by default np.zeros((3,))

  • maneuver_info (Optional[ImpulsiveManeuver], optional) – Maneuver object describing when and how the satellite performs an impulsive maneuver, by default None

  • epoch_true (float | None, optional) – If not None, then this is the ACTUAL epoch of the orbit, and <epoch> is a reported value with some error. Units are MJD in UTC system. Default is None.

  • pos_true (NDArray[np.float64] | None, optional) – If not None, then this vector is the satellite’s ACTUAL position at epoch, and <pos> is a reported value with some error. Coordinate system is TETED. Units are km. Shape: (3,). Default is None.

  • vel_true (NDArray[np.float64] | None, optional) – If not None, then this vector is the satellite’s ACTUAL velocity at epoch, and <vel> is a reported value with some error. Coordinate system is TETED. Units are km/s. Shape: (3,). Default is None.

  • acc_true (NDArray[np.float64] | None, optional) – If not None, then this vector is the satellite’s ACTUAL anomalous acceleration at epoch, and <acc> is a reported value with some error. Coordinate system is TETED. Units are km/s/s. Shape: (3,). Default is None.

Raises:

NotImplementedError – kwargs are not yet supported

Methods

__init__(epoch, pos, vel[, acc, ...])

Instantiate a Satellite object.

copy()

create_cross_tag(cross_mjd, delta_pos_km, ...)

Create a satellite that will cross nearby this satellite, potentially creating a series of misattribution events.

from_GEO_longitude(lon, epoch)

Create a Satellite in GEO at the given longitude

from_keplerian(epoch, inclination_rad, ...)

Create a Satellite from Keplerian elements

propagate(times[, ignore_maneuvers, ...])

Propagates the satellite to the time(s) given.

rv2rsw(r, v)

Compute rotation matrix from ECI frame to RSW frame.

validate_input_vector(input_vector, input_name)

Attributes

acc

acc_true

does_maneuver

epoch

epoch_true

maneuver

v

v_true

x

x_true