Skip to content
Snippets Groups Projects
Commit 5be4162a authored by Luc Maisonobe's avatar Luc Maisonobe
Browse files

Use more consistent markdown syntax in documentation.

parent eb09b271
No related branches found
No related tags found
No related merge requests found
Showing
with 91 additions and 178 deletions
......@@ -12,13 +12,11 @@
limitations under the License.
-->
Attitudes
=========
# Attitudes
The `org.orekit.attitudes` package provides classes to represent simple attitudes.
Attitudes Presentation
----------------------
## Attitudes Presentation
Some force models, such as the atmospheric drag for maneuvers, need to
know the spacecraft orientation in an inertial frame. Orekit uses a simple
......@@ -37,8 +35,7 @@ under an abstract class called "GroundPointing".
Finally, there exist attitude laws that wrap a "base" attitude law, and add to this
base attitude law a complementary rotation in order to fulfill specific mission constraints.
Description of attitudes providers
----------------------------------
## Description of attitudes providers
### Basic attitude laws
......
......@@ -12,14 +12,12 @@
limitations under the License.
-->
Bodies
======
# Bodies
The `org.orekit.bodies` package provides an interface to representation of the
position and geometry of space objects such as stars, planets or asteroids.
Position
--------
## Position
The position of celestial bodies is represented by the `CelestialBody` interface.
This interface provides the methods needed to either consider the body as an
......@@ -59,8 +57,7 @@ no effect at all on computations. The solar system bodies frames tree is shown b
![solar system frames](../images/solar-system-frames.png)
Shape
-----
## Shape
The shape of celestial bodies is represented by the `BodyShape` interface.
......
......@@ -12,8 +12,7 @@
limitations under the License.
-->
Errors
======
# Errors
The `org.orekit.errors` package provides classes to generate and handle errors, based on
the classical mechanism of exceptions.
......
......@@ -12,14 +12,12 @@
limitations under the License.
-->
Forces
======
# Forces
The `org.orekit.forces` package provides the interface for the force models to be used by a
`NumericalPropagator`.
Forces presentation
-------------------
## Forces presentation
Objects implementing the force model interface are intended to be added to a
numerical propagator before the propagation is started.
......@@ -40,8 +38,7 @@ is called once just before propagation starts. The events states will be checked
the propagator to ensure accurate propagation and proper events handling.
Available force models
----------------------
## Available force models
The force models implemented are as follows:
......@@ -84,8 +81,7 @@ The force models implemented are as follows:
are implemented, with the possibility to define an impulse maneuver, thanks
to the event detector mechanism.
Spacecraft shapes
-----------------
## Spacecraft shapes
Surface forces like atmospheric drag or radiation pressure can use either
a simple `SphericalSpacecraft` shape or a more accurate
......
......@@ -12,14 +12,12 @@
limitations under the License.
-->
Frames
======
# Frames
The `org.orekit.frames` package provides classes to handle frames and
transforms between them.
Frames Presentation
-------------------
## Frames Presentation
### Frames tree
......@@ -72,8 +70,7 @@ with or without first derivatives (i.e. angular and linear velocities compositio
Transformations can be interpolated using Hermite interpolation, i.e. taking derivatives
into account if desired.
Predefined Frames
-----------------
## Predefined Frames
The `FramesFactory` class provides several predefined reference frames.
......@@ -230,8 +227,7 @@ meters, a rather crude accuracy for many space systems.
The same kind of optimization used for the IAU-2006 precession and IAU-2000A nutation model are
also applied for the older IAU-1980 precession-nutation model, despite it is much simpler.
Solar system frames
-------------------
## Solar system frames
All celestial bodies are linked to their own body-centered inertial frame, just
as the Earth is linked to EME2000 and GCRF. Since Orekit provides implementations
......@@ -246,8 +242,7 @@ system barycenter, as its associated frame is the ICRF.
![solar system frames](../images/solar-system-frames.png)
Topocentric Frame
-----------------
## Topocentric Frame
This frame model allows defining the frame associated with any position at
the surface of a body shape, which itself is referenced to a frame, typically
......@@ -265,8 +260,7 @@ canonical axes:
In such a frame, the user can retrieve azimuth angle, elevation angle,
range and range rate of any point given in any frame, at given date.
Local Orbital Frame
-------------------
## Local Orbital Frame
Local orbital frames are bound to an orbiting spacecraft. They move with
the spacecraft so they are time-dependent. Two local orbital frames are provided:
......@@ -278,8 +272,7 @@ the central body). The (q, s, w) frame has its X axis along position (radial), i
along orbital momentum and its Y axis completes the right-handed trihedra (it is roughly
along velocity).
User-defined frames
-------------------
## User-defined frames
The frames tree can be extended by users who can add as many frames as they
want for specific needs. This is done by adding frames one at a time, attaching
......@@ -310,7 +303,6 @@ whole tree. We also want to take into account the offset between the GPS receive
satellite center of mass. When a new GPS measurement is available, we want to update the complete
left subtree. This is done by using the dedicated `UpdatableFrame` which will do all the conversions.
Package organization
--------------------
## Package organization
![frames class diagram](../images/design/frames-class-diagram.png)
......@@ -12,8 +12,7 @@
limitations under the License.
-->
Orbits
======
# Orbits
The `org.orekit.orbits` package provides classes to represent orbits.
......@@ -23,8 +22,7 @@ corresponding to the different possible representations of orbital parameters.
Since version 3.0, keplerian, circular, equinoctial and cartesian representations
are supported.
Design History
--------------
## Design History
Early designs for the orbit package were much more complex than the current design.
Looking back at these designs, they tried to do far too much in a single class and
......@@ -49,8 +47,7 @@ it, we have followed Antoine de Saint Exupéry's saying:
The current design is not perfect, of course, but it is easy to understand, easy to use,
easy to maintain and reusable.
Current state versus evolving state
-----------------------------------
## Current state versus evolving state
From the early design, the various orbit classes retained only the kinematical
notions at a single time. They basically represent the current state, and
......@@ -94,8 +91,7 @@ For orbit evolution computation, this package is not sufficient. There is a
need to include notions of dynamics, forces models, propagation algorithms ...
The entry point for this is the Propagator interface.
Existing orbit representations
------------------------------
## Existing orbit representations
Available orbit representations are :
......@@ -137,8 +133,7 @@ because TLE are in fact a merge between orbital state and a propagation model. T
is _only_ meaningful with respect to the associated SGP4/SDP4 propagation model, and cannot
be used in any other model.
Representations Conversions
---------------------------
## Representations Conversions
All representations can be converted into all other ones. No error is triggered
if some conversion is ambiguous (like converting a perfectly circular orbit from
......@@ -177,7 +172,6 @@ terms of circular orbit only. So there is an implicit conversion done at propaga
initialization or reset state time, using internally a code similar to the example
above.
Package organization
--------------------
## Package organization
![orbits class diagram](../images/design/orbits-class-diagram.png)
......@@ -12,13 +12,11 @@
limitations under the License.
-->
Propagation
===========
# Propagation
This package provides tools to propagate orbital states with different methods.
Overview
--------
## Overview
Propagation is the prediction of the evolution of a system from an initial state.
In Orekit, this initial state is represented by a `SpacecraftState`, which is a
......@@ -32,8 +30,7 @@ the `PVCoordinatesProvider` interface) and several implementations.
![propagation class diagram](../images/design/propagation-class-diagram.png)
Propagation modes
-----------------
## Propagation modes
Depending on the needs of the calling application, all propagators can be used in
different modes:
......@@ -88,8 +85,7 @@ phase using the generated ephemeris.
![ephemeris generation mode class diagram](../images/design/ephemeris-generation-mode-sequence-diagram.png)
Events management
-----------------
## Events management
All propagators, including analytical ones, support discrete events handling during
propagation. This feature is activated by registering events detectors as defined by
......@@ -171,8 +167,7 @@ an accurate search for events that will ultimately be ignored.
Event occurring can be automatically logged using the `EventsLogger` class.
Additional states
-----------------
## Additional states
All propagators can be used to propagate user additional states on top of regular
orbit attitude and mass state. These additional states will be available throughout
......@@ -196,16 +191,14 @@ The first two cases correspond to additional states managed by the propagator, t
last case not being considered as managed. The list of states managed by the propagator
is available using the `getManagedAdditionalStates` and `isAdditionalStateManaged`.
Available propagators
---------------------
## Available propagators
The following class diagram shows the available propagators
![available propagators class diagram](../images/design/available-propagators-class-diagram.png)
Analytical propagation
----------------------
## Analytical propagation
### Keplerian propagation
......@@ -254,8 +247,7 @@ into account. The additive maneuvers can take both the direct effect (Keplerian
and the induced effect due for example to J2 which changes ascending node rate when
a maneuver changed inclination or semi-major axis of a Sun-Synchronous satellite.
Numerical propagation
---------------------
## Numerical propagation
Numerical propagation is one of the most important parts of the Orekit project.
Based on Apache Commons Math ordinary differential equations integrators, the
......@@ -344,8 +336,7 @@ radiation pressure implement this interface by themselves. Some more complex for
implement the interface and will be automatically wrapped inside a Jacobianizer class which will
use finite differences to compute the local Jacobians.
Semianalytical propagation
--------------------------
## Semianalytical propagation
Semianalytical propagation is an intermediate between analytical and numerical propagation.
It retains the best of both worlds, speed from analytical models and accuracy from numerical models.
......
......@@ -12,13 +12,11 @@
limitations under the License.
-->
Tessellation
===========
# Tessellation
This package provides tools to discretize geographical zones defined over an ellipsoid.
Overview
--------
## Overview
Earth observation missions often need to evaluate some properties globally over
a geographic zone.
......@@ -34,8 +32,7 @@ compute the Dilution Of Precision for a navigation application on each grid poin
![tessellation example](../images/tessellation-example.png)
Zone Of Interest Definition
---------------------------
## Zone Of Interest Definition
The definition of the zone of interest is done using Apache Commons Math
`SphericalPolygonsSet` class, which can handle arbitrarily complex area.
......@@ -77,8 +74,7 @@ More complex zones can be built from simple ones using the set operations
available in Apache Commons Math `RegionFactory` class (union, intersection,
differences, symmetric difference, complement).
Tile aiming
-----------
## Tile aiming
Depending on the needs of the calling application, different main directions can
be used for tile aiming. Two classical orientations are predefined:
......@@ -93,8 +89,7 @@ be used for tile aiming. Two classical orientations are predefined:
Users can provide their own implementation of the `TileAiming` interface in addition to
the two predefined directions.
Tessellation and Sampling
-------------------------
## Tessellation and Sampling
There are two main operations that can be performed on zones of interest:
tessellation and sampling.
......@@ -119,8 +114,7 @@ tiles having all the same dimensions (which will be roughly balanced around the
interest) or to tessellate more tightly, with the first column (resp. row) placed wery
close to the zone boundary and the last column (resp. row) reduced in width (resp. length).
Class diagram
-------------
## Class diagram
The following class diagram shows the overall design of the package.
......
......@@ -12,14 +12,12 @@
limitations under the License.
-->
Time
=====
# Time
The `org.orekit.time` package is an independent package providing classes to handle epochs and
time scales, and to compare instants.
Time Presentation
-----------------
## Time Presentation
The principal class is `AbsoluteDate` which represents a unique instant in time,
so as to be able to locate it with respect to the many different times scales in
......@@ -32,8 +30,7 @@ calling Orekit from a high level application should not have to deal with it. Th
class allows users to pass a date regardless of the time scale it was defined in,
conversions will be done as required transparently.
Time Scales
-----------
## Time Scales
Dates are commonly defined by specifying a point in a specific _time scale_.
For example, the J2000.0 epoch is defined from its calendar components as
......@@ -106,8 +103,7 @@ The following figure shows the offset history up to 2010.
![plot showing offset between UTC and TAI over the last half century](../images/utc-tai.png)
Date Definition
---------------
## Date Definition
There are three main ways to define a date:
......@@ -154,8 +150,7 @@ The two variables `date1` and `date2` represent the same instant. The first one
defined relative to a time scale, the second one has been defined independently of any time
scale.
Reference Epochs
----------------
## Reference Epochs
Orekit defines 10 reference epochs. The first 7 are commonly used in the space
community, the seventh one is commonly used in the computer science field and the
......@@ -172,8 +167,7 @@ last two are convenient for initialization in min/max research loops:
* _Past infinity Epoch_: at infinity in the past
* _Future Epoch_: at infinity in the future
Time Use
--------
## Time Use
Once it is constructed, an `AbsoluteDate` can be compared to others, and converted to
and expressed in other time scales. It is used to define states, orbits, frames ...
......@@ -215,8 +209,7 @@ or `subSet`.
}
Time shift
----------
## Time shift
Lots of space flight dynamics objects are date related (dates themselves, of course,
but also attitudes, orbits, position-velocity coordinates or spacecraft states). In some
......@@ -230,7 +223,6 @@ a new instance shifted in time without changing the original object.
This feature should not be used for large shifts where complex propagation models are
needed.
Package organization
--------------------
## Package organization
![time class diagram](../images/design/time-class-diagram.png)
......@@ -12,14 +12,12 @@
limitations under the License.
-->
TLE
===
# TLE
The `org.orekit.propagation.analytical.tle` package provides classes to read, and
extrapolate from, orbital elements in Two-Line Elements (TLE) format.
TLE Presentation
----------------
## TLE Presentation
TLE orbits are supplied in two-line element format, then converted
into an internal format for easier retrieval and future extrapolation.
......@@ -33,8 +31,7 @@ The implemented TLE model conforms to new 2006 corrected model.
More information on the TLE format can be found on the
[CelesTrak](http://www.celestrak.com/) website.
Evolution
---------
## Evolution
The TLE orbit representation is de-correlated from other orbit representations
provided by `Orbits` package. It is due to the fact that TLE representation depends on
......
......@@ -12,13 +12,11 @@
limitations under the License.
-->
Utils
=====
# Utils
The `org.orekit.utils` package provides methods for managing mathematical or geometrical objects.
Utils Presentation
------------------
## Utils Presentation
The `PVCoordinates` class is a mere container for a position and a velocity vector.
The `TimeStampedPVCoordinates` class is a simple extension adding a.
......@@ -47,7 +45,6 @@ nutation model to use when creating a Mean Of Date frame, simply by providing ei
IERS_1996, IERS_2003 or IERS_2010 as the conventions parameters to the FrameFactory
`getMOD` factory method.
Package organization
--------------------
## Package organization
![utils class diagram](../images/design/utils-class-diagram.png)
......@@ -12,8 +12,7 @@
limitations under the License.
-->
Building Orekit
===============
# Building Orekit
Orekit can be built from source using several different tools.
......@@ -21,8 +20,7 @@ All these tools are Java based and can run on many different operating
systems, including Unix, GNU/Linux, Windows and Mac OS X. Some GNU/Linux
distributions provide these tools in their packages repositories.
Building with Maven 3
---------------------
## Building with Maven 3
[Maven](http://maven.apache.org/) is a build tool that goes far beyond
simply compiling and packaging a product. It is also able to resolve
......@@ -87,8 +85,7 @@ For other commands like generating the site, or generating the
[jacoco](http://www.eclemma.org/jacoco/) reports, see the maven
plugins documentation at [maven site](http://maven.apache.org/plugins/index.html).
Building with Eclipse
---------------------
## Building with Eclipse
[Eclipse](http://www.eclipse.org/) is a very rich Integrated Development
Environment (IDE). It is a huge product and not a simple build tool.
......
......@@ -12,8 +12,7 @@
limitations under the License.
-->
Configuration
=============
# Configuration
The Orekit library relies on some external data for physical models. Typical
data are the Earth Orientation Parameters and the leap seconds history, both being
......@@ -24,8 +23,7 @@ provided.
Orekit must be configured appropriately to find and use such data.
Data sets
---------
## Data sets
For user convenience, data that is only a few tens of kilobytes and can be assumed to
never change like precession-nutation models are already embedded in the core library.
......@@ -45,8 +43,7 @@ publishes new Earth Orientation Parameter files covering new time ranges whereas
ephemerides represent megabytes-sized files. These data sets must be provided by users and
Orekit must be configured to find and read them at run time.
Data formats
------------
## Data formats
In order to simplify data updates for users and to avoid transformations errors, Orekit
uses each supported data set in the native format in which it is publicly available. So
......@@ -60,8 +57,7 @@ If a data set format changes or a new data set should be supported, a modificati
reading classes inside Orekit would be needed. This design choice has been selected because
format changes remain rare (except IERS EOP data perhaps ...).
Data storage
------------
## Data storage
Data sets must be stored at locations where the Orekit library will find them. This may
be simply a directories tree on a disk, but may be almost anything else as this simple
......@@ -115,8 +111,7 @@ in the library itself.
is not trusted). The sandbox prevents access to the user disk. Data must be embedded
within the application jar file, in the internal classpath.
Data handling in Orekit
-----------------------
## Data handling in Orekit
The following diagram shows data handling in Orekit.
......@@ -145,8 +140,7 @@ depending on the use case and perhaps configuration data (environment variables,
properties, users preferences ...). If the manager is not configured, a default configuration
is set up.
Default configuration
---------------------
## Default configuration
The default configuration is based on a single Java property named `orekit.data.path`.
This property should be set to a list of directories trees or zip/jar archives containing the
......@@ -207,8 +201,7 @@ class can be used. If the property is set up by the application, it must be done
feature is called, since some data are initialized very early (mainly frame and time related data
like leap seconds for UTC).
Setting up a customized configuration
-------------------------------------
## Setting up a customized configuration
If the default configuration doesn't suit users needs, a custom configuration must be set up.
This happens for example if data must be embedded within the application and loaded from
......@@ -233,8 +226,7 @@ defined implementations are providers fetching data from a relational database o
providers fetching data using an external library. This corresponds to the plugin feature
announced above.
Quick setup using default data
------------------------------
## Quick setup using default data
For convenience, a zip file containing some default data is available for
download on orekit forge:
......@@ -254,8 +246,7 @@ parameters from 1973 to end 2012 with predicted date to mid-2013 (both IAU-1980
and IAU-2000), UTC-TAI history from 1972 to end of 2013, Marshall Solar Activity Future
Estimation from 1999 to 2013 and the Eigen 06S gravity field.
Supported data types
--------------------
## Supported data types
The data types supported by Orekit are described in the following table, where the `#`
character represents any digit, `(m/p)` represents either the m character or the p
......
......@@ -12,11 +12,9 @@
limitations under the License.
-->
Contacts
========
# Contacts
Mailing lists
-------------
## Mailing lists
Most discussions should occur on the public mailing lists.
......@@ -30,16 +28,14 @@ Please register to these mailing lists before attempting to post!
We're preventing unregistered members from posting in order to prevent spam. Thank you.
Technical contact
-----------------
## Technical contact
If for some reason you cannot use the public lists, you can reach the CS
Systèmes d'Information Orekit team for any question (either technically
oriented or administrative) at the following email address:
[orekit@c-s.fr](mailto:orekit@c-s.fr)
Administrative contact
----------------------
## Administrative contact
If you want to discuss with the space division staff at CS Systèmes d'Information,
please use the following address:
......
......@@ -12,8 +12,7 @@
limitations under the License.
-->
Contributing to Orekit
======================
# Contributing to Orekit
Orekit is free software, which means you can use the source code as you wish,
without charges, in your applications, and that you can improve it and have
......
......@@ -12,11 +12,9 @@
limitations under the License.
-->
Downloads
=========
# Downloads
Development Library version
---------------------------
## Development Library version
The development version of the Orekit library is always available to
download from our version control system. We use [ Git](http://git-scm.com/)
......@@ -31,8 +29,7 @@ development environment:
git clone https://www.orekit.org/git/orekit-main.git
Released Library versions
-------------------------
## Released Library versions
Orekit is provided both in several packaging systems. You can pick up
the one that better suits your needs. Source packages are the most complete
......@@ -107,8 +104,7 @@ version 4.0 downloads (release date: 2008-10-13)
| javadoc | [orekit-3.1-doc.jar](https://www.orekit.org/forge/attachments/download/4/orekit-3.1-doc.jar) |
version 3.1 downloads (release date: 2008-07-16)
Data
----
## Data
For convenience, a zip archive containing some configuration data is
available for download. Putting this zip archive in your disk and putting its
......
......@@ -12,8 +12,9 @@
limitations under the License.
-->
References
----------
# Frequently Asked Questions (FAQ)
## References
### Has Orekit already been used?
......@@ -92,8 +93,7 @@ As thread-safety was an important need for many people, this problem has been ad
starting with version 6.0 many Orekit classes are thread-safe. Note however that some parts
for which sequential access is natural (like numerical propagators) are <em>not</em> thread-safe.
Installation
------------
## Installation
### What are Orekit dependencies?
......@@ -154,8 +154,7 @@ the IERS publish them.
Concerning UTC leap seconds, as of end 2013, the last one was introduced at the end of June 2012.
Runtime errors
--------------
## Runtime errors
### I get an error "no IERS UTC-TAI history data loaded" (or something similar in another language). What does it mean?
......
......@@ -12,13 +12,11 @@
limitations under the License.
-->
Development Guidelines
======================
# Development Guidelines
The following guidelines are used for Orekit development.
Development
-----------
## Development
Orekit is a low level library. It may be used in very different
contexts which cannot be foreseen, from quick studies up to critical
......@@ -84,8 +82,7 @@ difficult to catch bugs are caused by mutable objects that are changed in some d
buried code and have an impact on user code that forgot to perform a defensive copy.
Orbits, dates, vectors, and rotations are all immutable objects.
Style Rules
-----------
## Style Rules
For reading ease and consistency, the existing code style should be
preserved for all new developments. The rules are common ones, inherited
......@@ -153,8 +150,7 @@ root directory.
_star_ imports are forbidden, parameters and local variables are final
wherever possible.
Design Rules
------------
## Design Rules
* *coverage* (validation)
......
......@@ -12,8 +12,7 @@
limitations under the License.
-->
Overview
========
# Overview
OREKIT (ORbits Extrapolation KIT) is a free low-level space dynamics library
written in Java.
......@@ -22,8 +21,7 @@ Overview
various algorithms to handle them (conversions, analytical and numerical
propagation, pointing ...).
Features
--------
## Features
* Time
......@@ -180,8 +178,7 @@ Features
![Orekit top packages](./images/design/top-packages.png)
Free software
-------------
## Free software
Orekit is freely available both in source and binary formats, with all related
documentation and tests.
......@@ -193,8 +190,7 @@ any application, free or not. There are no strings attached to your own code.
Everybody is encouraged to use Orekit as a common low level layer to improve
interoperability in space systems.
Maintained library
------------------
## Maintained library
Orekit has been in development since 2002 inside [CS Systèmes
d'Information](http://www.c-s.fr/) and is still used and maintained by its space dynamics experts.
......
......@@ -12,11 +12,9 @@
limitations under the License.
-->
Getting the sources
===================
# Getting the sources
Released versions
-----------------
## Released versions
In order to get the source for officially released versions, go to the
[Files](https://www.orekit.org/forge/projects/orekit/files) tab in Orekit
......@@ -27,8 +25,7 @@ forge and select one of the orekit-x.y-src.zip files. The x.y part in the name
orekit-data.zip file which is an example file suitable for a quick start (see
[configuration](./configuration.html) for further reading about data configuration).
Development version
-------------------
## Development version
The development of the Orekit project is done using the [Git](http://git-scm.com/)
source code control system. Orekit Git master repository is available online.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment