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
Satelliteand 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..._historyin their respective documentation. For example,StateLoggerrecords the time, position, and velocity of eachSatellite. After :meth:simulate: has been called, these values can also be accessed as attributes of eachSatellite.propagator (
Propagator) – Propagation technique to use to simulate the orbits of eachSatellite.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 asCowellPropagatormust 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 thenameparameter of eachSatelliteas 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
Missionso that it may be loaded later.- Parameters:
name (str) – Name of the pickled
Mission.target_directory (str) – The folder path to store the pickled
Missionin.
- 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.