Tutorials
Java tutorials, by the Orekit team
Maven site for the Java tutorials
The technical documentation explains how to build, download and contribute to the Orekit tutorials. Please choose the Orekit tutorials release for which you
want to consult the technical documentation:
Under development
12.2
12.0
11.3
11.2
11.1
11.0
10.3
10.2
10.1
Markdown tutorials
Tutorials provided with source code and comments in order to
emphazise particular use cases:
-
Attitude
This tutorial emphasizes a specific usage of the attitude package
described in the attitudes section of the library architecture
documentation.
-
Frames
This tutorial shows how to solve three problems: (1) computation of the
Doppler effect of a satellite with respect to a ground station, (2)
computation of the position and velocity of the center of gravity in the
EME2000 inertial frame and (3) plot some of the effects on the motion of
a spacecraft which attitude is guided by a yaw steering law.
-
Propagation
This tutorial details some elementary usages of the propagation package
described in the propagation section of the library architecture
documentation (propagation modes, events management).
-
Maneuvers
This tutorial shows some elementary usages of the maneuvers. Both simple impulse maneuvers and more complex continuous thrust maneuvers are presented.
-
Propagation in non-inertial frame
This tutorial aims to introduce orbital integration using
SingleBodyAttraction and InertialForces classes, which allowing the user
to compute the motion of a satellite in a reference frame that is not
necessarily centered on the main attractor and does not necessarily
possess inertial axis.
-
Time
This tutorial shows how to handle time in Orekit.
-
Geomagnetic Field Model
This tutorial shows how to calculate the geomagnetic field of the earth.
-
Integration in other languages
The Orekit library can be accessed from other languages, for
integration into existing software or for quick prototyping in
a scripting language such as Matlab, Python or Jython. This allows for
direct interaction with the different objects, either from a script or
directly at the command prompt, and quick access to plotting tools.
Pure Java tutorials
You will find the source code of these tutorials on the dedicated Orekit Tutorials project on the forge:
-
Attitude
- EarthObservation: shows how to easily switch between day and night attitude modes
-
Bodies
- DEFile: reads a DEXXX binary file (JPL or IMCCE inpop ephemeris file) and writes a new one containing only the data asked by the user
- Phasing: sets up a Sun-synchronous Earth-phased Low Earth Orbit
-
Control / indirect
- FixedBoundarySingleShooting: shows how to use the indirect (single) shooting method of Orekit. The study case is inspired by the Global Trajectory Optimization Competition 12
-
Conversion
- PropagatorConversion: helps understand how a propagator can be converted to another with a different model.
Here we convert a numerical propagator into an analytical Keplerian propagator
- TLEConversion: shows how to get a numerical propagator from a TLE and back
-
Data
- Context: explains how to instantiate several data contexts
-
Estimation: orbit determination (OD) example
- DSSTOrbitDetermination: batch least-square OD with a DSST propagator for a MEO (GNSS) satellite with RINEX measurements
- GNSSOrbitDetermination: same but with a numerical propagator instead
- ExtendedSemianalyticalKalmanFilter: extended Kalman OD with a DSST propagator for a geodesy (LAGEOS 2) satellite with laser ranging measurements
- KalmanNumericalOrbitDetermination: same but with a numerical propagator instead
- LaserRangingOrbitDetermination: same but with a batch least-square OD instead
- ManeuverEstimation: maneuvers parameters' estimation with simulated measurements
- NumericalOrbitDetermination: batch least-square OD with a numerical propagator for a GTO satellite with range and AZEL measurements
- SequentialBatchLeastSquares: an example of sequential batch least-square OD with a numerical propagator
- TLEBasedOrbitDetermination: batch least-square OD with a SGP4 propagator (TLE) for a MEO (GNSS) satellite with precise ephemeris (PV measurements)
- Performance / PerformanceTesting: simulates a large number of measurements on a large time slot to study Orekit OD performances
-
Frames
- Frames1-2-3: different examples of frame management
-
Gnss
- DOPComputation: shows a basic usage for computing the DOP over a geographic zone and for a period
- RinexObservationFile: reading of Rinex observation files
-
Maneuvers
- ApogeeManeuver: large apogee maneuver with a long (~1h) constant thrust maneuver
- ImpulseAtNode: shows how to perform a given impulse maneuver at node
- StationKeeping: East-West GEO Station Keeping with impulse maneuvers using DSST propagator
-
Models
- TidalDisplacements: shows how to compute stations tidal displacements
-
Propagation
- CovariancePropagation: linear covariance propagation example, starting from a CCSDS OPM (Orbit Parameter Message)
- DSSTPropagation: propagation with the DSST propagator
- EphemerisMode: shows how to produce an ephemeris with Orekit
- FieldPropagation: numerical propagation with Taylor-maps and a Monte Carlo sampling at the end
- GNSSPropagation: propagation with a GNSS-adapted propagator, starting from a navigation message
- GradientComputation: shows how to compute the Jacobian containing the partial derivatives of the acceleration with respect the the spacecraft coordinates
- GroundTrack: graphical display of ground tracks
- JupiterSwingBy: Swing-by trajectory about Jupiter compared in EME2000, ICRF and Jupiter-centered inertial reference frame
- KeplerianPropagation: propagation with a basic Keplerian propagator
- NumericalPropagation: propagation with a basic numerical propagator
- PropagationInNonInertialFrame: introduction to orbital integration using SingleBodyAttraction and non-inertial frames
- PropagationInRotatingFrame: Compared propagation of a LEO satellite in Earth-centered inertial and non-inertial frames: EME2000 and ITRF
- PropagationInNonInertialFrame: introduction to orbital integration using SingleBodyAttraction and non-inertial frames
- TrackCorridor: tutorial for track corridor display
- VisibilityCheck: shows how to easily check for visibility between a satellite and a ground station
- VisibilityCircle: computes visibility circles on ground as seen from a satellite
- CR3BP: Circular Restricted 3-Body Problem
- CR3BPSphereCrossingDetector: a detector for checking if a probe crashes on one of the two primary bodies in C3RBP
- EarthMoonHaloOrbit: computation of a northern Halo Orbit around Earth-Moon L1
- ManifoldTransfer: computation of a transfer from Earth-Moon L2 Halo Orbit to High Lunar Orbit using unstable manifolds
- PropagationInCR3BP: example of propagation in the Circular Restricted 3-Body problem with Orekit
- SunEarthMultipleShooter: correction of a trajectory using multiple shooting method in the Sun-Earth CR3BP
- YZPlaneCrossingDetector: a detector for YZ Planes crossing within C3RBP
-
Time
- Time1: tutorial for dates support
Orekit Python Wrapper examples, by Petrus Hyvönen
Petrus Hyvönen, who works for the
Swedish Space Corporation (SSC), created an
Orekit Python Wrapper
which is acclaimed by a lot of users. He has been maintaining it for years,
always providing an update in the days following the release of a new version of
Orekit. Petrus also wrote some tutorials for his wrapper, available in the
examples
directory of the Orekit Python Wrapper repository.
Thanks a lot for your amazing work Petrus!
-
Orekit in Python - The basics
This tutorial shows how to setup the use of Orekit in a Python
environment.
-
TLE Propagation
This is a short example of how to propage NASA Two Line Elements (TLE)
in the python-wrapped Orekit.
-
Ground track plot
This tutorial shows how to plot the ground track of a satellite, using
the Python Basemap module for mapping and Matplotlib for plotting.
Free & open source examples
Python Satellite Laser Ranging (SLR) orbit determination example, by Clément Jonglez
ASTRIAGraph, (The University of Texas at Austin)
-
ASTRIAGraph
ASTRIAGraph (see the demonstration site)
is an interactive visualization application which relies on orbdetpy, an
orbit determination library itself based on Orekit. ASTRIAGraph and
orbdetpy are both developed at the Advanced Sciences and Technology Research in Astronautics
(ASTRIA)
team of the University of Texas at Austin, and distributed under the GNU
GPL v3.0 license. They are published on Github
(AstriaGraph
and orbdetpy).