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 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 .


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 not thread-safe.

Installation

When I try to compile orekit, maven cannot find commons-math 2.0-SNAPSHOT, where is it?

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

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.


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 utc-tai history data loaded" (or something similar in a 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 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 first 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.