boinor.twobody.sampling

module related to sampling of open or closed orbits in the sub-package twobody

Classes

SamplingStrategy

parent class just for definition of available methods

EpochsArray

sample orbit created from a list of epochs

TrueAnomalyBounds

sample orbit between bounds set by true anomaly

EpochBounds

sample orbit between bounds set with min and max epoch

Functions

sample_closed(ecc, min_nu[, max_nu, num_values])

Sample a closed orbit.

sample_open(ecc[, min_nu, max_nu, num_values, nu_limit])

Sample an open orbit.

Module Contents

boinor.twobody.sampling.sample_closed(ecc, min_nu, max_nu=None, num_values=100)

Sample a closed orbit.

If max_nu is given, the sampling interval will go from the minimum to the maximum true anomaly in the direction of the orbit. If not given, it will do a full revolution starting in the minimum true anomaly.

Notes

First sample the eccentric anomaly uniformly, then transform into true anomaly to minimize error in the apocenter, see https://apps.dtic.mil/dtic/tr/fulltext/u2/a605040.pdf

boinor.twobody.sampling.sample_open(ecc, min_nu=None, max_nu=None, num_values=100, *, nu_limit=None)

Sample an open orbit.

Notes

Uniform sampling on true anomaly in the absence of a better method. Minimum and maximum anomaly must be within limits, which are computed from the eccentricity if not given.

class boinor.twobody.sampling.SamplingStrategy

parent class just for definition of available methods

abstractmethod sample(orbit)

just a dummy function that must be implemented in a derived class

class boinor.twobody.sampling.EpochsArray(epochs, method=FarnocchiaPropagator())

Bases: SamplingStrategy

sample orbit created from a list of epochs

sample(orbit)

just a dummy function that must be implemented in a derived class

class boinor.twobody.sampling.TrueAnomalyBounds(min_nu=None, max_nu=None, num_values=100, hyp_r_factor=3.0)

Bases: SamplingStrategy

sample orbit between bounds set by true anomaly as default, orbit consists of 100 samples

sample(orbit)

just a dummy function that must be implemented in a derived class

class boinor.twobody.sampling.EpochBounds(min_epoch=None, max_epoch=None, num_values=100)

Bases: SamplingStrategy

sample orbit between bounds set with min and max epoch bounds are converted to true anomaly and the sample is created with class TrueAnomalyBounds() as default orbit consists of 100 samples

sample(orbit)

just a dummy function that must be implemented in a derived class