Orekit Changes

Release History

Version Date Description
4.1 2009-08-18 version 4.1 is an upgrade bringing some new features and fixing a few bugs. The equinox-based frames family with IAU1980 precession-nutation models that are still used by many legacy systems are now supported. This simplifies interoperability with legacy systems and helps migrating from this old frames family to the new CIO-based ones that is supported by orekit since its first versions. The data loading mechanism used to retrieve IERS data (Earth Orientation Parameters, UTC-TAI history) and JPL ephemerides is now also used to retrieve gravity potential files. This mechanism has also been vastly improved to support new use cases (loading from disk, from classpath, from network delegating loading to an external library ...). Another change is the addition of the TDB time scale. Some minor incompatibilities have been introduced but they are easy to solve for users, the explanations are provided in detailed changes report.
4.0 2008-10-13 major upgrade with new features (GCRF and ITRF2005 frames, DE 405 and DE 406 ephemerides support, improved and greatly simplified date/time support, vastly improved data configuration with zip files support, new tutorials, improved performances, more tests and all identified bugs fixed, new translation files for italian, spanish and norse.
3.1 2008-07-16 This release is the first public release of Orekit.

Release 4.1 - 2009-08-18

Type Changes By
add added TDB time scale aude
update the RadiationSensitive and DragForce interfaces now have an additional SpacecraftState parameter in all their get methods. This allows to implement models that take into account solar arrays rotation. Note that this changes breaks compatibility for users that did add their own implementations, but it is simple to deal with (simply add one parameter in the signature and ignore it) so its was considered acceptable. luc
add added german localization for error messages Thanks to James Housden. luc
update added a feature allowing all tests to clear the already built reference objects (frames, time scales, solar system bodies ...) between each tests, thus removing the need to launch tests in separate JVMS. This allows to launch all tests directly from eclipse, and this speeds up maven tests by a factor 4 at least luc
update set up a custom ant build independent from the maven 2 build luc
update changed all tests from Junit 3 to Junit 4 luc
fix fixed accuracy of PEF frame thierry
fix fixed configuration problems on Windows systems Thanks to Aude Privat. luc
fix fixed a reversed sign in solar radiation pressure Thanks to Sébastien Herbinière. luc
update Orekit supports the two different naming patterns for bulletins B provided by IERS on http://www.iers.org/ and http://hpiers.obspm.fr/eop-pc/. pascal
update the predefined times scales (TAI, UTC ...) are now built using a factory. The various XXXScale.getInstance() methods defined in each predefined time scales classes are still available, but have been deprecated and will be removed in the future, they are replaced by TimeScalesFactory.getXXX(). luc
update the Frame class was split into a FramesFactory class, dealing with the predefined reference frames, and a Frame class for the creation of new frames and the navigation through any frames tree. The Frame.getXXX() methods for the predefined reference frames are still available, but have been deprecated and will be removed in the future, they are replaced by FramesFactory.getXXX(). pascal
add 3 new predefined reference frames have been added in Orekit : MEME, TEME and PEF. They implement the classical paradigm of equinox-based transformations including the IAU-76 precession model, the IAU-80 nutation model and the IAU-82 sidereal time model, with the capability to apply the nutation corrections provided by IERS through the EOP data files for better agreement with the IAU 2000 precession-nutation model. pascal
update the ChronologicalComparator class is not a singleton anymore, this didn't really make sense luc
fix fixed a state reset error: orbital state changed by event detectors like ImpulseManeuver were overwritten by other event detectors luc
fix fixed stop date of analytical propagators (Keplerian and Eckstein-Heschler). They used to stop at the first event after target date when an event detector was set up, instead of stopping at the target date luc
fix the gravity coefficients for solar system bodies are now extracted from JPL files headers luc
update the eventOccurred method in EventDetector interface and its various implementations has an additional parameter specifying if the switching function increases or decreases at event time. This allows simpler events identification has many switching functions have two switches (start/end, raising/setting, entry/exit ...). Note that this changes breaks compatibility for users that did implement their own events, but it is simple to deal with (simply add one parameter in the signature and ignore it) so its was considered acceptable. luc
fix fixed an error occurring when DE406 JPL ephemerides were loaded before DE405 ones Thanks to Christophe Pipo. luc
fix fixed an error in EGM potential file loader Thanks to Sébastien Herbinière. luc
update trigger exceptions when no data can be loaded luc
update remove predefined leap seconds, they are not useful anymore since other parts of the library do need configuration data (solar system bodies) and since data configuration has been vastly improved luc
add added support for the ICGEM format for gravity fields luc
update load gravity potential data using the same mechanism already used for Earth Orientation Parameters, UTC-TAI history and JPL ephemerides files luc
add re-activated a way to load data from the classpath using a data provider plugin. Thanks to quinput and Kai Ruhl. luc
add added a way to load data directly from network (either locally or through a proxy server) using a data provider plugin. luc
add added a small plugin-like mechanism to delegate data loading to a user-provided mechanism, thus enabling smooth integration in existing systems. luc
update updated to latest version of commons-math. luc
add added galician localization for error messages. Thanks to Silvia Ríos Bergantiños. luc
fix improved javadoc comments in orbit classes. Thanks to Guylaine Prat. luc
add tidal corrections are now available for ITRF and TIRF frames. Both frames are provided in two versions, the standard one with tidal corrections and a stripped down one without tidal corrections. A cache/interpolation mechanism is used to keep the computation cost of tidal correction to a minimum. With this mechanism, the penalty to use tidal correction is slightly above 20% in run time for a transformation between GCRF and ITRF. A raw implementation without this mechanism would lead to a 550% penalty, or even a 1100% penalty if TIRF and ITRF parts were computed independently. pascal

Release 4.0 - 2008-10-13

Type Changes By
fix The ephemeris produced by numerical propagator now checks date validity in propagate method. pascal
fix The EME2000/J2000 frame was slightly mis-oriented (about 20 milli arcseconds). It really was the GCRF frame. This has been fixed and now both the GCRF and the EME2000/J2000 are available. luc
fix Dates in UTC within leap seconds are now displayed correctly (i.e. a 61st second is added to the minute). luc
fix Fixed an overflow error in AbsoluteDate that generated an exception when any attempts was made to print dates far away like AbsoluteDate.JULIAN_EPOCH or AbsoluteDate.MODIFIED_JULIAN_EPOCH. Thanks to quinput. luc
fix Changed test configuration to always use a new JVM for each test. This prevents some false positive to be generated. luc
update The GeodeticPoint constructor arguments has been reordered to reflect more traditional usage, latitude coming before longitude. luc
update The low accuracy Sun model based on Newcomb theory and the Moon model based on Brown theory have been withdrawn as they are superseded by the support of JPL DE 405 binary ephemerides files. luc
update The ThirdBody abstract class has been removed and its specific method getMu has been moved up into CelestialBody interface and renamed getGM. luc
update Improved external data configuration. The java property is now called orekit.data.path and is a colon or semicolon separated path containing directories or zip archives, themselves containing embedded directories or zip archives and data files. This allows easy roll-out of system-wide configuration data that individual users can override by prepending their own data trees in front of the path. This also allows simple configuration since many data files can be stored in easy to handle zip archives. luc
update Renamed the iers package into data, as it is not IERS specific anymore. Some classes where also moved out of the package and into the frame and time package and their visibility reduced to package only. This improves decoupling and reduces clutter on users by limiting the number of visible classes. luc
update The performance of IAU-2000 precession-nutation model computation has been tremendously improved, using a combined caching and interpolation approach. The simplified model (which was quite inaccurate in version 3.1) has therefore been removed as it was not needed anymore. luc
update The ITRF 2005 frame is now supported instead of the older ITRF 2000 frame. The Earth Orientation Parameters data handling classes have been updated to match this change and read the new file format provided by IERS. luc
update The J2000 frame has been renamed as EME2000 as this name seems to be more widely accepted and reduces confusion with the J2000.0 epoch. The Frame.getJ2000() method is still available, but has been deprecated and will be removed in the future. luc
update Changed TimeScale from base abstract class to interface only. luc
update Renamed some classes for better understanding: ChunkedDate is now DateComponents, ChunkedTime is now TimeComponents, ChunksPair is now DateTimeComponents. The getChunks method from AbsoluteDate as also been renamed into getComponents accordingly. luc
add Added new tutorials. pascal
add Added predefined local orbital frames: the (t, n, w) frame aligned with velocity and the (q, s, w) frame aligned with position. luc
add Added a predefined detector for altitude crossing events. luc
add Added methods to get zenith, nadir, north, south, east and west direction for any GeodeticPoint. luc
add Added spanish localization for error messages. Thanks to Silvia Ríos Bergantiños. luc
add Added norse localization for error messages. Thanks to Espen Bjørntvedt. luc
add Added italian localization for error messages. Thanks to Francesco Coccoluto. luc
add Added support for mean motion first and second derivatives fields in TLE. Thanks to Derek Surka. luc
add Added a way to rebuild the two lines of TLE instances. luc
add Added constructor from already parsed elements for TLE. Thanks to Derek Surka. luc
add Added a method to retrieve a body-centered inertial frame to the CelestialBody interface. As a consequence, thirteen new frames are predefined: Sun, Moon, planets and barycenters provided by JPL binary ephemerides. luc
add Support for the JPL DE 405 and DE 406 binary ephemerides files has been added and a factory class SolarSystemBody uses these files to provide implementations of the CelestialBody interface for Sun, Moon, the eight solar system planets,the Pluto dwarf planet as well as the solar system barycenter and Earth-Moon barycenter points. luc
add The CelestialBody interface now provides velocity as well as position. luc
add A getCalls() method has been added to the NumericalPropagator class to count the number of calls to the differential equations computation method. This helps tuning the underlying integrator settings in order to improve performances. luc
add A lot more classes and interfaces are now serializable, to help users embed instance in their own serializable classes. luc
add Added predefined leap seconds to allow proper turn-key use of the library even without an already configured environment. All known leap seconds at time of writing (2008) are predefined, from 1972-01-01 to 2009-01-01 (the last one has been announced in Bulletin C 36 on 2008-07-04 and is not yet present in the UTC-TAI.history published file) luc
add Improved user-friendliness of the time-scales by changing methods parameters types to more easily understandable ones. luc
add Improved user-friendliness of the AbsoluteDate class by adding several new constructors and methods for common cases. It is in particular now possible to use offsets within a time scale, for example to build a date given as a fractional number of days since a reference date in UTC, explicitly ignoring intermediate leap seconds. luc
add Improved the class handling date/time components: added a constructor to allow building from an offset with respect to a reference epoch, implemented Comparable interface and added equals and hashCode methods. luc
add Improved the class handling date components: added a constructor to allow building from any reference epoch, not only J2000.0 (thus simplifying use of modified julian day), added getMJD() method, added several constants JULIAN_EPOCH, MODIFIED_JULIAN_EPOCH, FIFTIES_EPOCH, GPS_EPOCH, J2000_EPOCH and JAVA_EPOCH. luc
add Added a new time scale: GPSScale. luc
add Added the changes page to the generated site. luc

Release 3.1 - 2008-07-16

Type Changes By