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

Updated top level pages with a redmine compatible mardown syntax.

parent fa9dbbbd
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2002-2014 CS Systèmes d'Information
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.
-->
<faqs title="Frequently Asked Questions" toplink="false">
<part id="references">
<title>References</title>
<faq id="projects">
<question>
Has Orekit already been used?
</question>
<answer>
<p>
Yes, it has been used in successful operational missions.
</p>
<p>The first operational use of Orekit was for the Automated Transfer
Vehicle (ATV) mission to the International Space station (ISS). Orekit
was used operationally during the real-time monitoring of the rendezvous
phase up to the docking. It continuously recomputed the relative geometry
of the two spacecraft using different sensors output to check its
consistency.
</p>
<p>Orekit has also been selected by CNES for its next-generation flight
dynamics systems (project Sirius) in early 2011, including operational
systems, study systems and mission analysis systems .
</p>
</answer>
</faq>
<faq id="validation">
<question>
Is Orekit validated?
</question>
<answer>
<p>
Some parts are strongly validated, others are validated to a lesser extent.
</p>
<p>
The frames package is one of the best validated ones. The overall mechanism
(transforms, navigation between frames, kinematics ...) has really been challenged
a lot, both in theoretical tests and during real life operations. This part was
extensively used for Automated Transfer Vehicle (ATV) rendezvous with International
Space Station (ISS). It was part of an operational ground program performing real-time
monitoring of the rendezvous and docking phase. This part has been checked to
below millimeter-level precision for relative configuration. The reference frames part (ITRF
and the like) has been validated using public data down to meter-level precision for
version 3.1, and to centimeter-level precision for the version 4.0.
</p>
<p>
A new round of validation was done after Orekit 3.1 was published. Two
defects were identified and fixed: the J2000 frame was misaligned with real J2000
by a constant rotation bias of about 18 milliarcsceonds (it was really GCRF, not J2000)
and the ITRF2000B implementation was wrong by a time-dependent rotation leading to about
0.6 meters error for orbits with a semi-minor axis of about 10000km. These errors have
been fixed as of version 4.0. Our tests show the new frames are compliant with reference
cases to about 10mm for LEO and 60mm for GEO.
</p>
<p>
The TLE package is also quite well validated; it has been checked against some reference
data published by Vallado along with his revision of the original spacetrack report, where
he fixed some errors in the original Fortran implementation from NORAD.
</p>
<p>
The atmosphere models have also been validated the same way, using published data.
</p>
<p>
The time package has been validated by its unit tests only, but since the behavior is
simpler it can be checked by hand. The unit tests include a lot of borderline cases
(for example behavior during the introduction of a leap second).
</p>
<p>
The Sun and Moon classes for version 3.1 are very low precision and are defined in a
pseudo-inertial frame with loose definition. They can be compared only with very specific
software. Their accuracy is probably limited to about 10 arcseconds. They have been replaced
by accurate reference models in the version 4.0.
</p>
<p>
Numerical propagation has been validated by CNES independently of the Orekit team against
some very high accuracy propagators (Zoom). They told us the results were good (down to
centimeter level for simple force models), but we don't have a thorough breakdown of errors
for various orbits and force models.
</p>
<p>
Validation is a continuous task for us, we are always working on improving it. We would be
happy to also have other teams perform independent validation runs. We have already received
some feedback and new test cases after the first version was published.
</p>
</answer>
<question>
Is Orekit thread-safe?
</question>
<answer>
<p>
Versions up to 5.X are <em>not</em> thread-safe. Note that simply wrapping Orekit calls
in synchronized blocks is not a solution as it completely breaks all data caching features,
so performances are reduced by a large factor.
</p>
<p>
As thread-safety was an important need for many people, this problem has been addressed and
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.
</p>
</answer>
</faq>
</part>
<part id="installation">
<title>Installation</title>
<faq id="commons-math-unavailable">
<question>
When I try to compile orekit, maven cannot find commons-math 2.0-SNAPSHOT, where is it?
</question>
<answer>
<p>
Up to version 4.0, Orekit depended on features of Apache Commons Math which were not released
as of mid 2008, so the dependency was set to 2.0-SNAPSHOT development version.
This development version was available from Apache subversion repository. Starting
with version 4.1, Orekit depends only on officialy released versions of Apache Commons Math
</p>
<p>
Orekit 4.1 depends on version 2.0 of Apache Commons Math.
Orekit 5.0 depends on version 2.1 of Apache Commons Math.
Orekit 5.0.3 depends on version 2.2 of Apache Commons Math.
Orekit 6.0 depends on version 3.2 of Apache Commons Math.
Orekit 6.1 depends on version 3.2 of Apache Commons Math.
</p>
</answer>
</faq>
<faq id="orekit-data-zip-not-up-to-date">
<question>
The orekit-data.zip file you provide is not up to date. Can you update it?
</question>
<answer>
<p>
There is no regular update for this file. Data are provided only as an example, to allow quick
start for new users. For long-term use, data handling remains their own responsibility. The
configuration page points out the data sources that can be taken into account by Orekit, so you
can go visit that link to look for what you need.
</p>
<p>
Some difficulties may yet occur for very recent data. Indeed, the IERS once again changed its
file formats and stopped publishing the B Bulletins (see Earth Orientation Data page). As an
example, the last IAU 2000 B Bulletin published is number 263. IERS also stopped publishing
data for the IERS convention 2003, they have switched to IERS conventions 2010. The annual data
(EOP 05 C08 file) are still published. We advise then that you update these files regularly as
the IERS publish them.
</p>
<p>
Concerning UTC leap seconds, as of end 2013, the last one was introduced at the end of June 2012.
</p>
</answer>
</faq>
</part>
<part id="runtime">
<title>Runtime errors</title>
<faq id="orekit-data-zip-not-up-to-date">
<question>
I get an error "no IERS UTC-TAI history data loaded" (or something similar in another language). What does it mean?
</question>
<answer>
<p>
This error is probably the most frequent one, or at least it's the first one new users encounter.
</p>
<p>
Orekit needs some external data to be loaded in order to run. This includes UTC-TAI history for leap
seconds handling, Earth Orientation Parameters for transforms to and from Earth fixed frames, or planetar
ephemerides for Sun direction, for example.
</p>
<p>
The error message "no IERS UTC-TAI history data loaded" means the UTC-TAI history file which is used for leap
seconds management was not found. As leap seconds are used each time a UTC date is used, this message is
often seen very early and is the first one unsuspecting users experience. It often means the user forgot
to configure Orekit to load data.
</p>
<p>
Configuring data loading is explained in the configuration page For a start, the simplest configuration
is to download the orekit-data.zip file from the download page and to either set the "orekit.data.path" Java
property to this file or to manually configure the DataProvidersManager to use it. This example archive file
contains the required UTC-TAI history file among others. Configuring Orekit to use this archive file can be done
by keeping the file as a zip archive and pointing to this archive, or by unzipping it and pointing to the unzipped folder.
</p>
<p>
Here is an example using the file in zip format:
</p>
<p>
DataProvidersManager.addProvider(new ZipJarCrawler(new File("/path/to/the/zip/file/orekit-data.zip")));
</p>
<p>
Here is an example using the folder resulting from expanding the archive:
</p>
<p>
DataProvidersManager.addProvider(new DirectoryCrawler(new File("/path/to/the/folder/orekit-data")));
</p>
<p>
Using a folder allows one to change the data in it, e.g., adding new EOP files as they are published by IERS.
</p>
</answer>
</faq>
</part>
</faqs>
......@@ -273,8 +273,8 @@ used up to 2009 and the new format used since 2010 are supported. The supported
for `finals2000A` files for IAU-2006/2000A and the finals files for IAU-1980 are both
the XML format and the columns format.
|------------------------------------------|--------------------|------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
| default naming pattern | format | data type | source |
|------------------------------------------|--------------------|------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
| UTC-TAI.history[.gz] | IERS history | leap seconds introduction history | [http://hpiers.obspm.fr/eoppc/bul/bulc/UTC-TAI.history](http://hpiers.obspm.fr/eoppc/bul/bulc/UTC-TAI.history) |
| bulletinb.\#\#\#[.gz] | IERS Bulletin B | monthly Earth Orientation Parameters model IAU 2006/2000A | [ftp://ftp.iers.org/products/eop/bulletinb/format_2009/](ftp://ftp.iers.org/products/eop/bulletinb/format_2009/) |
| eopc04\_08\_IAU2000.\#\#[.gz] | IERS EOP 08 C04 | yearly Earth Orientation Parameters model IAU 2006/2000A | [ftp://ftp.iers.org/products/eop/long-term/c04\_08/iau2000/](ftp://ftp.iers.org/products/eop/long-term/c04_08/iau2000/) |
......
......@@ -20,8 +20,8 @@ Mailing lists
Most discussions should occur on the public mailing lists.
|---------------|------------------------------|--------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
| topic | post address | subscribe URL | archive URL |
|---------------|------------------------------|--------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
| announces | orekit-announces@orekit.org | [https://www.orekit.org/wws/subscribe/orekit-announces](https://www.orekit.org/wws/subscribe/orekit-announces) | [https://www.orekit.org/wws/arc/orekit-announces](https://www.orekit.org/wws/arc/orekit-announces) |
| users | orekit-users@orekit.org | [https://www.orekit.org/wws/subscribe/orekit-users](https://www.orekit.org/wws/subscribe/orekit-users) | [https://www.orekit.org/wws/arc/orekit-users](https://www.orekit.org/wws/arc/orekit-users) |
| developers | orekit-developers@orekit.org | [https://www.orekit.org/wws/subscribe/orekit-developers](https://www.orekit.org/wws/subscribe/orekit-developers) | [https://www.orekit.org/wws/arc/orekit-developers](https://www.orekit.org/wws/arc/orekit-developers) |
......@@ -44,13 +44,12 @@ Administrative contact
If you want to discuss with the space division staff at CS Systèmes d'Information,
please use the following address:
|:-----------------------------------------------------------------------|
| CS Systèmes d'Information |
| BU E-space & Geoinformation |
| parc de la plaine - 5 rue Brindejonc des Moulinais |
| BP 15872 |
| 31506 Toulouse CEDEX 5 |
| FRANCE |
| |
| phone: +33 5-61-17-66-66 (ask for Luc Maisonobe or Nicolas Frouvelle) |
| fax: +33 5-61-34-84-15 |
CS Systèmes d'Information
BU E-space & Geoinformation
parc de la plaine - 5 rue Brindejonc des Moulinais
BP 15872
31506 Toulouse CEDEX 5
FRANCE
phone: +33 5-61-17-66-66 (ask for Luc Maisonobe or Nicolas Frouvelle)
fax: +33 5-61-34-84-15
......@@ -44,43 +44,43 @@ with groupID org.orekit and artifactId rugged-core, rugged-aster, ... so maven
internal mechanism will download automatically all artifacts and dependencies
as required.
|----------|-----------------------------------------------------------------------------------------------------------|
| package | link |
|----------|-----------------------------------------------------------------------------------------------------------|
| source | [orekit-6.1-sources.zip](https://www.orekit.org/forge/attachments/download/401/orekit-6.1-sources.zip) |
| binary | [orekit-6.1.jar](https://www.orekit.org/forge/attachments/download/402/orekit-6.1.jar) |
| javadoc | [orekit-6.1-javadoc.jar](https://www.orekit.org/forge/attachments/download/403/orekit-6.1-javadoc.jar) |
version 6.1 downloads (release date: 2013-12-13)
|----------|-----------------------------------------------------------------------------------------------------------|
| package | link |
|----------|-----------------------------------------------------------------------------------------------------------|
| source | [orekit-6.0-sources.zip](https://www.orekit.org/forge/attachments/download/356/orekit-6.0-sources.zip) |
| binary | [orekit-6.0.jar](https://www.orekit.org/forge/attachments/download/357/orekit-6.0.jar) |
| javadoc | [orekit-6.0-javadoc.jar](https://www.orekit.org/forge/attachments/download/358/orekit-6.0-javadoc.jar) |
version 6.0 downloads (release date: 2013-04-23)
|----------|-----------------------------------------------------------------------------------------------------------|
| package | link |
|----------|-----------------------------------------------------------------------------------------------------------|
| source | [orekit-5.0.3-sources.zip](https://www.orekit.org/forge/attachments/download/48/orekit-5.0.3-sources.zip) |
| binary | [orekit-5.0.3.jar](https://www.orekit.org/forge/attachments/download/44/orekit-5.0.3.jar) |
| javadoc | [orekit-5.0.3-javadoc.jar](https://www.orekit.org/forge/attachments/download/46/orekit-5.0.3-javadoc.jar) |
version 5.0.3 downloads (release date: 2011-07-13)
|----------|-----------------------------------------------------------------------------------------------------------|
| package | link |
|----------|-----------------------------------------------------------------------------------------------------------|
| source | [orekit-5.0.2-sources.zip](https://www.orekit.org/forge/attachments/download/42/orekit-5.0.2-sources.zip) |
| binary | [orekit-5.0.2.jar](https://www.orekit.org/forge/attachments/download/38/orekit-5.0.2.jar) |
| javadoc | [orekit-5.0.2-javadoc.jar](https://www.orekit.org/forge/attachments/download/40/orekit-5.0.2-javadoc.jar) |
version 5.0.2 downloads (release date: 2011-07-11)
|----------|-----------------------------------------------------------------------------------------------------------|
| package | link |
|----------|-----------------------------------------------------------------------------------------------------------|
| source | [orekit-5.0.1-sources.zip](https://www.orekit.org/forge/attachments/download/36/orekit-5.0.1-sources.zip) |
| binary | [orekit-5.0.1.jar](https://www.orekit.org/forge/attachments/download/34/orekit-5.0.1.jar) |
| javadoc | [orekit-5.0.1-javadoc.jar](https://www.orekit.org/forge/attachments/download/32/orekit-5.0.1-javadoc.jar) |
version 5.0.1 downloads (release date: 2011-04-18)
|----------|-----------------------------------------------------------------------------------------------------------|
| package | link |
|----------|-----------------------------------------------------------------------------------------------------------|
| source | [orekit-5.0-src.zip](https://www.orekit.org/forge/attachments/download/12/orekit-5.0-src.zip) |
| binary | [orekit-5.0.jar](https://www.orekit.org/forge/attachments/download/13/orekit-5.0.jar) |
| javadoc | [orekit-5.0-doc.jar](https://www.orekit.org/forge/attachments/download/11/orekit-5.0-doc.jar) |
......@@ -93,16 +93,15 @@ version 5.0 downloads (release date: 2010-05-06)
| javadoc | [orekit-4.1-doc.jar](https://www.orekit.org/forge/attachments/download/10/orekit-4.1-doc.jar) |
version 4.1 downloads (release date: 2009-08-18)
|----------|-----------------------------------------------------------------------------------------------------------|
| package | link |
|----------|-----------------------------------------------------------------------------------------------------------|
| source | [orekit-4.0-src.zip](https://www.orekit.org/forge/attachments/download/5/orekit-4.0-src.zip) |
| binary | [orekit-4.0.jar](https://www.orekit.org/forge/attachments/download/6/orekit-4.0.jar) |
| javadoc | [orekit-4.0-doc.jar](https://www.orekit.org/forge/attachments/download/7/orekit-4.0-doc.jar) |
|----------|--------------------------------------------------------|
version 4.0 downloads (release date: 2008-10-13)
|----------|-----------------------------------------------------------------------------------------------------------|
| package | link |
|----------|-----------------------------------------------------------------------------------------------------------|
| source | [orekit-3.1-src.zip](https://www.orekit.org/forge/attachments/download/2/orekit-3.1-src.zip) |
| binary | [orekit-3.1.jar](https://www.orekit.org/forge/attachments/download/3/orekit-3.1.jar) |
| javadoc | [orekit-3.1-doc.jar](https://www.orekit.org/forge/attachments/download/4/orekit-3.1-doc.jar) |
......
<!--- Copyright 2002-2014 CS Systèmes d'Information
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.
-->
References
----------
### Has Orekit already been used?
Yes, it has been used in successful operational missions.
The first operational use of Orekit was for the Automated Transfer
Vehicle (ATV) mission to the International Space station (ISS). Orekit
was used operationally during the real-time monitoring of the rendezvous
phase up to the docking. It continuously recomputed the relative geometry
of the two spacecraft using different sensors output to check its
consistency.
Orekit has been selected by CNES for its next-generation flight
dynamics systems (project Sirius) in early 2011, including operational
systems, study systems and mission analysis systems.
Orekit is used at Eumetsat for very long term mission analysis (up to
the full lifetime of a satellite) for both LEO and GEO missions.
As Orekit is open-source, we cannot know about all uses as people are
not require to notify us of anything.
### Is Orekit validated?
Some parts are strongly validated, others are validated to a lesser extent.
The frames package is one of the best validated ones. The overall mechanism
(transforms, navigation between frames, kinematics ...) has really been challenged
a lot, both in theoretical tests and during real life operations. This part was
extensively used for Automated Transfer Vehicle (ATV) rendezvous with International
Space Station (ISS). It was part of an operational ground program performing real-time
monitoring of the rendezvous and docking phase. This part has been checked to
below millimeter-level precision for relative configuration. The reference frames part (ITRF
and the like) has been validated using public data down to meter-level precision for
version 3.1, and to centimeter-level precision for the version 4.0.
A new round of validation was done after Orekit 3.1 was published. Two
defects were identified and fixed: the J2000 frame was misaligned with real J2000
by a constant rotation bias of about 18 milliarcsceonds (it was really GCRF, not J2000)
and the ITRF2000B implementation was wrong by a time-dependent rotation leading to about
0.6 meters error for orbits with a semi-minor axis of about 10000km. These errors have
been fixed as of version 4.0. Our tests show the new frames are compliant with reference
cases to about 10mm for LEO and 60mm for GEO.
The TLE package is also quite well validated; it has been checked against some reference
data published by Vallado along with his revision of the original spacetrack report, where
he fixed some errors in the original Fortran implementation from NORAD.
The atmosphere models have also been validated the same way, using published data.
The time package has been validated by its unit tests only, but since the behavior is
simpler it can be checked by hand. The unit tests include a lot of borderline cases
(for example behavior during the introduction of a leap second).
The Sun and Moon classes for version 3.1 are very low precision and are defined in a
pseudo-inertial frame with loose definition. They can be compared only with very specific
software. Their accuracy is probably limited to about 10 arcseconds. They have been replaced
by accurate reference models in the version 4.0.
Numerical propagation has been validated by CNES independently of the Orekit team against
some very high accuracy propagators (Zoom). They told us the results were good (down to
centimeter level for simple force models), but we don't have a thorough breakdown of errors
for various orbits and force models.
Validation is a continuous task for us, we are always working on improving it. We would be
happy to also have other teams perform independent validation runs. We have already received
some feedback and new test cases after the first version was published.
### Is Orekit thread-safe?
Versions up to 5.X are *not* thread-safe. Note that simply wrapping Orekit calls
in synchronized blocks is not a solution as it completely breaks all data caching features,
so performances are reduced by a large factor.
As thread-safety was an important need for many people, this problem has been addressed and
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
------------
### What are Orekit dependencies?
Up to version 4.0, Orekit depended on features of Apache Commons Math which were not released
as of mid 2008, so the dependency was set to 2.0-SNAPSHOT development version.
This development version was available from Apache subversion repository. Starting
with version 4.1, Orekit depends only on officially released versions of Apache Commons Math
version | dependency
---------------|---------------------------------------------
Orekit 4.1 | Apache Commons Math 2.0
Orekit 5.0 | Apache Commons Math 2.1
Orekit 5.0.3 | Apache Commons Math 2.2
Orekit 6.0 | Apache Commons Math 3.2
Orekit 6.1 | Apache Commons Math 2.2
### The orekit-data.zip file you provide is not up to date. Can you update it?
There is no regular update for this file. Data are provided only as an example, to allow quick
start for new users. For long-term use, data handling remains their own responsibility. The
configuration page points out the data sources that can be taken into account by Orekit, so you
can go visit that link to look for what you need.
Some difficulties may yet occur for very recent data. Indeed, the IERS once again changed its
file formats and stopped publishing the B Bulletins (see Earth Orientation Data page). As an
example, the last IAU 2000 B Bulletin published is number 263. IERS also stopped publishing
data for the IERS convention 2003, they have switched to IERS conventions 2010. The annual data
(EOP 05 C08 file) are still published. We advise then that you update these files regularly as
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
--------------
### I get an error "no IERS UTC-TAI history data loaded" (or something similar in another language). What does it mean?
This error is probably *the* most frequent one, or at least it's the first one new users encounter.
Orekit needs some external data to be loaded in order to run. This includes UTC-TAI history for leap
seconds handling, Earth Orientation Parameters for transforms to and from Earth fixed frames, or planetar
ephemerides for Sun direction, for example.
The error message "no IERS UTC-TAI history data loaded" means the UTC-TAI history file which is used for leap
seconds management was not found. As leap seconds are used each time a UTC date is used, this message is
often seen very early and is the first one unsuspecting users experience. It often means the user forgot
to configure Orekit to load data.
Configuring data loading is explained in the configuration page For a start, the simplest configuration
is to download the orekit-data.zip file from the download page and to either set the "orekit.data.path" Java
property to this file or to manually configure the DataProvidersManager to use it. This example archive file
contains the required UTC-TAI history file among others. Configuring Orekit to use this archive file can be done
by keeping the file as a zip archive and pointing to this archive, or by unzipping it and pointing to the unzipped folder.
Here is an example using the file in zip format:
DataProvidersManager.addProvider(new ZipJarCrawler(new File("/path/to/the/zip/file/orekit-data.zip")));
Here is an example using the folder resulting from expanding the archive:
DataProvidersManager.addProvider(new DirectoryCrawler(new File("/path/to/the/folder/orekit-data")));
Using a folder allows one to change the data in it, e.g., adding new EOP files as they are published by IERS.
......@@ -96,75 +96,93 @@ configuration. A few of these rules are displayed below. The complete
definition is given by the checkstyle configuration file in the project
root directory.
*header rule*
: all source files start with the Apache license header,
* *header rule*
all source files start with the Apache license header,
*indentation rules*
: no tabs, 4 spaces indentation, no indentation for case statements,
* *indentation rules*
no tabs, 4 spaces indentation, no indentation for case statements,
*operators wrapping rules*
: lines are wrapped after operators (unlike Sun),
* *operators wrapping rules*
lines are wrapped after operators (unlike Sun),
*whitespace rules*
: operators are surrounded by spaces, method parameters open parenthesis
* *whitespace rules*
operators are surrounded by spaces, method parameters open parenthesis
is not preceded by space, lines do not end with white space,
*curly brace rules*
: open curly brace are at end of line, with the matching closing curly brace
* *curly brace rules*
open curly brace are at end of line, with the matching closing curly brace
aligned with the start of the corresponding keyword (_if_, _for_,
_while_, _case_ or _do_),
*encoding rules*
: characters encoding is _UTF8_, the git property _core.autocrlf_ should be
* *encoding rules*
characters encoding is _UTF8_, the git property _core.autocrlf_ should be
set to _input_ on Linux development machines and to _true_ on Windows
development machines (to ensure proper conversion on all operating systems),
*naming rules*
: classes names begin with upper case, instance methods and fields
* *naming rules*
classes names begin with upper case, instance methods and fields
names begin with lower case, class fields are all upper case with
words separated by underscores,
*ordering rules*
: class variables come first, followed by instance variables, followed
* *ordering rules*
class variables come first, followed by instance variables, followed
by constructors, and followed by methods, public modifiers come first,
followed by protected modifiers followed by private modifiers,
*javadoc rules*
: all elements have complete javadoc, even private fields and methods
* *javadoc rules*
all elements have complete javadoc, even private fields and methods
(there are some rare exceptions, in case of code translated from
the fortran language and models with huge parameters sets),
*robustness rules*
: switch/case construct have a default argument, even when all possible
* *robustness rules*
switch/case construct have a default argument, even when all possible
cases are already handled, as many classes as possible are immutable,
*miscellaneous rules*
: _star_ imports are forbidden, parameters and local variables are final
* *miscellaneous rules*
_star_ imports are forbidden, parameters and local variables are final
wherever possible.
Design Rules
------------
*coverage* (validation)
: seek for a line test coverage of at least 80% (more is better)
* *coverage* (validation)
seek for a line test coverage of at least 80% (more is better)
* *findbugs* (robustness)
fix _all_ errors and warnings found by findbugs
*findbugs* (robustness)
: fix _all_ errors and warnings found by findbugs
* *no runtime assumptions* (robustness)
*no runtime assumptions* (robustness)
: do not make assumptions on the runtime environment of applications using Orekit
do not make assumptions on the runtime environment of applications using Orekit
(they may be embedded with no console, no possible user interaction, no network,
no writable file system, no stoppable main program, have memory constraints,
time constraints, be run in different linguistic contexts ...)
*simplicity* (maintainability)
: follow Occam's razor principle or its declination in computer science: KISS (Keep It Simple, Stupid)
* *simplicity* (maintainability)
follow Occam's razor principle or its declination in computer science: KISS (Keep It Simple, Stupid)
* *balanced design* (efficiency)
seek efficiency, but do not overstep robustness and maintainability
* *immutable objects* (robustness, maintainability)
*balanced design* (efficiency)
: seek efficiency, but do not overstep robustness and maintainability
use immutable objects as much as possible
*immutable objects* (robustness, maintainability)
: use immutable objects as much as possible
* *checkstyle* (style)
*checkstyle* (style)
: fix _all_ errors and warnings found by checkstyle
fix _all_ errors and warnings found by checkstyle
......@@ -37,8 +37,8 @@ source code control system. Orekit Git master repository is available online.
tab in Orekit forge
* you can clone it anonymously with the command:
git clone https://luc@www.orekit.org/git/orekit-main.git
git clone https://luc@www.orekit.org/git/orekit-main.git
* if you are a committer, you can clone it using your ssh credentials with the command:
git clone ssh://git@www.orekit.org/orekit-main.git
git clone ssh://git@www.orekit.org/orekit-main.git
\ No newline at end of file
......@@ -46,8 +46,8 @@ experts. The following concepts are taught:
* limiting factors with each generation of programming languages
* why and how new paradigms have been added over time
|----------|-------------------------------------------------------------------------------------------|----------|
| type | prerequisites | duration |
|----------|-------------------------------------------------------------------------------------------|----------|
| lecture | basic knowledge of development principles with programming languages like FORTRAN or C | 1 day |
session 1
......@@ -70,8 +70,8 @@ are taught:
* Testing tools (Junit, Jacoco)
* Auditing tools (Checkstyle, Findbugs, PMD ...)
|------------------------------|-------------------------------------------------------------------|-----------|
| type | prerequisites | duration |
|------------------------------|-------------------------------------------------------------------|-----------|
| lecture, hands-on practice | knowledge of object-oriented principles as presented in session 1 | 4 days |
session 2
......@@ -95,8 +95,8 @@ topics are covered:
library objects
* Extending existing Orekit library objects to meet mission-specific needs
|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|
| type | prerequisites | duration |
|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|
| lecture, hands-on practice | space flight dynamics or numerical analysis background , knowledge of object-oriented principles as presented in session 1, basic knowledge of the Java language syntax | 3 days |
session 3
......@@ -114,8 +114,8 @@ The training sessions can be organized both at your premises anywhere in the wor
premises in Toulouse (France). All sessions are limited to 8 students. Prices for the training
sessions at CS premises are shown in the following table:
|----------------------------------------------------------------------------------------------------------|--------------------------------|----------------------------------|------------|
| session | industry, commercial companies | academics, research laboratories | students |
|----------------------------------------------------------------------------------------------------------|--------------------------------|----------------------------------|------------|
| Object oriented technology for numerical computing (session 1) | 600 € | 300 € | 150 € |
| Object oriented concepts and the Java language (session 2) | 2400 € | 1200 € | 600 € |
| Developing numerical applications in the Java language using Apache commons-math and Orekit (session 3) | 1800 € | 900 € | 450 € |
......@@ -128,13 +128,12 @@ For information about scheduled sessions or if you want to set up a session at y
please use the general orekit email address: [orekit@c-s.fr](mailto:orekit@c-s.fr) or ask
CS space flight dynamics department at the following address:
|:-----------------------------------------------------------------------|
| CS Systèmes d'Information |
| BU E-space & Geoinformation |
| parc de la plaine - 5 rue Brindejonc des Moulinais |
| BP 15872 |
| 31506 Toulouse CEDEX 5 |
| FRANCE |
| |
| phone: +33 5-61-17-66-66 (ask for Luc Maisonobe or Nicolas Frouvelle) |
| fax: +33 5-61-34-84-15 |
CS Systèmes d'Information
BU E-space & Geoinformation
parc de la plaine - 5 rue Brindejonc des Moulinais
BP 15872
31506 Toulouse CEDEX 5
FRANCE
phone: +33 5-61-17-66-66 (ask for Luc Maisonobe or Nicolas Frouvelle)
fax: +33 5-61-34-84-15
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