orekit

Wrapper for the Orekit propagator

Links:

Example usage:

Simple propagation showing time difference due to loading of model data.

from sorts.propagator import Orekit

Module summary

Classes

Orekit(orekit_data[, settings])

Propagator class implementing the Orekit propagator.

Functions

mjd2absdate(mjd, utc)

Converts a Modified Julian Date value to an orekit AbsoluteDate

npdt2absdate(dt, utc)

Converts a numpy datetime64 value to an orekit AbsoluteDate

Contents

Orekit

class sorts.propagator.orekit.Orekit(orekit_data, settings=None, **kwargs)[source]

Bases: sorts.propagator.base.Propagator

Propagator class implementing the Orekit propagator.

#TODO: Update docs according to new “settings dict” method. #TODO: Valdiate Orekit v10 compatibility

Variables
  • solarsystem_perturbers (list) – List of strings of names of objects in the solarsystem that should be used for third body perturbation calculations. All objects listed at CelestialBodyFactory are available.

  • in_frame (str) – String identifying the input frame to be used. All frames listed at FramesFactory are available.

  • out_frame (str) –

    String identifying the output frame to be used. All frames listed at FramesFactory are available.

  • drag_force (bool) – Should drag force be included in propagation.

  • radiation_pressure (bool) – Should radiation pressure force be included in propagation.

  • frame_tidal_effects (bool) – Should coordinate frames include Tidal effects.

  • integrator (str) – String representing the numerical integrator from the Hipparchus package to use. Any integrator listed at Hipparchus nonstiff ode is available.

  • minStep (float) – Minimum time step allowed in the numerical orbit propagation given in seconds.

  • maxStep (float) – Maximum time step allowed in the numerical orbit propagation given in seconds.

  • position_tolerance (float) – Position tolerance in numerical orbit propagation errors given in meters.

  • earth_gravity (str) – Gravitation model to use for calculating central acceleration force. Currently avalible options are ‘HolmesFeatherstone’ and ‘Newtonian’. See gravity.

  • gravity_order (tuple) – A tuple of two integers for describing the order of spherical harmonics used in the HolmesFeatherstoneAttractionModel model.

  • atmosphere (str) – Atmosphere model used to calculate atmospheric drag. Currently available options are ‘DTM2000’. See atmospheres.

  • solar_activity (str) – The model used for calculating solar activity and thereby the influx of solar radiation. Used in the atmospheric drag force model. Currently available options are ‘Marshall’ for the MarshallSolarActivityFutureEstimation.

  • constants_source (str) – Controls which source for Earth constants to use. Currently avalible options are ‘WGS84’ and ‘JPL-IAU’. See constants.

  • mu (float) – Standard gravitational constant for the Earth. Definition depend on the sorts.propagator.Orekit constructor parameter constants_source

  • R_earth (float) – Radius of the Earth in m. Definition depend on the sorts.propagator.Orekit constructor parameter constants_source

  • f_earth (float) – Flattening of the Earth (i.e. \(\frac{a-b}{a}\) ). Definition depend on the sorts.propagator.Orekit constructor parameter constants_source.

  • M_earth (float) – Mass of the Earth in kg. Definition depend on the sorts.propagator.Orekit constructor parameter constants_source

  • inputFrame (org.orekit.frames.Frame) – The orekit frame instance for the input frame.

  • outputFrame (org.orekit.frames.Frame) – The orekit frame instance for the output frame.

  • inertialFrame (org.orekit.frames.Frame) – The orekit frame instance for the inertial frame. If inputFrame is pseudo innertial this is the same as inputFrame.

  • body (org.orekit.bodies.OneAxisEllipsoid) – The model ellipsoid representing the Earth.

  • _forces (dict) – Dictionary of forces to include in the numerical integration. Contains instances of children of org.orekit.forces.AbstractForceModel.

  • _tolerances (list) – Contains the absolute and relative tolerances calculated by the tolerances function.

  • propagator (org.orekit.propagation.numerical.NumericalPropagator) – The numerical propagator instance.

  • SolarStrengthLevel (org.orekit.forces.drag.atmosphere.data.MarshallSolarActivityFutureEstimation.StrengthLevel) – The strength of the solar activity. Options are ‘AVRAGE’, ‘STRONG’, ‘WEAK’.

The constructor creates a propagator instance with supplied options.

Parameters
  • solarsystem_perturbers (list) –

    List of strings of names of objects in the solarsystem that should be used for third body perturbation calculations. All objects listed at CelestialBodyFactory are available.

  • in_frame (str) –

    String identifying the input frame to be used. All frames listed at FramesFactory are available.

  • out_frame (str) –

    String identifying the output frame to be used. All frames listed at FramesFactory are available.

  • drag_force (bool) – Should drag force be included in propagation.

  • radiation_pressure (bool) – Should radiation pressure force be included in propagation.

  • frame_tidal_effects (bool) – Should coordinate frames include Tidal effects.

  • integrator (str) –

    String representing the numerical integrator from the Hipparchus package to use. Any integrator listed at Hipparchus nonstiff ode is available.

  • min_step (float) – Minimum time step allowed in the numerical orbit propagation given in seconds.

  • max_step (float) – Maximum time step allowed in the numerical orbit propagation given in seconds.

  • position_tolerance (float) – Position tolerance in numerical orbit propagation errors given in meters.

  • atmosphere (str) –

    Atmosphere model used to calculate atmospheric drag. Currently available options are ‘DTM2000’. See atmospheres.

  • solar_activity (str) –

    The model used for calculating solar activity and thereby the influx of solar radiation. Used in the atmospheric drag force model. Currently available options are ‘Marshall’ for the MarshallSolarActivityFutureEstimation.

  • constants_source (str) –

    Controls which source for Earth constants to use. Currently avalible options are ‘WGS84’ and ‘JPL-IAU’. See constants.

  • earth_gravity (str) –

    Gravitation model to use for calculating central acceleration force. Currently avalible options are ‘HolmesFeatherstone’ and ‘Newtonian’. See gravity.

  • gravity_order (tuple) –

    A tuple of two integers for describing the order of spherical harmonics used in the HolmesFeatherstoneAttractionModel model.

  • solar_activity_strength (str) – The strength of the solar activity. Options are ‘AVRAGE’, ‘STRONG’, ‘WEAK’.

class OrekitVariableStep[source]

Bases: org.orekit.python.PythonOrekitStepHandler

Class for handling the steps.

convert_time(t, epoch)

Convert input time and epoch variables to astropy.TimeDelta and astropy.Time variables of the correct format and scale.

heartbeat(t, state, **kwargs)

Function applied after propagation to time t and state state, before next time step as given in the input time vector to propagate.

propagate(t, state0, epoch, **kwargs)[source]

Implementation:

Keyword arguments are:

  • float A: Area in m^2

  • float C_D: Drag coefficient

  • float C_R: Radiation pressure coefficient

  • float m: Mass of object in kg

Functions

sorts.propagator.orekit.mjd2absdate(mjd, utc)[source]

Converts a Modified Julian Date value to an orekit AbsoluteDate

sorts.propagator.orekit.npdt2absdate(dt, utc)[source]

Converts a numpy datetime64 value to an orekit AbsoluteDate