index.md 18.4 KB
Newer Older
Luc Maisonobe's avatar
Luc Maisonobe committed
1
<!--- Copyright 2002-2022 CS GROUP
2
3
4
5
6
7
8
9
10
11
12
13
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
    http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
Luc Maisonobe's avatar
Luc Maisonobe committed
14

15
# Overview
Luc Maisonobe's avatar
Luc Maisonobe committed
16

17
  OREKIT (ORbits Extrapolation KIT) is a free low-level space dynamics library
Luc Maisonobe's avatar
Luc Maisonobe committed
18
19
20
21
22
23
  written in Java.

  It provides basic elements (orbits, dates, attitude, frames ...) and
  various algorithms to handle them (conversions, analytical and numerical
  propagation, pointing ...).

24
## Features
Luc Maisonobe's avatar
Luc Maisonobe committed
25

26
  * Time
Luc Maisonobe's avatar
Luc Maisonobe committed
27
28

    * high accuracy absolute dates
29
    * time scales (TAI, UTC, UT1, GPS, TT, TCG, TDB, TCB, GMST, GST, GLONASS, QZSS, BDT, IRNSS ...)
Luc Maisonobe's avatar
Luc Maisonobe committed
30
    * transparent handling of leap seconds
31
    * support for CCSDS time code standards
Luc Maisonobe's avatar
Luc Maisonobe committed
32

33
  * Geometry
Luc Maisonobe's avatar
Luc Maisonobe committed
34

Luc Maisonobe's avatar
Luc Maisonobe committed
35
36
    * frames hierarchy supporting fixed and time-dependent
      (or telemetry-dependent) frames
37
    * predefined frames (EME2000/J2000, ICRF, GCRF, all ITRF from 1988 to 2020
38
39
      and intermediate frames, TOD, MOD, GTOD and TOD frames, Veis, topocentric, TEME and PZ-90.11 frames,
      tnw and qsw local orbital frames, Moon, Sun, planets, solar system barycenter,
40
      Earth-Moon barycenter, ecliptic)
Luc Maisonobe's avatar
Luc Maisonobe committed
41
    * user extensible (used operationally in real time with a set of about 60 frames on
42
      several spacecraft)
43
44
    * transparent handling of IERS Earth Orientation Parameters (for both new CIO-based frames
      following IERS 2010 conventions and old equinox-based frames)
45
    * transparent handling of JPL DE 4xx (405, 406 and more recent) and INPOP ephemerides
Luc Maisonobe's avatar
Luc Maisonobe committed
46
47
48
    * transforms including kinematic combination effects
    * composite transforms reduction and caching for efficiency
    * extensible central body shapes models (with predefined spherical and ellipsoidic shapes)
49
    * Cartesian and geodesic coordinates, kinematics
Luc Maisonobe's avatar
Luc Maisonobe committed
50
51
    * computation of Dilution Of Precision (DOP) with respect to GNSS constellations
    * projection of sensor Field Of View footprint on ground for any FoV shape
Luc Maisonobe's avatar
Luc Maisonobe committed
52

53
  * Spacecraft state
Luc Maisonobe's avatar
Luc Maisonobe committed
54

55
56
    * Cartesian, elliptical Keplerian, circular and equinoctial parameters, with non-Keplerian
      derivatives if available
57
    * Two-Line Elements
Luc Maisonobe's avatar
Luc Maisonobe committed
58
59
60
    * transparent conversion between all parameters
    * automatic binding with frames
    * attitude state and derivative
61
    * Jacobians
Luc Maisonobe's avatar
Luc Maisonobe committed
62
    * mass management
Luc Maisonobe's avatar
Luc Maisonobe committed
63
    * user-defined associated state
64
      (for example battery status, or higher order derivatives, or anything else)
Luc Maisonobe's avatar
Luc Maisonobe committed
65

66
  * Maneuvers
67
68
69

    * analytical models for small maneuvers without propagation
    * impulse maneuvers for any propagator type
70
    * continuous maneuvers for numerical propagator type
71
    * configurable low thrust maneuver model based on event detectors
72
    * propulsion models intended to be used with maneuver class
73
    * user-friendly interface for the maneuver triggers
74

75
  * Propagation
Luc Maisonobe's avatar
Luc Maisonobe committed
76
77

    * analytical propagation models
78
79
        * Kepler
        * Eckstein-Heschler
80
        * Brouwer-Lyddane with Warren Phipps' correction for the critical inclination of 63.4°
81
          and the perturbative acceleration due to atmospheric drag
82
        * SDP4/SGP4 with 2006 corrections
83
        * GNSS: GPS, QZSS, Galileo, GLONASS, Beidou, IRNSS and SBAS
Luc Maisonobe's avatar
Luc Maisonobe committed
84
    * numerical propagators
85
86
87
88
89
90
91
92
93
        * central attraction
        * gravity models including time-dependent like trends and pulsations
          (automatic reading of ICGEM (new Eigen models), SHM (old Eigen models),
          EGM and GRGS gravity field files formats, even compressed)
        * atmospheric drag
        * third body attraction (with data for Sun, Moon and all solar systems planets)
        * radiation pressure with eclipses
        * solid tides, with or without solid pole tide
        * ocean tides, with or without ocean pole tide
94
95
        * Earth's albedo and infrared
        * empirical accelerations to account for the unmodeled forces
96
        * general relativity (including Lense-Thirring and De Sitter corrections)
97
98
99
100
101
102
        * multiple maneuvers
        * state of the art ODE integrators (adaptive stepsize with error control,
          continuous output, switching functions, G-stop, step normalization ...)
        * serialization mechanism to store complete results on persistent storage for
          later use
        * propagation in non-inertial frames (e.g. for Lagrange point halo orbits)
103
104
105
106
107
108
    * semi-analytical propagation model (DSST)
        * central attraction
        * gravity models
        * atmospheric drag
        * third body attraction
        * radiation pressure with eclipses
109
110
111
    * computation of Jacobians with respect to orbital parameters and selected
      model parameters for numerical, semi-analytical, and analytical propagation
      models
112
    * trajectories around Lagragian points using CR3BP model
Luc Maisonobe's avatar
Luc Maisonobe committed
113
    * tabulated ephemerides
114
115
116
        * file based
        * memory based
        * integration based
117
118
119
120
    * Taylor-algebra (or any other real field) version of most of the above propagators,
        with all force models, events detection, orbits types, coordinates types and frames
        allowing high order uncertainties and derivatives computation or very fast Monte-Carlo
        analyzes
Luc Maisonobe's avatar
typo    
Luc Maisonobe committed
121
    * unified interface above analytical/numerical/tabulated propagators for easy
Luc Maisonobe's avatar
Luc Maisonobe committed
122
      switch from coarse analysis to fine simulation with one line change
123
124
125
126
127
128
129
130
131
132
133
    * all propagators can manage the time loop by themselves and handle callback
      functions (called step handlers) from the calling application at each time step.
        * step handlers can be called at discrete time at regular time steps, which are
          independent of propagator time steps
        * step handlers can be called with interpolators valid throughout one propagator
          time step, which can have varying sizes
        * step handlers can be switched off completely, when only final state is desired
        * special step handlers are provided for a posteriori ephemeris generation: all
          intermediate results are stored during propagation and provided back to the application
          which can navigate at will through them, effectively using the propagated orbit as if
          it was analytical model, even if it really is a numerically propagated one, which
134
          is ideal for search and iterative algorithms
135
136
137
138
139
        * several step handlers can be used simultaneously, so it is possible to have a fine
          grained fixed time step to log state in a huge file, and have at the same time a
          coarse grained time step to display progress for user at a more human-friendly rate,
          this feature can also be used for debugging purpose, by setting up a temporary
          step handler alongside the operational ones
140
141
    * handling of discrete events during integration
      (models changes, G-stop, simple notifications ...)
142
    * predefined discrete events
143
144
145
146
147
148
149
150
151
152
        * eclipse (both umbra and penumbra)
        * ascending and descending node crossing
        * apogee and perigee crossing
        * alignment with some body in the orbital plane
          (with customizable threshold angle)
        * angular separation thresholds crossing between spacecraft and a beacon (typically the Sun)
          as seen from an observer (typically a ground station)
        * raising/setting with respect to a ground location
          (with customizable triggering elevation and ground mask, optionally considering refraction)
        * date and on-the-fly resetting countdown
153
        * date interval with parameter-driven boundaries
154
155
156
157
158
159
160
161
162
163
164
165
        * latitude, longitude, altitude crossing
        * latitude, longitude extremum
        * elevation extremum
        * anomaly, latitude argument, or longitude argument crossings, either true, mean or eccentric
        * moving target detection (with optional radius) in spacecraft sensor Field Of View (any shape, with special case for circular)
        * spacecraft detection in ground based Field Of View (any shape)
        * sensor Field Of View (any shape) overlapping complex geographic zone
        * complex geographic zones traversal
        * inter-satellites direct view
        * ground at night
        * impulse maneuvers occurrence
        * geomagnetic intensity
166
    * possibility of slightly shifting events in time (for example to switch from
Luc Maisonobe's avatar
Luc Maisonobe committed
167
168
      solar pointing mode to something else a few minutes before eclipse entry and
      reverting to solar pointing mode a few minutes after eclipse exit)
169
    * events filtering based on their direction (for example to detect
170
      only eclipse entries and not eclipse exits)
171
    * events filtering  based on an external enabling function (for
172
      example to detect events only during selected orbits and not others)
173
174
    * events combination with boolean operators
    * ability to run several propagators in parallel and manage their states
175
      simultaneously throughout propagation
Luc Maisonobe's avatar
Luc Maisonobe committed
176

177
  * Attitude
Luc Maisonobe's avatar
Luc Maisonobe committed
178
179
180

    * extensible attitude evolution models
    * predefined laws
181
182
183
184
185
        * central body related attitude (nadir pointing, center pointing, target pointing, yaw compensation, yaw-steering),
        * orbit referenced attitudes (LOF aligned, offset on all axes),
        * space referenced attitudes (inertial, celestial body-pointed, spin-stabilized)
        * tabulated attitudes, either respective to inertial frame or respective to Local Orbital Frames
        * specific law for GNSS satellites: GPS (block IIA, block IIF, block IIF), GLONASS, GALILEO, BEIDOU (GEO, IGSO, MEO)
186
    * loading and writing of CCSDS Attitude Data Messages (both AEM, and APM types are supported, in both KVN and XML formats, standalone or in combined NDM)
187
    * exporting of attitude ephemeris in CCSDS AEM file format
188

189
190
  * Orbit determination
  
191
    * batch least squares fitting
192
193
194
        * optimizers choice (Levenberg-Marquardt or Gauss-Newton)
        * decomposition algorithms choice (QR, LU, SVD, Cholesky)
        * choice between forming normal equations or not
195
196
197
198
    * sequential batch least squares fitting
        * sequential Gauss-Newton optimizer
        * decomposition algorithms choice (QR, LU, SVD, Cholesky)
        * possibility to use an initial covariance matrix
199
    *  Kalman filtering
200
201
        * customizable process noise matrices providers
        * time dependent process noise provider
202
        * implementation of the Extended Semi-analytical Kalman Filter
203
    * parameters estimation
204
205
        * orbital parameters estimation (or only a subset if desired)
        * force model parameters estimation (drag coefficients, radiation pressure coefficients,
206
          central attraction, maneuver thrust, flow rate or start/stop epoch)
207
208
209
        * measurements parameters estimation (biases, satellite clock offset, station clock offset,
          station position, pole motion and rate, prime meridian correction and rate, total zenith
          delay in tropospheric correction)
210
    * orbit determination can be performed with numerical, DSST, SDP4/SGP4, Eckstein-Hechler, Brouwer-Lyddane, or Keplerian propagators
Bryan Cazabonne's avatar
Bryan Cazabonne committed
211
    * ephemeris-based orbit determination to estimate measurement parameters like station biases or clock offsets
212
    * multi-satellites orbit determination
213
    * initial orbit determination methods (Gibbs, Gooding, Lambert and Laplace)
214
215
    * ground stations displacements due to solid tides
    * ground stations displacements due to ocean loading (based on Onsala Space Observatory files in BLQ format)
216
    * several predefined measurements
217
218
219
220
221
222
223
224
        * range
        * range rate (one way and two way)
        * turn-around range
        * azimuth/elevation
        * right ascension/declination
        * position-velocity
        * position
        * inter-satellites range (one way and two way)
225
        * inter-satellites GNSS phase
226
        * GNSS code
227
        * GNSS phase with integer ambiguity resolution and wind-up effect
228
229
        * Time Difference of Arrival (TDOA)
        * Bi-static range and range rate
230
        * multiplexed
231
    * possibility to add custom measurements
232
    * loading of ILRS CRD laser ranging measurements file
233
    * loading and writing of CCSDS Tracking Data Messages (in both KVN and XML formats, standalone or in combined NDM)
234
    * several predefined modifiers
235
236
        * tropospheric effects
        * ionospheric effects
237
        * clock relativistic effects (including J2 correction)
238
239
240
241
242
        * station offsets
        * biases
        * delays
        * Antenna Phase Center
        * Shapiro relativistic effect
243
    * possibility to add custom measurement modifiers (even for predefined events)
244
245
246
247
248
    * combination of GNSS measurements
        * dual frequency combination of measurements
          (Geometry-free, Ionosphere-free, Narrow-lane, Wide-lane and Melbourne-Wübbena)
        * single frequency combination of measurements
          (Phase minus code and GRAPHIC)
249
    * possibility to parse CCSDS Tracking Data Message files
250
    * measurements generation
251
252
253
254
255
256
        * with measurements feasibility triggered by regular event detectors
          (ground visibility, ground at night, sunlit satellite, inter satellites
           direct view, boolean combination...)
        * with measurement scheduling as fixed step streams (optionally aligned with round UTC time)
        * with measurement scheduling as high rate bursts rest periods (optionally aligned with round UTC time)
        * possibility to customize measurement scheduling
257

258
259
260
261
  * GNSS

    * computation of Dilution Of Precision
    * loading of ANTEX antenna models file
262
    * loading of RINEX observation files (version 2 and version 3)
263
    * loading of RINEX navigation files (version 3)
264
    * support for Hatanaka compact RINEX format
265
    * loading of SINEX file (can load station positions, eccentricities and EOPs)
266
    * loading of RINEX clock files (version 2 and version 3)
267
    * parsing of IGS SSR messages for all constellations (version 1)
268
    * parsing of RTCM messages
269
    * Hatch filters for GNSS measurements smoothing
270
    * implementation of Ntrip protocol
271

272
  * Orbit file handling
273
  
274
    * loading of SP3 orbit files (from version a to d)
275
    * loading and writing of CCSDS Orbit Data Messages (OPM, OEM, OMM and OCM types are supported, in both KVN and XML formats, standalone or in combined NDM)
276
    * loading of SEM and YUMA files for GPS constellation
277
    * exporting of ephemeris in CCSDS OEM file format
278
    * loading of ILRS CPF orbit files
279

280
  * Earth models
281
  
282
    * atmospheric models (DTM2000, Jacchia-Bowman 2008, NRL MSISE 2000, Harris-Priester and simple exponential models), and Marshall solar Activity Future Estimation, optionally with lift component
283
    * support for CSSI space weather data
284
    * support for SOLFSMY and DTC data for JB2008 atmospheric model
285
286
    * tropospheric delay (modified Saastamoinen, estimated, fixed)
    * tropospheric mapping functions (Vienna 1, Vienna 3, Global, Niell)
287
    * tropospheric refraction correction angle (Recommendation ITU-R P.834-7 and Saemundssen's formula quoted by Meeus)
288
    * tropospheric model for laser ranging (Marini-Murray, Mendes-Pavlis)
289
    * Klobuchar ionospheric model (including parsing α and β coefficients from University of Bern Astronomical Institute files)
290
    * Global Ionospheric Map (GIM) model
291
    * NeQuick ionospheric model
292
    * VTEC estimated ionospheric model with Single Layer Model (SLM) ionospheric mapping function
293
    * Global Pression and Temperature models (GPT and GPT2)
294
    * geomagnetic field (WMM, IGRF)
295
    * geoid model from any gravity field
296
    * displacement of ground points due to tides
297
298
    * tessellation of zones of interest as tiles
    * sampling of zones of interest as grids of points
299
300
301
302

  * Collisions

    * loading and writing of CCSDS Conjunction Data Messages (CDM in both KVN and XML formats)
303
    
304
  * Customizable data loading
305

306
307
    * loading by exploring folders hierarchy on local disk
    * loading from explicit lists of files on local disk
308
309
310
    * loading from classpath
    * loading from network (even through internet proxies)
    * support for zip archives
311
312
    * automatic decompression of gzip compressed (.gz) files upon loading
    * automatic decompression of Unix compressed (.Z) files upon loading
313
    * automatic decompression of Hatanaka compressed files upon loading
314
    * plugin mechanism to add filtering like custom decompression algorithms, deciphering or monitoring
315
    * plugin mechanism to delegate loading to user defined database or data access library
316
    * possibility to have different data context (a way to separate sets of EOP, leap seconds, etc)
317

318
  * Localized in several languages
Luc Maisonobe's avatar
Luc Maisonobe committed
319

Luc Maisonobe's avatar
Luc Maisonobe committed
320
    * Danish
321
322
323
324
    * English
    * French
    * Galician
    * German
325
    * Greek
326
    * Italian
327
    * Norwegian
328
    * Romanian
329
    * Spanish
330

331
  * The top level packages provided by Orekit are the following one:
332

333
![Orekit top packages](./images/design/top-packages.png)
334

335
## Free software
Luc Maisonobe's avatar
Luc Maisonobe committed
336

337
338
Orekit is freely available both in source and binary formats, with all related
documentation and tests.
Luc Maisonobe's avatar
Luc Maisonobe committed
339

340
It is distributed under the [Apache License Version 2.0](./licenses.html). This
341
342
is a well known business-friendly license. This means anybody can use it to build
any application, free or not. There are no strings attached to your own code.
Luc Maisonobe's avatar
Luc Maisonobe committed
343

344
345
Everybody is encouraged to use Orekit as a common low level layer to improve
interoperability in space systems.
Luc Maisonobe's avatar
Luc Maisonobe committed
346

347
## Maintained library
Luc Maisonobe's avatar
Luc Maisonobe committed
348

349
Orekit has been in development since 2002 inside [CS GROUP](https://www.csgroup.eu/)
350
and is still used and maintained by its
351
352
353
354
355
356
experts and an open community. It is ruled by a meritocratic governance
model and the Project Management Committee involves actors from
industry (CS, Thales Alenia Space, Applied Defense Solutions), research
(Naval Research Laboratory), agencies (European Space Operations Centre,
European Space Research and Technology Centre) and academics (University
at Buffalo, Institut National Supérieur de l'Aéronautique et de l'Espace - Sup'Aéro).
357

358
359
360
361
Orekit has already been successfully used during the real time monitoring of the rendez-vous
phase between the Automated Transfer Vehicle (ATV) and the International Space Station (ISS)
by the Centre National d'Études Spatiales (CNES, the French space agency) and European Space
Agency (ESA).
Luc Maisonobe's avatar
Luc Maisonobe committed
362

363
364
365
Orekit has been selected in early 2011 by CNES to be the basis of its next generation space
flight dynamics systems, including operational systems, study systems and mission analysis
systems.
Luc Maisonobe's avatar
Luc Maisonobe committed
366

367
It has been used in numerous studies and for operational systems among the world.