astro.Mission#

class hohmannpy.astro.Mission(satellites, initial_global_time, final_global_time, loggers=None, propagator=None, perturbing_forces=None, verbose=True, cores=1)#

Master class for all orbital simulations.

Contains the ability to propagate the orbits of a set of Satellite and then render and propagate the results.

Parameters:
  • satellites (list of Satellite) – List of satellites whose orbits the Mission will propagate.

  • initial_global_time (Time) – The Gregorian date and UT1 time to start the mission at.

  • final_global_time (Time) – The Gregorian date and UT1 time to end the mission at.

  • loggers (list[Logger]) – Loggers determine which data to record for each satellite during propagation. To see what data each logger records, check the attributes labeled ..._history in their respective documentation. For example, StateLogger records the time, position, and velocity of each Satellite. After :meth:simulate: has been called, these values can also be accessed as attributes of each Satellite.

  • propagator (Propagator) – Propagation technique to use to simulate the orbits of each Satellite.

  • perturbing_forces (list[Perturbation]) – Perturbations to add to the mission to increase the fidelity of orbital simulation. Note that if any are added a non-Keplerian propagator such as CowellPropagator must be used.

  • verbose (bool) – Whether to print information about propagation.

  • cores (int) – How many cores to use propagation. If this is greater than 1 parallel computing will be enabled.

Variables:

satellites (dict[str, Satellite]) – Dictionary of satellites created using the name parameter of each Satellite as the key and the object itself as the value. All data post-propagation regarding each satellite is stored here.

display()#

Display the orbits of all satellites using a Qt application.

This should only be called after simulate() is run.

save(name, target_directory)#

Pickle the Mission so that it may be loaded later.

Parameters:
  • name (str) – Name of the pickled Mission.

  • target_directory (str) – The folder path to store the pickled Mission in.

simulate()#

Propagate the orbits of all stored Satellite.

This also contains all the parallel computing logic.

to_csv(target_directory, fp_accuracy)#

Save all the data logged over the course of the mission. For each satellite, all logged data is stored as a .csv where each column represents a different variable and each row a timestep of propagation.

This should only be called after simulate() is run.

Parameters:
  • target_directory (str) – The folder path to store all the result .csv’s to.

  • fp_accuracy (int) – How many digits past the decimal to record for each data point.