opihiexarata.propagate.solution module

The main solution class for propagations.

class opihiexarata.propagate.solution.PropagativeSolution(ra: ndarray, dec: ndarray, obs_time: list, solver_engine: PropagationEngine, vehicle_args: dict = {})[source]

Bases: ExarataSolution

The general solution class for asteroid propagation.

This uses the recent past location of asteroids to determine their future location. For determination based on orbital elements and ephemerids, use the OrbitalSolution and EphemeriticSolution classes respectively.

ra_array

The array of right ascensions used fit and extrapolate to, in degrees.

Type:

array-like

dec_array

The array of declinations used fit and extrapolate to, in degrees.

Type:

array-like

obs_time_array

An array of observation times which the RA and DEC measurements were taken at. The values are in Julian days.

Type:

array-like

raw_ra_velocity

The right ascension angular velocity of the target, in degrees per second. These values are derived straight from the data and not the propagation engine.

Type:

float

raw_dec_velocity

The declination angular velocity of the target, in degrees per second. These values are derived straight from the data and not the propagation engine.

Type:

float

raw_ra_acceleration

The right ascension angular acceleration of the target, in degrees per second squared. These values are derived straight from the data and not the propagation engine.

Type:

float

raw_dec_acceleration

The declination angular acceleration of the target, in degrees per second squared. These values are derived straight from the data and not the propagation engine.

Type:

float

ra_velocity

The right ascension angular velocity of the target, in degrees per second. These values are derived from the engine.

Type:

float

dec_velocity

The declination angular velocity of the target, in degrees per second. These values are derived from the engine.

Type:

float

ra_acceleration

The right ascension angular acceleration of the target, in degrees per second squared. These values are derived from the engine.

Type:

float

dec_acceleration

The declination angular acceleration of the target, in degrees per second squared. These values are derived from the engine.

Type:

float

__init__(ra: ndarray, dec: ndarray, obs_time: list, solver_engine: PropagationEngine, vehicle_args: dict = {})[source]

The instantiation of the propagation solution.

Parameters:
  • ra (array-like) – An array of right ascensions to fit and extrapolate to, must be in degrees.

  • dec (array-like) – An array of declinations to fit and extrapolate to, must be in degrees.

  • obs_time (array-like) – An array of observation times which the RA and DEC measurements were taken at. Must be Julian days.

  • solver_engine (PropagationEngine) – The propagation solver engine class that will be used to compute the propagation solution.

  • vehicle_args (dictionary) – If the vehicle function for the provided solver engine needs extra parameters not otherwise provided by the standard input, they are given here.

Return type:

None

__init_compute_propagation_motion(obs_time_array: ndarray) tuple[float, float, float, float]

Compute the raw velocities and accelerations of RA and DEC.

This function prioritizes calculating the raw motion using the most recent observations only.

Parameters:

obs_time_array (array-like) – An array of observation times which the RA and DEC measurements were taken at. The values are in Julian days.

Returns:

  • propagate_ra_velocity (float) – The propagative right ascension angular velocity of the target, in degrees per second.

  • propagate_dec_velocity (float) – The propagative declination angular velocity of the target, in degrees per second.

  • propagate_ra_acceleration (float) – The propagative right ascension angular acceleration of the target, in degrees per second squared. propagation engine.

  • propagate_dec_acceleration (float) – The propagative declination angular acceleration of the target, in degrees per second squared.

__init_compute_raw_motion(ra_array: ndarray, dec_array: ndarray, obs_time_array: ndarray) tuple[float, float, float, float]

Compute the raw velocities and accelerations of RA and DEC.

This function prioritizes calculating the raw motion using the most recent observations only.

Parameters:
  • ra_array (array-like) – The array of right ascensions used fit and extrapolate to, in degrees.

  • dec_array (array-like) – The array of declinations used fit and extrapolate to, in degrees.

  • obs_time_array (array-like) – An array of observation times which the RA and DEC measurements were taken at. The values are in Julian days.

Returns:

  • raw_ra_velocity (float) – The raw right ascension angular velocity of the target, in degrees per second.

  • raw_dec_velocity (float) – The raw declination angular velocity of the target, in degrees per second.

  • raw_ra_acceleration (float) – The raw right ascension angular acceleration of the target, in degrees per second squared. propagation engine.

  • raw_dec_acceleration (float) – The raw declination angular acceleration of the target, in degrees per second squared.

forward_propagate(future_time: ndarray) tuple[ndarray, ndarray][source]

A wrapper call around the engine’s propagation function. This allows the computation of future positions at a future time using propagation.

Parameters:

future_time (array-like) – The set of future times which to derive new RA and DEC coordinates. The time must be in Julian days.

Returns:

  • future_ra (ndarray) – The set of right ascensions that corresponds to the future times, in degrees.

  • future_dec (ndarray) – The set of declinations that corresponds to the future times, in degrees.

opihiexarata.propagate.solution._vehicle_linear_propagation(ra_array: ndarray, dec_array: ndarray, obs_time_array: ndarray) dict[source]

Derive the propagation from 1st order polynomial extrapolation methods.

Parameters:
  • ra_array (array-like) – The array of right ascensions used fit and extrapolate to, in degrees.

  • dec_array (array-like) – The array of declinations used fit and extrapolate to, in degrees.

  • obs_time_array (array-like) – An array of observation times which the RA and DEC measurements were taken at. The values are in Julian days.

Returns:

solution_results – The results of the propagation engine which then gets integrated into the solution.

Return type:

dictionary

opihiexarata.propagate.solution._vehicle_quadratic_propagation(ra_array: ndarray, dec_array: ndarray, obs_time_array: ndarray) dict[source]

Derive the propagation from 2nd order polynomial extrapolation methods.

Parameters:
  • ra_array (array-like) – The array of right ascensions used fit and extrapolate to, in degrees.

  • dec_array (array-like) – The array of declinations used fit and extrapolate to, in degrees.

  • obs_time_array (array-like) – An array of observation times which the RA and DEC measurements were taken at. The values are in Julian days.

Returns:

solution_results – The results of the propagation engine which then gets integrated into the solution.

Return type:

dictionary