Orekit Changes

Release History

Version Date Description
10.3.1 2021-06-16 Version 10.3.1 is a patch release of Orekit. It fixes one critical bug that could cause potential infinite loops in tesselation in very rare cases due to numerical noise.
10.3 2020-12-21 Version 10.3 is a minor release of Orekit. It includes both new features and bug fixes. New features introduced in 10.3 are: relativistic clock correction for range, phase, and range rate measurements, piece wise models for empirical forces, one-way GNSS code and phase measurements, support for laser ranging data (both CPF and CRD formats), Lense-Thirring and De Sitter relativistic corrections to satellite acceleration, support for AGI leap second files, new interfaces for attitude ephemeris files, Knocke model for Earth's albedo and infrared, as well as several other new features. This release includes an important fix in DSST orbit determination allowing to used short period Jacobian during state transition matrix calculation. It also fixes issues in Kalman orbit determination and CCSDS ADM format. See the list below for a full description of the changes.
10.2 2020-07-14 Version 10.2 is a minor release of Orekit. It includes both new features and bug fixes. New features introduced in 10.2 are: support for CCSDS ADM files, modelling of trajectories around Lagrangian points using CR3BP model, a piece wise drag force model, a time span tropospheric estimated model, an estimated ionospheric model, an improved modelling of the GNSS phase measurement, several bug fixes for date functionnalities, a new organization of the maneuvers package, a configurable low thrust maneuver model based on detectors, support for CSSI space weather data, , as well as several other minor features and bug fixes. See the list below for a full description of the changes.
10.1 2020-02-19 Version 10.1 is a minor release of Orekit. It includes both new features and bug fixes. New features introduced in 10.1 are: wind-up effect for phase measurement, NeQuick ionospheric model, support for Hatanaka compact RINEX format, methods for the combination of GNSS measurements, Laplace method for initial orbit determination, a new Field Of View package, comparison methods for absolute dates, a new multiplexed measurement, specialized propagators for GNSS constellation, default constructors for DSST force models, covariance matrices in OEM writer, a new data context implementation, connection with Gitlab CI, improved documentation, the migration of the tutorials to a separate sister project, as well as several other minor features and bug fixes. See the list below for a full description of the changes.
10.0 2019-06-24 Orekit 10.0 is a major new release. It includes DSST OD, propagation in non-inertial frames, specialized propagators for GNSS constellations, a new ionospheric model, modeling for phase measurements, the LAMBDA method for phase ambiguity resolution, Shapiro effect for range measurements, improved documentation, as well as several other new features and bug fixes. This release fixes a security denial of service bug regarding itrf-versions.conf present since Orekit 9.2. Some APIs have incompatibly changed since the 9.X series including the format of itrf-versions.conf, removal of deprecated methods, reorganization of the models package, as well as updates to AbstractDetector, AbstractGNSSAttitudeProvider, DragSensitive, RadiationSensitive, and ZipJarCrawler. See the list below for a full description of the changes.
9.3.1 2019-03-16 Version 9.3.1 is a minor version of Orekit. It fixes an issue with GPS week rollover.
9.3 2019-01-25 Version 9.3 is a minor version of Orekit. It includes both new features and bug fixes. New features introduced in 9.3 are: a new GPSDate class, changed OrekitException from checked to unchecked exceptions, parameter drivers scales and reference value can be changed, access to Kalman filter internal matrices, position-only measurements in orbit determination, support for unofficial versions 2.12 and 2.20 of Rinex files (mainly for spaceborne receivers), direct building of appropriate attitude law with eclipses for all GNSS satellite types, inter-satellites view detector, measurement generation feature, possibility fo use Marshall Solar Activity Future Estimation to feed NRL MSISE 2000 atmosphere model, new tropospheric models: Mendes-Pavlis, Vienna 1, Vienna 3, estimated model, new mapping functions for tropospheric effect: Global Mapping Function, Niell Mapping Function, Global Pression Temperature Models GPT and GPT2, possibility to estimate tropospheric zenith delay, clock offset that can be estimated (both for ground station and satellite clocks).
9.2 2018-05-26 Version 9.2 is a minor release of Orekit. It introduces several new features and bug fixes. New features introduced in version 9.2 are Kalman filter for orbit determination, loading of RINEX files, loading of ANTEX files, loading of version d of SP3 files (version a to c were already supported), on-the-fly decompression of .Z files, code measurements, phase measurements (but only a very basic implementation for now), specific attitude laws (GPS, GLONASS, GALILEO, BEIDOU) with midnight/noon turns, possibility to use backward propagation in LS orbit determination, support for any ITRF version, even if EOP files do not match the desired version, attitude overriding in constant thrust maneuvers, FunctionalDetector, filtering mechanism to insert specific decompression or deciphering algorithms during data loading, frames for Lagrange L1 and L2 point for any two related celestial bodies. WARNING: phase measurements, GNSS attitude and time-dependent process noise are considered experimental features for now, they should not be used yet for operational systems. Several bugs have been fixed.
9.1 2017-11-26 Version 9.1 is a minor release of Orekit. It introduces a few new features and bug fixes. New features introduced in version 9.1 are some frames in OEM parser, retrieval of EOP from frames and ground station displacements modelling (both displacements due to tides and displacements due to ocean loading), and retrieval of covariance matrix in orbit determination. Several bugs have been fixed. Version 9.1 depends on Hipparchus 1.2.
9.0.1 2017-11-01 Version 9.0.1 is a patch release of Orekit. It fixes security issus 368.
9.0 2017-07-26 Version 9.0 is a major release of Orekit. It introduces several new features and bug fixes. New features introduced in version 9.0 are Taylor algebra propagation (for high order uncertainties propagation or very fast Monte-Carlo studies), multi-satellites orbit determination, parallel multi-satellites propagation, parametric accelerations (polynomial and harmonic), turn-around measurements, inter-satellite range measurements, rigth ascension/declination measurements, Antenna Phase Center measurements modifiers, EOP estimation in precise orbit determination, orbit to attitude coupling in partial derivatives, parsing of CCSDS Tracking Data Messages, parsing of university of Bern Astronomical Institute files for Klobuchar coefficients, ITRF 2014, preservation of non-Keplerian orbits derivatives, JB2008 atmosphere model, NRL MSISE 2000 atmosphere model, boolean combination of events detectors, ephemeris writer, speed improvements when tens of thousands of measurements are used in orbit determination, Danish translations. Several bugs have been fixed.
8.0.1 2017-11-01 Version 8.0.1 is a patch release of Orekit. It fixes security issus 368.
8.0 2016-06-30 Version 8.0 is a major release of Orekit. It introduces several new features and bug fixes as well as a major dependency change. New features introduced in version 8.0 are orbit determination, specialized propagator for GPS satellites based on SEM or YUMA files, computation of Dilution Of Precision and a new angular separation event detector. Several bugs have been fixed. A major change introduced with version 8.0 is the switch from Apache Commons Math to Hipparchus as the mathematical library, which also implied switching from Java 6 to Java 8.
7.2.1 2017-11-01 Version 7.2.1 is a patch release of Orekit. It fixes security issus 368.
7.2 2016-04-05 Version 7.2 is a minor release of Orekit. It introduces several new features and bug fixes. The most important features introduced in version 7.2 are handling of GLONASS and QZSS time scales, support for local time zones according to ISO-8601 standard, and finer tuning of short period terms in DSST propagator. Version 7.2 depends on version 3.6.1 of Apache Commons Math, which also fixes a bug related to close events detection.
7.1 2016-02-07 Version 7.1 is a minor release of Orekit. It introduces several new features and bug fixes. The most important features introduced in version 7.1 are a lot of new event detectors (field of view based detectors supporting any FoV shape, either on ground targetting spacecraft or on spacecraft and targetting ground defined zones with any shape, extremum elevation detector, anomaly, latitude argument, or longitude argument crossing detectors, either true, mean or eccentric, latitude and longitude extremum detectors, latitude and longitude crossing detectors), new event filtering capability based on user-provided predicate function, ability to customize DSST interpolation grid for short period elements, ability to retrieve DSS short periodic coefficients, removed some arbitrary limitations in DSST tesseral and zonal contribution, ability to set short period degree/order to smaller values than mean elements in DSST, vastly improved frames transforms efficiency for various Earth frames, three different types of solar radiation pressure coefficients, new tabulated attitudes related to Local Orbital Frame, smooth attitude transitions in attitudes sequences, with derivatives continuity at both endpoint, ground zone sampling either in tiles or grid with fixed or track-based orientation, derivatives handling in geodetic points, parsing of TLE with non-unclassified modifiers, support for officiel WMM coefficients from NOAA, support for tai-utc.dat file from USNO, tropospheric refraction model following Recommendation ITU-R P.834-7, geoid model based on gravity field, and use of the new Apache Commons Math rotation API with either Frame transform convention or vector operator convention. Numerous bugs were also fixed. Version 7.1 depends on version 3.6 of Apache Commons Math.
7.0 2015-01-11 Version 7.0 is a major release of Orekit. It introduces several new features and bug fixes. New features introduced in version 7.0 are the complete DSST semi-analytical propagator with short-periodics terms (only mean elements were available in previous version), extension to second order derivatives for many models (Cartesian coordinates, angular coordinates, attitude modes, ...), bilinear interpolator in Saastamoinen model, attitude overriding during impulsive maneuvers, general relativity force model, geographic zone detector, and ecliptic frame. Several bugs have been fixed. One noteworthy fix concerns an inconsistency in Eckstein-Hechler propagator velocity, which leads to a change of the generated orbit type.
6.1 2013-12-13 Version 6.1 is a minor release of Orekit. It introduces several new features and bug fixes. The most important features introduced in version 6.1 are solid tides force model, including pole tide at user choice, and following either IERS 1996, IERS 2003 or IERS 2010 conventions ; ocean tides force model, including pole tide at user choice, loading a user provided model ; simultaneous support for IERS 1996, 2003 and 2010 for frames definition, which is very important to support legacy systems and to convert coordinates between older and newer reference systems ; greatly improved accuracy of celestial/terrestrial frames transforms (we are now at sub-micro arcsecond level for IERS 2003/2010, both with equinox based and Non-Rotating Origin, at a sub-milli arcseconds for IERS 1996, both with equinox based and Non-Rotating Origin) ; classical equinox-based paradigm and new non-rotating origin paradigm for inertial and terrestrial frames are now supported with all IERS conventions ; automatic conversion of IERS Earth Orientation Paramters from equinoxial to non-rotating paradigm ; support for CCSDS Orbit Data Message ; improved API for events, allowing separation of event detection and event handling (the older API is still available for compatibility) ; merged all the elevation related events, allowing to use both refraction model and antenna mask at the same time if desired ; new attitude mode based on interpolation on a table. Numerous bugs were also fixed. Version 6.1 depends on version 3.2 of Apache commons math.
6.0 2013-04-23 Version 6.0 is a major release of Orekit. It introduces several new features and bug fixes. Several incompatibilities with respect to previous versions 5.x have been introduced. Users are strongly advised to upgrade to this version. The major features introduced in version 6.0 are the inclusion of the DSST semi-analytical propagator, an improved propagator architecture where all propagators can use events and step handlers, much better and faster gravity field force model, Jacobians availability for all force models, converters between different propagation models (which can be used to convert between mean and osculating elements), thread safety for many parts (mainly frames, but still excluding propagators) while still preserving caching for performances even in multi-threaded environments, time-dependent gravity fields, support for IERS 2010 conventions, support for INPOP and all DExxx ephemerides, new frames, new time scales, support for user-defined states in spacecraft state, availability of additional states in events, interpolators for many components like position-velocity, spacecraft state and attitude allowing to compute high order derivatives if desired, filtering of events, orphan frames, magnetic fields models, SP3 files support, visibility circles, support for Marshall Solar Activity Future Estimation of solar activity. Numerous bugs were also fixed. Version 6.0 now depends on version 3.2 of Apache commons math.
5.0.3 2011-07-12 version 5.0.3 is a bug-fix release.
5.0.2 2011-07-11 version 5.0.2 is an interim release of Orekit with support for IERS Rapid Data and Prediction files.
5.0.1 2011-04-15 version 5.0.1 is a minor release of Orekit without any functional changes. The differences with respect to 5.0 are only related to packaging and deployement to maven central. There are NO bug fixes and NO evolutions.
5.0 2010-05-06 version 5.0 is a major release of Orekit. It introduces several new features and bug fixes. Some slight incompatibilities with respect to previous versions have been introduced, but they should be easy to overcome to users. Users are strongly advised to upgrade to this version. The major points introduced in version 5.0 are a very general PVCoordinatesProvider interface, a new shiftedBy method allowing many time-dependent instances (AbsoluteDate, Orbit, PVCoordinates, Attitude and SpacecraftState) to be slightly shifted in time using simple evolution models (keplerian for orbit, fixed angular rate for attitude, fixed translation for position/velocity), a redesign of the attitude interfaces and an experimental (read subject to change) numerical propagator able to compute jacobians of the state with respect to both initial state and force models parameters. Version 5.0 now depends on version 2.1 of Apache commons math.
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 10.3.1 – 2021-06-16

Type Changes By
Fix Fixed potential infinite loops in tesselation in very rare cases due to numerical noise. Fixes 792. luc

Release 10.3 – 2020-12-21

Type Changes By
Update Updated Hipparchus version to 1.8 and updated code with new functionalities. Fixes 741. bryan
Add Added aggregator for bounded attitude providers. Fixes 740. bryan
Add Added Knocke's Earth rediffused radiation pressure force model. Fixes 8. thomas
Add Allowed initialization of attitude provider from attitude segment. Fixes 739. bryan
Add Allowed writing an AEM file from a list of SpacecraftStates. Fixes 705. raphael
Add Added user-defined max iteration and convergence criterion in SecularAndHarmonic. Fixes 738. luc
Add Added loading of AGI LeapSecond.dat files. Fixes 737. luc
Add Allowed user-defined format for ephemeris data lines in StreamingAemWriter, AEMWriter, StreamingOemWriter and OEMWriter. Fixes 686. raphael
Fix Updated building instructions. Fixes 683. bryan
Add Added getters for phase measurement ambiguity driver. Fixes 734. bryan
Fix Allowed to configure initial covariance for measurements in Kalman Filter. Fixes 696. bryan
Add Added clock drift contribution to range rate measurements. Fixes 709. thomas, bryan
Fix Fixed Javadoc of ElevationMask. Fixes 687. bryan
Fix Allowed definition of a default interpolation degree in both AEMParser and OEMParser. Fixes 711. raphael
Add Added Lense-Thirring and De Sitter relativistic effects. Fixes 733. bryan
Fix Fixed missing measurement parameter in InterSatellitesRange measurement. Fixes 725. melanisti
Add Added documentation for checkstyle configuration. Fixes 732. bryan
Fix Removed useless loop over an empty list. Fixes 730. thomas
Fix Fixed parsing of some ICGEM gravity fields files. Fixes 731. luc
Fix Added support for measurements parameters in UnivariateProcessNoise. Fixes 720. raphael
Fix Fixed wrong handling of RESET-STATE in analytical propagators. Fixes 729. luc
Add Allow creating a node detector without an orbit. Fixes 728. luc
Add Added support for laser ranging file formats. Fixes 671. bryan
Fix Remove range checks in TLE constructor. Fixes 724. clement
Fix Allowed AEM and OEM writers to write header comments. Fixes 723. bryan
Add Added one-way GNSS range and phase measurements for LEO satellite orbit determination applications. Fixes 719. bryan
Add Added piecewise empirical force model. Fixes 716. bryan
Add Considered a new implementation for empirical forces, to allow piecewise model. bryan
Add Added inter-satellites phase measurement. Fixes 703. bryan
Fix Considered covariance matrix from Position measurement in Kalman estimator. Fixes 695. bryan
Fix Fixed orbital state used for short periodic Jacobian computation. Fixes 718. bryan
Add Allow using user specified velocity error for computing tolerance vectors for integrators. Fixes 704. bryan
Add Added frequency deviation for range-rate measurements. Fixes 714. bryan
Add Added relativistic clock correction for range, phase and inter-satellite range measurements. Fixes 715. bryan
Fix Fixed missing measurement parameter in inter-satellites range measurement. Fixes 706. bryan
Fix Fixed computation of DSST short period Jacobian. Fixes 713. thomas
Fix Fixed missing measurement parameter in Phase measurement. Fixes 699. luc
Fix Fixed wrong handling of propagation parameters by Kalman filter in multi-satellite context. Fixes 701. luc

Release 10.2 – 2020-07-14

Type Changes By
Fix Fixed visibility of WindUpFactory. Fixes 661. bryan
Update Increased visibility of setters in CCSDS ADM related classes. bryan
Add Added CssiSpaceWeatherLoader which provides three-hourly space weather data and implements DTM2000InputParameters and NRLMSISE00InputParameters. Fixes 656. clement
Update Increased visibility of setters in CCSDS OEM related classes. Fixes 690. maxime
Update Improved Orekit performance by using new Hipparchus' differentiation classes. bryan
Update Changed visibility of OrbitType parameter drivers' names to public. Fixes 682. bryan
Add Fix infinite loop in event detection when a RESET_* event causes two other events to occur simultaneously and discontinuously. Fixes 684. Thanks to Mikael. evan
Add Add FieldFunctionalDetector. Fixes 684. evan
Add Added a configurable low thrust maneuver based on detectors. mikael
Fix Added support for Rinex C0, L0, S0 and D0 observation types. Fixes 605. bryan
Fix Allow Pattern functionalities instead of String.replaceAll() and String.split(). Fixes 641. bryan
Fix Fix invalid hour when using TimeScale(double) or TimeScale(int, double) with a value in [86400, 86401]. Treat these values as indicating a leap second. Fixes 658. evan
Add Add AbsoluteDate.toStringRfc3339() and DateTimeComponents.toStringRfc3339(). Fixes 677. evan
Fix Fix AbsoluteDate.getComponents(...) produces invalid times. Fixes 681. evan
Fix Fix AbsoluteDate.getComponents(utc) throws "non-existent time 23:59:61". Fixes 676. evan
Fix Improved use of try with resources statement. Fixes 651. bryan
Fix Improved testRetrogradeOrbit in CircularOrbit and KeplerianOrbit tests. Fixes 679. Thanks to luc, maxime. bryan
Fix Allowed ephemeris class to be used with absolute PV coordinates. Fixes 680. bryan
Fix Added an exception if eccentricity is negative for keplerian orbit. Fixes 674. bryan
Fix Fix build on CentOS/RedHat 7. Fixes 667. evan
Fix Fixed forgotten additional state in Ephemeris propagator. Fixes 662. bryan
Update Improve error message for TimeStampedCache by including requested date. evan
Fix Fixed initialization of the triggering event for ImpulseManeuver class. Fixes 663. bryan
Fix Fix sign of RAAN and PA parameters in TLE constructor if negative, range check most other orbit parameters. Fixes 664. clement
Add Added estimated ionospheric model. Fixes 669. bryan
Add Merged phase-measurement branch into develop. Fixes 645. bryan
Add Added a time span tropospheric estimated model. bryan
Add Merged cr3bp branch into develop. Fixes 646. bryan
Add Improved exception handling in IODGibbs. Fixes 660. bryan
Add Improved package-info documentation. Fixes 647. bryan
Update Upgrade maven-checkstyle-plugin to 3.1.1. nick
Add Added multiplexed Orekit fixed step handler. Fixes 657. bryan
Add Added support for CCSDS ADM files. Fixes 655. bryan
Add Added a piece wise drag force model: TimeSpanDragForce in forces package. Fixes 649. maxime
Fix Prevent divergence of Saastomoinen model pathDelay method at low elevation. Fixes 654. yannick
Fix Removed duplicated BUILDING.txt file. Fixes 542. bryan
Add Allowed Eckstein Hechler propagator to be initialized with a mean orbit. Fixes 504. bryan
Update Removed try and catch statements for ParameterDriver initialization. Fixes 644. bryan
Fix Allowed DSST propagation in osculating type with event detectors. Fixes 613. bryan

Release 10.1 – 2020-02-19

Type Changes By
Fix Improve performance of loading CCSDS files. ward
Fix In Ellipsoid.pointOnLimb(...) improved numerical stability by cancelling terms. Fixes 639. Thanks to qmor. ward
Fix Fixed pointOnLimb method in bodies.Ellipsoid class. Normalized equations should now avoid numerical issues. Fixes 639. Thanks to qmor. maxime
Fix Fix TimeScalesFactory.getGMST(conventions, simpleEop) always returning the same value. Fixes 627. evan
Fix Fix UT1 and Earth rotation during a leap second. Was off by 1 second. Fixes 636. evan
Fix Fixed inconsistency in constant thrust maneuver acceleration. Fixes 635. luc
Add Added an annotation and a compiler plugin that generates a warning when default context is used without being explicitly annotated. evan
Fix Fixed projection to ellipsoid at pole. Fixes 632. Thanks to Evan Ward. luc
Add Add DataContext, a way to load separate sets of EOP, leap seconds, etc. Fixes 607. evan,luc,yannick
Fix Improve performance of UnixCompressFilter. Fixes 630. luc
Fix Improve performance of HatanakaCompressFilter. Fixes 631. luc
Fix Improve performance of ZipJarCrawler. Fixes 629. evan
Add Added default constructors for DSSTZonal and DSSTTesseral. Fixes 625. bryan
Add Added OrekitException for unknown number of frequencies in ANTEX files. Fixes 622. bryan
Add Added OrekitException in the case where IONEX header is corrupted. Fixes 621. bryan
Add Added a specific test for issue 359 in BatchLSEstimatorTest. The test verifies that a Newtonian attraction is known by both the propagator builder and the propagator when it is not added explicitly. Fixes 359. dylan
Add Added write of covariance matrices in OEMWriter. Fixes 367. dylan
Fix Fixed origin transform in CcsdsModifierFrame. Fixes 619. dylan
Add Added SBAS orbit propagator. Fixes 611. bryan
Fix Fixed null pointer exception in MultiplexedMeasurement. Fixes 617. bryan
Fix Allow users to provide custom convergence checkers for batch least squares orbit determination. Fixes 575. luc
Add Added multiplexed measurements. Fixes 614. luc
Fix Fixed missed changes updates in ParameterDriversList embedding other ParameterDriversList instances. Fixes 616. luc
Update Moved tutorials to a separate sister project. luc
Add Added Laplace method for initial orbit determination. Thanks to Shiva Iyer. bryan
Fix Fixed DSST orbit determination tutorial. Fixes 612. bryan
Add Added IRNSS orbit propagator. Fixes 610. bryan
Add Added support for RINEX 3.04 files. Fixes 608. bryan
Fix Fixed bugs in the derivatives computation in IodGooding. Fixed bugs in IodLambert when there's more than an half revolution between start and final position. Fixes 533. gabb
Fix Fixed parsing of compact RINEX files with wrong key in header produced by some Septentrio receivers. Fixes 604. bryan
Fix Fixed parsing of compact RINEX files with missing types in header produced by some Septentrio receivers. Fixes 603. luc
Fix Improve performance of AggregateBoundedPropagator by factor of 2. Fixes 589. evan
Fix Fixed parsing of compact RINEX files with many observation types. Fixes 600. luc
Fix Fixed poor design of GLONASS numerical propagator. bryan
Fix Fixed an issue in projection to flat ellipse. Fixes 599. luc
Fix Added lazily addition of Newtonian attraction to the DSST and numerical propagator builders. Fixes 598. bryan
Add Added EllipticalFieldOfView (with two different ways to define the ellipticity constraint) that can be used in FieldOfViewDetector, GroundFieldOfViewDetector and FootprintOverlapDetector. Fixes 595. luc
Add Fields of view with regular polygonal shape can now be built either based on a defining cone inside the Fov and touching it at edges middle points, or based on a defining cone outside the Fov and touching it at vertices. luc
Add Added CircularFieldOfView that can be used in FieldOfViewDetector, GroundFieldOfViewDetector and FootprintOverlapDetector. Fixes 594. luc
Add Set up a general hierarchy for Field Of View with various shapes. At start, it includes DoubleDihedraFieldOfView and PolygonalFieldOfView. luc
Add Added FilesListCrawler to load files from an explicit list. Fixes 592. luc
Fix Fix AbsoluteDate.compareTo() for future/past infinity. Fixes 583. evan
Fix Fixed wrong handling of spacecraft states in multi-satellites orbit determination and multi-satellite measurements generation. Fixes 588. luc
Fix Improved contributing guide. Fixes 585. bryan
Fix Make FieldOfView.getFootprint public. Fixes 570. petrus
Add Added combination of measurements. bryan
Fix Fix values of GPS C2D, L2D, D2D and S2D frequencies. bryan
Add Add Nequick ionospheric model. bryan
Fix Fixed spurious empty line insertion during Rinex 2 decompression when the number of observations per satellite is a multiple of 5. Fixes 581. luc
Fix Fixed decompression of very small negative values in Hatanaka Compact RINEX format. Fixes 580. luc
Fix Orbit determination tutorials (and tests too) now supports compressed measurement files (gzip, Unix compress, Hatanaka Compact RINEX). Fixes 578. luc
Fix Handle properly special events flags in Hatanaka Compact RINEX format. Fixes 579. luc
Fix Reset additional state changed by event handlers and not managed by any additional state providers. Fixes 483. luc
Add Added support for Hatanaka Compact RINEX format. Fixes 472. luc
Fix Cope with input stream readers that keep asking for new bytes after end of Unix compressed files has been reached. Fixes 574. luc
Fix Added detection of some corrupted Unix-compressed files. Fixes 573. luc
Fix Fixed the Saastamoinen model when station altitude is bigger than 5000.0 meters. Fixes 572. bryan
Fix Fixed too fast step increase in a bracketing attempt. Fixes 568. luc
Add Added phase measurement builder. luc
Add Added getWavelength in GNSS Frequency. luc

Release 10.0 – 2019-06-24

Type Changes By
Fix Fix name of GLONASS G2 frequency. evan
Fix Fixed accuracy of dates conversions from java dates. luc
Fix Make ITRFVersionLoader public. Fixes 566. evan
Fix Fixed private argument of getLLimits() abstract method. Fixes 564. bryan
Fix Fixed static loading of UTC for GLONASS reference epoch. Fixes 565. bryan
Fix Added a tile/sampling aiming direction that diverts singularity outside of a area of interest. This is mainly useful when sampling areas of interest that cover the pole as the pole is singular for classical aiming directions (constant azimuth or along track). Fixes 547. luc
Update Removed latitude limitation in AlongTrackAiming. If latitude is above (resp. below) the maximum (resp. minimum) latitude reached by the defining orbit, then aiming will be towards East for prograde orbits and towards West for retrograde orbits. luc
Fix Fixes broken links on Orekit JavaDoc. bryan
Fix Fixes broken links on Maven site. Fixes 558. pascal
Fix Take into account changes in MSAFE files names published by NASA. Fixes 559. luc
Add Add Global Ionosphere Map model. bryan
Add Added propagation in inertial frame. Fixes 554. maxime
Fix Improved documentation about DatesSelector not being reusable across several schedulers during measurements generation. Fixes 557. luc
Fix Fix some possible NPEs in AntexLoader, FieldAngularCoordinates. evan
Fix Fix locale dependent comparisons in SP3File, TDMParser, and YUMAParser. evan
Fix Ensure opened streams are closed in ZipJarCrawler, DTM2000, IERSConventions, and OceanLoadDeformationCoefficients. evan
Add Add DSST Orbit Determination for both Kalman Filter and Batch Least Squares estimator. bryan
Add Add a events detector based on the geomagnetic field intensity at the satellite altitude or at sea level above the satellite, and the associated tests romaric
Update Deleted deprecated methods in EclipseDetector. Fixes 549. maxime
Fix Fix the bug of attitude transition with Ephemeris propagator by adding a way for the LocalPVProvider to get the attitude at the end of the transition. Fixes 553. romaric
Update Changing AbstractGNSSAttitudeProvider from public to package-private. Fixes 518. petrus
Fix Fix the bug of attitude transition with analytical propagator by refreshing the attitude after the events triggering. Fixes 551. romaric
Fix Fix the bug of attitude transition if a reset occurs during the transition by adding margins to the reset of TimeSpanMap to keep the one corresponding to the "after" attitude law. Fixes 552. romaric
Add Generalized the GPSPropagator class to handle all GNSS constellations using the same algorithm. Fixes 522. bryan
Add Added numerical and analytical GLONASS propagators. Fixes 519. bryan
Add Added ambiguity resolution for phase measurements. This feature is not complete yet and is considered experimental. luc
Update Reorganized models package by adding new sub-packages. Fixes 548. bryan
Update Updated Hipparchus dependency to version 1.5 in pom.xml file. Fixes 546. maxime
Update Deleted unused DerivativeStructure acceleration computation methods. In interfaces radiationPressureAcceleration and dragAcceleration, and all their implementations and their tests. Fixes 514. maxime
Update Change format of itrf-versions.conf to use prefix matching instead of Regular Expression matching. All existing itrf-versions.conf files will need to be updated. This is to avoid a potential denial of service where a crafted itrf-versions.conf could cause the application to hang. Fixes 543. evan
Update ZipJarCrawler now uses "!/" to denote the start of the path within the archive which matches the convention used by JarURLConnection. ZipJarCrawler used to use "!". Fixes 543. evan
Fix Fixed endless loop on GPSPropagator and (Field)KeplerianOrbit. Fixes 544. Thanks to Josef Probst. bryan
Add Added tests for class UnivariateProcessNoise. Working tests for non-Cartesian orbit propagation are still needed. Fixes 403. maxime
Fix Deprecated unused DerivativeStructure acceleration computation methods. In interfaces radiationPressureAcceleration and dragAcceleration, and all their implementations and their tests. Fixes 514. maxime
Add Take target radius into account in CircularFieldOfViewDetector and FieldOfViewDetector. Fixes 536. luc
Fix Fixed DTM2000.getDensity method, made it independent of user time zone. Fixes 539. maxime
Add Take occulting body flattening into account in eclipse detector. Fixes 535. luc
Fix Fixed default method compareTo in interface ComparableMeasurement. Fixes 538. Thanks to Dorian Gegout. maxime
Add Added Shapiro effect modifier for Range and InterSatelliteRange measurements. Fixes 532. luc
Update Fix type parametrization of AbstractDetector so that multiple with* methods can be called when the type parameter is '?'. Fixes 389. evan
Remove Remove EventHandler.Action and FieldEventHandler.Action. Use org.hipparchus.ode.events.Action instead. Fixes 506. evan
Update Changed API for magnetic field model to a SI base unit API. Fixes 527. bryan
Fix OrekitException preserves the stack trace when formatting the message throws another exception. evan
Remove Event detectors, field of view and attitude providers are not serializable anymore. Fixes 530. luc
Update Replaced private class BilinearInterpolatingFunction of Saastamoinen model by the one of Hipparchus. Fixes 526. bryan
Add Add Action.RESET_EVENTS to check all detectors for events without recomputing the propagation step. Fixes 507. evan
Add Add Action.RESET_EVENTS to check all detectors for events without recomputing the propagation step. Fixes 507. evan
Add Add toString() implementations to SpacecraftState, RecordAndContinue.Event and Field versions. Fixes 507. evan
Add Add Field version of RecordAndContinue. Fixes 507. evan
Add Add Field version of LatitudeCrossingDetector. Fixes 507. evan
Update Removed classes and methods deprecated in the 9.X series. luc
Fix Fixed parsing of clock in SP3 files. Fixes 528. Thanks to Gowtham Sivaraman. luc

Release 9.3.1 – 2019-03-16

Type Changes By
Add Handle GPS week rollover in GPSDate. Fixes 534. luc

Release 9.3 – 2019-01-25

Type Changes By
Add Added a way to manage clock corrections from GPSPropagator. Fixes 516. luc
Add Added several tropospheric models: Mendes-Pavlis, Vienna 1, Vienna 3, estimated model where the total zenith delay can be estimated during Orbit Determination. Fixes 498. bryan
Add Added Global Mapping Function and Niell Mapping Function to be used with tropospheric models. Fixes 498. bryan
Add Added clock offset parameter at satellites level for orbit determination. Fixes 515. luc
Add Added clock offset parameter at ground stations level for orbit determination. Fixes 513. luc
Add Added weather model Global Pressure and Temperature 2. Fixes 512. bryan
Add Added weather model Global Pressure and Temperature. Fixes 511. bryan
Fix Fixed dropped derivatives in TimeStampedFieldPVCoordinates.shiftedBy(dt). Fixes 510. luc
Fix Fixed scaling error in ParameterFunction differentiation. Fixes 509. luc
Fix Fixed inconsistency leading to inaccuracies in conversions from AbsoluteDate to FieldAbsoluteDate. Fixes 508. luc
Fix The MarshallSolarActivityFutureEstimation class implements the NRLMSISE00InputParameters interface. Fixes 495. pascal
Fix Make FieldTransform.shiftedBy(T) public. Fixes 486. evan
Fix Fix JavaDoc for TimeComponents.getSecond(). Fixes 496. evan
Update Deprecate GFunction in favor of ToDoubleFunction. Fixes 501. evan
Add Added a measurements generation feature for use with orbit determination. Fixes issue #494. Fixes 494. luc
Add Added adapter for event detectors, allowing to wrap existing detector while changing their behaviour. luc
Add Added ground at night detector. luc
Add Added inter-satellites direct view detector. luc
Add Added constants defined by IAU 2015 resolution B3 for Sun, Earth and Jupiter. luc
Add Added retrieval of full time span (start time, end time and data) containing a specified date in TimeSpanMap. Fixes issue #500. Fixes 500. luc
Add Added direct building of attitude provider from GNSS satellite type. luc
Add Added parsing of unofficial versions 2.12 and 2.20 of Rinex files (used by some spaceborne receivers like IceSat 1). luc
Add Added a way to retrieve Rinex header directly from the observations data set. luc
Add Added position-only measurements in orbit determination. luc
Fix Allow parsing of SP3 files that use non-predefined orbit types. Fixes issue #491. Fixes 491. luc
Add Added access to Kalman filter matrices. KalmanEstimation interface now has methods returning the physical values of: state transition matrix phi, measurement matrix H, innovation matrix S and Kalman gain matrix K. The methods are implemented in Model class. A class ModelTest was added to test these values. Fixes issue #485. Fixes 485. maxime
Fix Fixed error message for TLE with incorrect checksum. Fixes issue #492. Fixes 492. Thanks to Lebas. luc
Fix Fixed reference value of parameter drivers updating in Kalman filter. When resetting the orbit in the propagator builder, the reference values of the drivers are now reset too. Fixes issue #490. Fixes 490. maxime
Add Made ParameterDriver class fully mutable. By adding setters for attributes scale, reference, minimum and maximum values. Fixes issue #489. Fixes 489. maxime
Fix Fixed method unNormalizeStateVector in Model class of Kalman estimator. Previous value did not take into account the reference values of the drivers. Fixes issue #488. Fixes 488. maxime
Fix Changed OrekitException from checked to unchecked exception. Most functions do throw such exceptions. As they are unchecked, they are not advertised in either `throws` statements in the function signature or in the javadoc. So users must consider that as soon as they use any Orekit feature, an unchecked `OrekitException` may be thrown. In most cases, users will not attempt to recover for this but will only use them to display or log a meaningful error message. Fixes #484. Fixes 484. Thanks to Yannick Jeandroz. luc
Fix Added GPSDate class to convert back and forth with AbsoluteDate. Fixes #480. Fixes 480. luc
Fix Fix generics in EventEnablingPredicateFilter. Fixes #476. Fixes 476. evan
Fix Fixed wrong values of radec generated in AngularRaDecMeasurementCreator. Fixed wrong values of range rate generated in RangeRateMeasurementCreator. Added tests that check the values of measurements for each type of measurement. Upgraded precision in Kalman and batch least-squares OD tests that are using range-rate and radec measurements. Fixes issue #473. Fixes 473. maxime
Fix Derivatives with respect to mass are not computed anymore since several versions, some remnants of former computation remained and have now been removed. luc

Release 9.2 – 2018-05-26

Type Changes By
Fix Fixed missing eclipse detectors in field version of Solar radiation pressure. Fixes issue #366. luc
Fix Fixed issue where EventHandler.init() was never called. Fixes issue #471. evan
Fix Fixed error in relative humidity units in Marini-Murray tropospheric model. Fixes issue #352. luc
Fix Fixed DSST events detection in the osculating case. Fixes issue #398. luc
Fix Allow several TLE with same date in TLESeries. Fixes issue #411. luc
Fix Fixed compilation problems with JDK 1.8 Fixes issue #462. luc
Add Added specific attitude mode for GNSS satellites: GPS (block IIA, block IIF, block IIF), GLONASS, GALILEO, BEIDOU (GEO, IGSO, MEO). This is still considered experimental as there are some problems when Sun crosses the orbital plane during a midnight/noon turn maneuver (which is a rare event but nevertheless occurs) luc
Add Added natural order for observed measurements primarily based on chronological order, but with also value comparisons if measurements are simultaneous (which occurs a lot in GNSS), and ensuring no measurements are lost if stored in SortedSet luc
Add Added GNSS code measurements Thanks to Albert Alcarraz García. luc
Add Added GNSS phase measurements (very basic implementation for now, not usable as is) Thanks to Albert Alcarraz García. luc
Add Added loading of RINEX observation files (versions 2 and 3) Thanks to Albert Alcarraz García. luc
Fix Fixed compression table reset problem in .Z files Fixes issue #450. luc
Fix Fixed de-activation of event detection. In the propagate(startDate, endDate) function of class "AbstractIntegratedPropagator", for dates out of the time interval defined by ]startDate, endDate]. Fixes issue #449. maxime
Add Added support for loading Unix-compressed files (ending in .Z). This file compression algorithm is still widely used in the GNSS community (SP3 files, clock files, Klobuchar coefficients...) Fixes issue #447. luc
Add Added a customizable filtering capability in data loading. This allows users to insert layers providing features like custom decompression algorithms, deciphering, monitoring... Fixes issue #446. luc
Add Allow direct retrieval of rotation part without derivatives from LOFType without computing the full transform from inertial frame. luc
Fix Added a provider for time-dependent process noise in Kalman estimator. This providers allow users to set up realistic models where the process noise increases in the along track direction. Fixes issue #403. maxime
Add Increased visibility of attributes in ConstantThrustManeuver class. Added getters for all attributes. Also added an attribute name that allows the differentiation of the maneuvers, both from a parameter driver point of view and from a force model point of view. Fixes issue #426. maxime
Add Increased visibility of attributes in propagator builders. By adding getters for all attributes in NumericalPropagatorBuilder and AbstractPropagatorBuilder. Also made the method findByName in ParameterDriversList public. Fixes issue #425. maxime
Fix Ensure the correct ITRF version is used in CCSDS files, regardless of the EOP source chosen, defaulting to ITRF-2014. luc
Fix Split initial covariance matrix and process noise matrix in two methods in the covariance matrix provider interface. luc
Add Added VersionedITRF frame that allow users with needs for very high accuracy to specify which ITRF version they want, and stick to it regardless of their EOP source. Fixes issue #412. luc
Add Added an itrf-versions.conf configuration file allowing to specify which ITRF version each EOP file defines for which date luc
Add EOP history now contains the ITRF version corresponding to each EOP entry on a per date basis luc
Add Added an ITRFVersion enumerate to simplify conversion between ITRF frames, even when no direct Helmert transformation is available luc
Add Added TransformProviderUtility to reverse or combine TransformProvider instances. luc
Add Allow attitude overriding during constant-thrust maneuvers. Fixes issue #410. luc
Fix Fixed out-of-sync attitude computation near switch events in AttitudeSequence. Fixes issue #404. luc
Add Added a method to extract sub-ranges from TimeSpanMap instances. luc
Fix Fixed TLE creation with B* coefficients having single digits like 1.0e-4. Fixes issue #388. luc
Add Add FunctionalDetector. evan
Add Added handling of IGS ANTEX GNSS antenna models file. luc
Add Added support for SP3-d files. luc
Fix Improved SP3 files parsing. Some files already operationally produced by IGS Multi-GNSS Experiment (MGEX) exceed the maximum number of satellites supported by the regular SP3-c file format (which is 85 satellites) and extended the header, without updating the format version to SP3-d, which specifically raises the 85 satellites limitation. Fixes issue #376. luc
Add Allow backward propagation in batch LS orbit determination. Fixes issue #375. maxime
Add Added covariance matrix to PV measurements. Fixes issue #374. maxime
Fix Fixed issue when converting very far points (such as Sun center) to geodetic coordinates. Fixes issue #373. luc
Add Added more conversions between PV coordinates and DerivativeStructure. This simplifies for example getting the time derivative of the momentum. luc
Fix Fixed weights for angular measurements in W3B orbit determination. Fixed in test and tutorial. Fixes issue #370. maxime
Add Added frames for L1 and L2 Lagrange points, for any pair of celestial bodies. Thanks to Julio Hernanz. luc

Release 9.1 – 2017-11-26

Type Changes By
Add Added ITRF2005 and ITRF2008 to the frames recognized by OEMParser. Fixes issue #361. evan
Fix Fixed FiniteDifferencePropagatorConverter so that the scale factor is only applied once instead of twice. Fixes issue #362. evan
Fix Fixed derivatives computation in turn-around range ionospheric delay modifier. Fixes issue #369. maxime
Fix Disabled XML external resources when parsing rapid XML TDM files. Part of issue #368. evan
Fix Disabled XML external resources when parsing rapid XML EOP files. Part of issue #368. evan
Fix Fixed NPE in OrekitException when localized string is null. evan
Fix Fixed a singularity error in derivatives for perfectly circular orbits in DSST third body force model. Fixes issue #364. luc
Fix Fixed an error in array size computation for Hansen coefficients. Fixes issue #363. Thanks to Lucian Bărbulescu. luc
Add Added a way to retrieve EOP from frames by walking the frames hierarchy tree using parent frame links. This allows to retrieve EOP from topocentric frames, from Earth frames, from TOD... luc
Add Take ground stations displacements into account in orbit determination. The predefined displacement models are the direct effect of solid tides and the indirect effect of ocean loading, but users can add their own models too. luc
Add Added ground stations displacements due to ocean loading as per IERS conventions, including all the 342 tides considered in the HARDISP.F program. Computation is based on Onsala Space Observatory files in BLQ format. luc
Add Added ground points displacements due to tides as per IERS conventions. We have slightly edited one entry in table 7.3a from IERS 2010 conventions to fix a sign error identified by Dr. Hana Krásná from TU Wien (out of phase radial term for the P₁ tide, which is -0.07mm in conventions when it should be +0.07mm). This implies that our implementation may differ up to 0.14mm from other implementations. luc
Fix Avoid intermixed ChangeForwarder instances calling each other. Fixes issue #360. luc
Fix Modified the way the propagation parameter drivers are mapped in the Jacobian matrix in class "Model". Added a test for multi-sat orbit determination with estimated propagation parameters (µ and SRP coefficients). Fixes issue #354. maxime
Fix Added a convenience method to retrieve covariance matrix in physical units in orbit determination. Fixes issue #353. luc
Fix Fixed two errors in Marini-Murray model implementation. Fixes issue #352. Thanks to Rongwang Li. luc
Fix Prevent duplicated Newtonian attraction in FieldNumericalPropagator. Fixes issue #350. luc
Fix Copy additional states through impulse maneuvers. Fixes issue #349. luc
Fix Removed unused construction parameters in ShiftingTransformProvider and InterpolatingTransformProvider. Fixes issue #356. luc
Fix Fixed wrong inertial frame for Earth retrieved from CelestialBodyFactory. Fixes issue #355. luc
Update Use a git-flow like branching workflow, with a develop branch for bleeding-edge development, and master branch for stable published versions. luc

Release 9.0.1 – 2017-11-01

Type Changes By
Fix Disabled XML external resources when parsing rapid XML TDM files. Part of issue #368. evan
Fix Disabled XML external resources when parsing rapid XML EOP files. Part of issue #368. evan

Release 9.0 – 2017-07-26

Type Changes By
Add Added on-board antenna phase center effect on inter-satellites range measurements. luc
Add Added on-board antenna phase center effect on turn-around range measurements. luc
Add Added on-board antenna phase center effect on range measurements. luc
Update Moved Bias and OutlierFilter classes together with the other estimation modifiers. luc
Update Forced states derivatives to be dimension 6 rather than either 6 or 7. The additional mass was not really useful, it was intended for maneuvers calibration, but in fact during maneuver calibration we adjust either flow rate or specific impulse but not directly mass itself. luc
Add Added parametric acceleration force models, where acceleration amplitude is a simple parametric function. Acceleration direction is fixed in either inertial frame, or spacecraft frame, or in a dedicated attitude frame overriding spacecraft attitude. The latter could for example be used to model solar arrays orientation if the force is related to solar arrays). Two predefined implementations are provided, one for polynomial amplitude and one for harmonic amplitude. Users can add other cases at will. This allows for example to model the infamous GPS Y-bias, which is thought to be related to a radiator thermal radiation. luc
Remove Removed obsolete Cunningham and Droziner attraction models. These models have been superseded by Holmes-Featherstone attraction model available since 2013 in Orekit. luc
Update Take orbit to attitude coupling into account in the partial derivatives for all attitude modes. Fixes issue #200. luc
Update Merged FieldAttitudeProvider into AttitudeProvider. luc
Update Simplified ForceModel interface. It does not require dedicated methods anymore for computing derivatives with respect to either state or parameters. luc
Remove Removed Jacchia-Bowman 2006 now completely superseded by Jacchia-Bowman 2008. luc
Update Make Jacchia-Bowman 2008 thread-safe and field-aware. luc
Update Make NRL MSISE 2000 thread-safe and field-aware. luc
Update Make DTM2000 thread-safe and field-aware. luc
Add Added support for ITRF 2014. As of mid-2017, depending on the source of EOP, the ITRF retrieved using FramesFactory.getITRF will be either ITRF-2014 (if using EOP 14 C04) or ITRF-2008 (if using EOP 08 C04, bulletins A, bulletins B, or finals .all). If another ITRF is needed, it can be built using HelmertTransformation. luc
Remove Removed classes and methods deprecated in 8.0. luc
Add Added coordinates of all intermediate participants in estimated measurements. This will allow estimation modifiers to get important vectors (sighting directions for example) without recomputing everything from the states. luc
Add Added a multi-satellites orbit determination feature. luc
Add Added one-way and two-way inter-satellites range measurements. luc
Fix Avoid clash with Python reserved keywords and, or and not in BooleanDetector. Thanks to Glenn Ehrlich. luc
Add Added right ascension and declination angular measurements. Thanks to Maxime Journot. luc
Add Added a parallel propagation feature for addressing multi-satellites needs. Propagators of different types (analytical, semi-analytical, numerical, ephemerides ...) can be mixed at will. luc
Fix Fixed Gaussian quadrature inconsistent with DSST theory when orbit derivatives are present. Fixes issue #345. luc
Fix Fixed infinite recursion when attempting two orbit determinations in row. Fixes issue #347. luc
Add Added Danish translations. Fixes issue #346. Thanks to Lars Næsbye Christensen. luc
Add Allow estimation of polar motion (offset plus linear drift) and prime meridian correction (offset plus linear drift) in orbit determination. This is essentially equivalent to add correction to the xp, yp, dtu1 and lod Earth Orientation Parameters. luc
Add Parameters in orbit determination can be associated with a per-parameter reference date. luc
Fix Fixed wrong generation of FieldTransforms by time stamped cache, when generation happens backward in time. Fixes issue #344. luc
Update Improved computation ground station parameters derivatives in orbit determination. luc
Update Use automatic differentiation for all orbit determination measurements types. This allows simpler evolutions to estimate parameters for which derivatives are not straightforward to compute; some of these parameters are needed for precise orbit determination. luc
Add Added parsing of University of Bern Astronomical Institute files for α and β Klobuchar coefficients. Thanks to Maxime Journot. luc
Add Added parsing of CCSDS TDM (Tracking Data Messages) files, both text and XML. Thanks to Maxime Journot. luc
Fix Fixed lighting ratio in solar radiation pressure for interplanetary trajectories. Thanks to Florentin-Alin Butu. luc
Fix Allow small extrapolation before and after ephemeris. Fixes issue #261. hank
Fix Fixed missing attitude in DSST mean/osculating conversions. Fixes issue #339. luc
Fix Optionally take lift component of the drag force into account in BoxAndSolarArraySpacecraft. Fixes issue #324. luc
Fix Change visibility of getTargetPV in GroundPointing to public so it can be subclassed by users in other packages. Fixes issue #341. Thanks to James Schatzman. luc
Update Deprecated the TLESeries class. The file format used was considered to be too specific and the API not really well designed. Users are encouraged to use their own parser for series of TLE. luc
Fix Removed dead code in deep SDP4 propagation model. Fixes issue #342. Thanks to Gavin Eadie. luc
Fix Added a way to prefix parameters names when estimating several maneuvers in one orbit determination. Fixes issue #338. Thanks to Quentin Rhone. luc
Fix Removed unneeded reset at end of sample creation in propagators conversion. Fixes issue #335. Thanks to Pascal Parraud. luc
Fix Fixed wrong angle wrapping computation in IodLambert. Thanks to Michiel Zittersteijn. luc
Fix Fixed boundaries of thrust parameter driver in ConstantThrustManeuver. Fixes issue #327. Thanks to Lucian Barbulescu. luc
Fix Allow some old version of TLE format to be parsed correctly. Fixes issue #330. Thanks to Hao Peng. luc
Fix Fixed ArrayOutOfBoundException appearing when converting dates at past or future infinity to string. Fixes issue #340. Thanks to James Schatzman. luc
Fix Extended range of DateComponents to allow the full integer range as days offset from J2000. luc
Fix Prevent NaN appearing in UTC-TAI offsets for dates at past or future infinity. luc
Fix Prevent central attraction coefficient from being adjusted in TLEPropagatorBuilder, as it is specified by the TLE theory. Fixes issue #313. luc
Fix Added a flag to prevent resetting initial state at the end of integrating propagators. Fixes issue #251. Thanks to Hao Peng. luc
Fix Tutorials now all rely on orekit-data being in user home folder. Fixes issue #245. luc
Fix Apply delay corresponding to h = 0 when station altitude is below 0 in SaastamoinenModel. Fixes issue #202. luc
Add Added derivatives to orbits computed from non-Keplerian models, and use these derivatives when available. This improves shiftedBy() accuracy, and as a consequence also the accuracy of EventShifter. As example, when comparing shiftedBy and numerical model on a low Earth Sun Synchronous Orbit, with a 20x20 gravity field, Sun and Moon third bodies attractions, drag and solar radiation pressure, shifted position errors without derivatives are 18m after 60s, 72m after 120s, 447m after 300s; 1601m after 600s and 3141m after 900s, whereas the shifted position errors with derivatives are 1.1m after 60s, 9.1m after 120s, 140m after 300s; 1067m after 600s and 3307m after 900s. luc
Fix Preserved non-Keplerian acceleration in spacecraft state when computed from numerical propagator. Fixes issue #183. luc
Fix Fixed accuracy of FieldAbsoluteDate. Fixes issue #337. luc
Fix Fixed eccentricity computation for hyperbolic Cartesian orbits. Fixes issue #336. luc
Fix Fixed an array out of bounds error in DSST zonal short periodics terms. luc
Fix Fixed a factor two error in tropospheric and ionospheric modifiers. Thanks to Maxime Journot. luc
Add Added turn-around (four-way range) measurements to orbit determination. Thanks to Maxime Journot. luc
Update Updated dependency to Hipparchus 1.1, released on 2017, March 16th. Fixes issue #329. luc
Add Added simple Boolean logic with EventDetectors. evan
Add Added getGMSTRateFunction to IEEEConventions to compute accurately Earth rotation rate. luc
Update OneAxisEllipsoid can now transform FieldGeodeticPoint from any field and not only DerivativeStructure. luc
Add Completed field-based Cartesian and angular coordinates with missing features that were only in the double based versions. luc
Update Use DerivativeStructure to compute derivatives for Range measurements. Thanks to Maxime Journot. luc
Update Improved conversion speed from Cartesian coordinates to geodetic coordinates by about 15%. luc
Add Replace OrbitFile interface with EphemerisFile, adding support for multiple ephemeris segments and the capability to create a propagator from an ephemeris. evan
Add Added EphemerisFileWriter interface for serializing EphemerisFiles to external file formats, and implemented the OEMWriter for CCSDS OEM file export support. hank
Add Added OrekitEphemerisFile object for encapsulating propagator outputs into an EphemerisFile which can then be exported with EphemerisFileWriter classes. hank
Fix Fixed thread-safety issues in DTM2000 model. Fixes issue #258. luc
Add Added JB2008 atmosphere model. pascal
Add Added NRLMSISE-00 atmosphere model. pascal
Fix Fixed outliers configuration parsing in orbit determination tutorial and test. Fixes issue #249 Thanks to Hao Peng. luc
Fix Greatly improved orbit determination speed when a lot of measurements are used (several thousands). luc
Fix Fixed ant build script to run Junit tests. Fixes issue #246. luc
Update Added a protection against zero scale factors for parameters drivers. luc
Fix Fix AbsoluteDate.createMJDDate when the time scale is UTC and the date is during a leap second. Fixes issue #247 evan
Fix Fixed ant build script to retrieve Hipparchus dependencies correctly. Fixes issue #244. luc

Release 8.0.1 – 2017-11-01

Type Changes By
Fix Disabled XML external resources when parsing rapid XML EOP files. Part of issue #368. evan

Release 8.0 – 2016-06-30

Type Changes By
Fix Improved accuracy of orbits Jacobians. Fixes issue #243. Thanks to Andrea Antolino. luc
Update Deprecated PropagationException, replaced by OrekitException. luc
Fix Fix bug in restarting propagation with a ConstantThrustManeuver with an updated initial condition. Thanks to Greg Carbott. evan
Fix Fixed a display error for dates less than 0.5ms before a leap second. luc
Update Use ParameterDriver with scale factor for both orbit determination, conversion, and partial derivatives computation when finite differences are needed. luc
Fix Apply impulse maneuver correctly in backward propagation. Fixes issue #241. luc
Add Added angular separation detector. This is typically used to check separation between spacecraft and the Sun as seen from a ground station, to avoid interferences or damage. luc
Update All class and methods that were deprecated in the 7.X series have been removed. luc
Update Allow ICGEM gravity field reader to parse non-Earth gravity fields. luc
Add Add methods for a integration step handler to tell if the start/end of the step is interpolated due to event detection. Also added ability to add a step handler in ephemeris mode. evan
Fix Switch to a continuous Ap to Kp geomagnetic index conversion. Fixes issue #240. evan
Add Added computation of Dilution Of Precision (DOP). pascal
Add Added a specialized propagator for GPS spacecrafts, based on SEM or YUMA files. pascal
Update Ported the new Hipparchus event handling algorithm to Orekit. This improves robustness in corner cases, typically when different event detectors triggers at very close times and one of them resets the state such that it affects the other detectors. luc
Update Simplified step interpolators API, replacing the setDate/getState pair with an interpolated state getter taking a date argument. luc
Update Switched from Apache Commons Math to Hipparchus library. luc
Add Added an orbit determination feature! luc
Add Add EventHandler to record all events. evan
Fix Fix exception during event detection using NumericalPropagator.getGeneratedEphemeris() near the start/end date of the generated ephemeris. Fixes issue #238 evan

Release 7.2.1 – 2017-11-01

Type Changes By
Fix Disabled XML external resources when parsing rapid XML EOP files. Part of issue #368. evan

Release 7.2 – 2016-04-05

Type Changes By
Add Added GLONASS and QZSS time scales. These time scales my be used in SP3-c files. luc
Add Added parsing and displaying of local time according to ISO-8601 standard. luc
Fix Added some protections against malformed SP3 files. luc
Fix Fixed Newcomb operators generation in DSST for high degree gravity fields. Fixes issue #237 luc
Update Improved tuning of DSST tesseral force models. Users can now tune max degree, max eccentricity power and max frequency in mean longitude for short period terms, as well as for m-daily terms. luc
Update Improved tuning of DSST zonal force models. Users can now tune max degree, max eccentricity power and max frequency in true longitude for short period terms. luc
Fix Fixed wrong continuous maneuver handling in backward propagation. Fixes issue #236 luc

Release 7.1 – 2016-02-07

Type Changes By
Add Added tropospheric refraction correction angle following Recommendation ITU-R P.834-7. thierry
Add Added a way to configure max degree/order for short periods separately from the mean elements settings in DSST tutorial. luc
Fix Fixed limitation to degree 12 on zonal short periods, degree/order 8 on tesseral short periods, and degree/order 12 for tesseral m-dailies in DSST. luc
Fix Fixed wrong orbit type in propagator conversion. The type specified by user was ignored when computing variable stepsize integrator tolerances. luc
Add Set up three different implementations of radiation pressure coefficients, using either a single reflection coefficient, or a pair of absorption and specular reflection coefficients using the classical convention about specular reflection, or a pair of absorption and specular reflection coefficients using the legacy convention from the 1995 CNES book. Fixes issue #170 luc
Fix Fixed wrong latitude normalization in FieldGeodeticPoint. luc
Fix Fixed blanks handling in CCSDS ODM files. Fixes issue #232 luc
Fix Fixed FramesFactory.getNonInterpolatingTransform working only in one direction. Fixes issue #231 luc
Add Added Field of View based event detector for ground based sensors. evan
Add Added a getFootprint method to FieldOfView for projecting Field Of View to ground, taking limb of ellipsoid into account (including flatness) if Field Of View skims over horizon. luc
Add Added a pointOnLimb method to Ellipsoid for computing points that lie on the limb as seen from an external observer. luc
Add Added an isInside predicate method to Ellipsoid for checking points location. luc
Fix Support parsing lowercase values in CCSDS orbit data messages. Fixes issue #230 evan
Add Added a generic FieldOfViewDetector that can handle any Field Of View shape. The DihedralFieldOfViewDetector is deprecated, but the CircularFieldOfViewDetector which corresponds to a common case that can be computed more accurately and faster than the new generic detector is preserved. luc
Add Added a FieldOfView class to model Fields Of View with any shape. luc
Add Added a FootprintOverlapDetector which is triggered when a sensor Field Of View (any shape, even split in non-connected parts or containing holes) overlaps a geographic zone, which can be non-convex, split in different sub-zones, have holes, contain the pole... Fixes issue #216 luc
Fix Added a protection against low altitudes in JB2006 model. Fixes issue #214 Thanks to Carlos Casas. luc
Fix Enlarged access to SGP4 and DeepSDP4 propagators. Fixes issue #207 Thanks to Petrus Hyvönen. luc
Fix Fixed covariance matrices units when read from CCSDS ODM files. The data returned at API level are now consistent with SI units, instead of being kilometer-based. Fixes issue #217 luc
Fix Fixed DSST ephemeris generation. Fixes issue #222 luc
Update Vastly improved DSS short period terms interpolation. luc
Fix Use new Rotation API from Apache Commons Math 3.6. This API allows to use both vector operator convention and frames transform convention naturally. This is useful when axis/angles are involved, or when composing rotations. This probably fixes one of the oldest stumbling blocks for Orekit users. luc
Fix Fixed state partial derivatives in drag force model. Fixes issue #229 luc
Fix Fixed incorrect density in DTM2000 when the input position is not in ECI or ECEF. Fixes issue #228 evan
Add Added capability to use a single EventHandler with multiple types of EventDetectors. evan
Add Added a way to customize interpolation grid in DSST, either using a fixed number of points or a maximum time gap between points, for each mean elements integration step. luc
Add Added TabulatedLofOffset for attitudes defined by tabulating rotations between Local Orbital Frame and spacecraft frame. Fixes issue #227 luc
Fix Fixed wrong ephemeris generation for analytical propagators with maneuvers. Fixes issue #224. luc
Fix Fixed date offset by one second for TLE built from their components, if a leap second was introduced earlier in the same year. Fixes issue #225. luc
Fix Allow parsing TLE with non-unclassified modifier. luc
Add As a side effect of fixing issue #223, KeplerianPropagator and Eckstein-Hechler propagator are now serializable. luc
Fix Fixed missing additional states handling in ephemeris propagators created from analytical propagators. luc
Fix Fixed NPE and serialization issues in ephemeris propagators created from analytical propagators. Fixes issue #223. luc
Fix Fixed time scale issues in JPL ephemerides and IAU pole models. The time used for internal computation should be TDB, not TT. luc
Fix Fixed an issue with backward propagation on analytical propagator. During first step, the analytical interpolator wrongly considered the propagation was forward. luc
Add Added a way to retrieve short period coefficients from DSST as spacecraft state additional parameters. This is mainly intended for test and validation purposes. luc
Fix Prevent small overshoots of step limits in event detection. Fixes issue #218. luc
Fix Handle string conversion of dates properly for dates less than 1 millisecond before midnight (they should not appear as second 60.0 of previous minute but should rather wrap around to next minute). Partly fixes issue #218. luc
Fix Enforce Lexicographical order in DirectoryCrawler, to ensure reproducible loading. Before this changes, some tests could fail in one computer while succeeding in another computer as we use a mix of DE-4xx files, some having a different EMRAT (81.30056907419062 for DE-431, 81.30056 for DE-405 and DE-406). luc
Add Added EventEnablingPredicateFilter to filter event based on an user-provided enabling predicate function. This allow for example to dynamically turn some events on and off during propagation or to set up some elaborate logic like triggering on elevation first time derivative (i.e. one elevation maximum) but only when elevation itself is above some threshold. luc
Update Renamed EventFilter into EventSlopeFilter. luc
Add Added elevation extremum event detector. luc
Fix Fixed ellipsoid tessellation with large tolerances. Fixes issue #215. luc
Fix Fixed numerical precision issues for start/end dates of generated ephemerides. Fixes issues #210 evan
Add Added anomaly, latitude argument, or longitude argument crossings detector, either true, mean or eccentric. Fixes issue #213. luc
Add Added latitude and longitude extremum detector. luc
Add Added latitude and longitude crossing detector. luc
Add Added a way to convert between PVA and geodetic points with time derivatives. luc
Add Allow truncation of tiles in ellipsoid tessellation. luc
Add Propagator builders can now be configured to accept any orbit types and any position angle types in the input flat array. Fixes issue #208. luc
Add Added smooth attitude transitions in attitudes sequences, with derivatives continuity at both endpoints of the transition that can be forced to match rotation, rotation rate and rotation acceleration. Fixes issue #6. luc
Fix Fixed attitudes sequence behavior in backward propagation. Fixes issue #206. luc
Add Added factory methods to create AbsoluteDate instances from MJD or JD. Fixes issue #193. luc
Fix Fixed wrong attitude switches when an event occurs but the active attitude mode is not the one it relates to. Fixes issue #190. Thanks to Joris Olympio. luc
Add Added a way to be notified when attitude switches occur. Fixes issue #190. Thanks to Joris Olympio. luc
Fix Ensure Keplerian propagator uses the specified mu and not only the one from the initial orbit. Fixes issue #184. luc
Update Improved frames transforms efficiency for various Earth frames. luc
Fix Specify inertial frame to compute orbital velocity for ground pointing laws. Fixes issue #115. luc
Fix Activated two commented-out tests for DTM2000, after ensuring we get the same results as the original fortran implementation. Fixes issue #204. luc
Fix Fixed resetting of SecularAndHarmonic fitting. Fixes issue #205. Thanks to Javier Martin Avila. luc
Add Added a way to sample a zone on an ellipsoid as grids of inside points. Fixes issue #201. luc
Fix Fixed an event detection problem when two really separate events occur within the event detector convergence threshold. Fixes issue #203. luc
Fix Added protections against TLE parameters too large to fit in the format. Fixes issue #77. luc
Fix Allowed slightly malformed TLE to be parsed. Fixes issue #196. luc
Fix Fixed overlapping issue in ellipsoid tessellation, typically for independent zones (like islands) close together. Fixes issue #195. luc
Add Added support to load WMM coefficients from the official model file provided by NOAA. tn
Fix Fixed javadoc of method "GeoMagneticField#calculateField(...)": the provided altitude is expected to be a height above the WGS84 ellipsoid. tn
Update Added a simpler interface for creating custom UTC-TAI offsets loaders. luc
Add Added support for USNO tai-utc.dat file, enabled by default, in addition to the legacy support for IERS UTC-TAI.history file which is still supported and also enabled by default. luc
Add Added a way to load TAI-UTC data from Bulletin A. Using this feature is however NOT recommended as there are known issues in TAI-UTC data in some bulletin A (for example bulletina-xix-001.txt from 2006-01-05 has a wrong year for last leap second and bulletina-xxi-053.txt from 2008-12-31 has an off by one value for TAI-UTC on MJD 54832). This feature is therefore not enabled by default, and users wishing to rely on it should do it carefully and take their own responsibilities. luc
Add Added ellipsoid tessellation, with tiles either oriented along track (ascending or descending) or at constant azimuth. luc
Fix Added customization of EOP continuity check threshold. Fixes issue #194. luc
Add Added geoid model based on gravity field. Fixes issue #192. evan
Fix Added automatic loading of Marshall Solar Activity Future Estimation data. Fixes issue #191. luc
Update Simplified Cartesian to ellipsoidal coordinates transform and greatly improved its performances. luc
Fix Fixed target point in BodyCenterPointing attitude. Fixes issue #100. luc

Release 7.0 – 2015-01-11

Type Changes By
Add Added bilinear interpolator and use it on Saastamoinen model. Implements feature #182. hankg
Update Removed old parts that were deprecated in previous versions. luc
Update Updated dependency to Apache Commons Math 3.4, released on 2014-12-26. luc
Fix Fixed null vector normalization when attempting to project to ground a point already on ground. Fixes issue #181. luc
Add Added Romanian localization for error messages. Thanks to Lucian Barbulescu. luc
Fix Fixed velocity inconsistency in orbit generation in Eckstein-Hechler propagator. The Eckstein-Hechler propagator now generated Cartesian orbits, with velocity computed to be fully consistent with model evolution. A side effect is that if users rebuild circular parameters from the generated orbits, they will generally not math exactly the input circular parameters (but position will match exactly). Fixes issue #180. luc
Fix Improved acceleration output in Eckstein-Hechler model. luc
Add Added projection of moving point (i.e. position and derivatives too) to ground surface. luc
Add Added a general 3 axes ellipsoid class, including a feature to compute any plane section (which result in a 2D ellipse). luc
Add Added support for IERS bulletin A (rapid service and prediction) luc
Fix Fixed various issues in geomagnetic fields models: GeoMagneticField.getDecimalYear() returned a slightly wrong result: e.g. for 1/1/2005 returned 2005.0020 instead of 2005.0, GeoMagneticFieldFactory.getModel() returned wrong interpolation near models validity endpoints, GeoMagneticField.transformModel(double) method did not check year validity. Added more unit tests and adapted existing tests for IGRF/WMM with sample values / results as they have changed slightly. Fixes issue #178. tn
Fix Fixed closest TLE search. When filtering first from satellite ID and then extracting closest date, the returned satellite was sometime wrong. Thanks to Patrice Mathieu. luc
Add Allow attitude overriding during impulsive maneuvers. Fixes issue #176. Thanks to Hank Grabowski. luc
Add Added general relativity force model. evan
Add added Greek localization for error messages. Thanks to Ioanna Stypsanelli. luc
Fix Fixed incorrect partial derivatives for force models that depend on satellite velocity. Fixes #174. evan
Fix Fixed incorrect parameters set in NumericalPropagatorBuilder. Fixes #175. evan
Update Significantly reduced size of various serialized objects. luc
Update PVCoordinatesProvider now produces time-stamped position-velocities. luc
Update Tabulated attitude provider can be built directly from time-stamped angular coordinates lists, in addition to attitudes lists. luc
Add Added time-stamped versions of position-velocity and angular coordinates. luc
Fix Fixed wrong rotation interpolation for rotations near π. Fixes issue #173. Thanks to Daniel Aguilar Taboada. luc
Update Updated dependency to Apache Commons Math 3.3. luc
Update Added short periodics for DSST propagation. Thanks to Lucian Barbulescu, Nicolas Bernard. luc
Add Added a GeographicZoneDetector event detector for complex geographic zones traversal. Fixes issue #163. luc
Fix Add Ecliptic frame. Agrees with JPL ephemerides to within 0.5 arcsec. Issue #166. evan
Fix Fix cache exception when propagating backwards with an interpolated gravity force model. Fixes issue #169. evan
Fix Fixed parsing of dates very far in the future. Fixes issue #171. luc
Fix Trigger an exception when attempting to interpolate attitudes without rotation rate using only one data point. luc
Fix Fixed SpacecraftState date mismatch exception with some attitude providers. evan
Fix Fixed wrong scaling in JPL ephemeris when retrieving coordinates in a frame that is not the defining frame of the celestial body. Fixes issue #165. luc
Update Prepare generation of either mean or osculating orbits by DSST propagator. The short periodics terms are not computed yet, but there is ongoing work to add them. Thanks to Lucian Barbulescu. luc
Update Avoid recomputing Chi and Chi^2 in Hansen coefficients for tesseral. Thanks to Lucian Barbulescu. luc
Update Added better handling of Hansen kernel computation through use of PolynomialFunction. Thanks to Nicolas Bernard. luc
Update Compute Hansen coefficients using linear transformation. Thanks to Petre Bazavan. luc
Fix Fixed a non-bracketing exception in event detection, in some rare cases of noisy g function. Fixes issue #160. luc
Fix Fixed a missing reset of resonant tesseral terms in DSST propagation. Fixes issue #159. luc
Fix Improved default max check interval for NodeDetector, so it handles correctly highly eccentric orbits. Fixes issue #158. luc

Release 6.1 – 2013-12-13

Type Changes By
Fix Reduced number of calls to the g function in event detectors. Fixes issue #108. luc
Fix Fixed a spurious backward propagation. Fixes issue #107. luc
Fix Improved error detection for numerical and DSST propagation for cases where user attempts to compute integrator tolerances with an orbit for which Jacobian is singular (for example equatorial orbit while using Keplerian representation). Fixes issue #157. luc
Add Added a method to get the number or calls to getNeighbors in the generic time stamped cache, to allow performing measurements while tuning the cache. luc
Add Added high degree ocean load deformation coefficients computed by Pascal Gégout (CNRS / UMR5563 - GET). luc
Add Time scales are now serializable. luc
Add Improved DSST tesseral computation efficiency by caching Jacobi polynomials. Thanks to Nicolas Bernard. luc
Fix Fixed yaw steering attitude law, which didn't project spacecraft velocity correctly. Fixes issue #156. Thanks to Daniel Aguilar Taboada. luc
Add Added a way to set the maximum number of iterations for events detection. Fixes issue #155. luc
Add Added an attitude provider from tabulated attitudes. Fixes issue #154. luc
Add Improved test coverage. Fixes issue #153. Thanks to Hank Grabowski. luc
Add Merged all elevation detectors into one. The new detector supports all features from the previous (and now deprecated) ApparentElevationDetector and GroundMaskElevationDetector. Fixes issue #144. Thanks to Hank Grabowski. luc
Add Added a DetectorEventHandler interface aimed at handling only the event occurrence part in propagation. This allows to separate the event detection itself (which is declared by the EventDetector interface) from the action to perform once the event has been detected. This also allows to avoid subclassing of events, which was cumbersome. It also allows to share a single handler for several events. The previous behavior with eventOccurred declared at detector level and subclassing is still available but is deprecated and will be removed in the next major release. Thanks to Hank Grabowski. luc
Fix Fixed an indexing error in Harris-Priester model. Fixes issue #152. Thanks to Christophe Le Bris. luc
Add Added a new force model for ocean tides in numerical propagation, including pole tides. Fixes issue #11. luc
Fix Fixed conversion from position-velocity to Keplerian, when the orbit is perfectly equatorial. Fixes issue #151. Thanks to Lucian Barbulescu. luc
Add Added a new force model for solid tides in numerical propagation, including pole tides. Fixes issue #10. luc
Add Added a way to select IERS conventions for non-rotating origin based ITRF. luc
Update Greatly improved accuracy of celestial/terrestrial frames transforms. We are now at sub-micro arcsecond level for IERS 2003/2010, both with equinox based and Non-Rotating Origin, at a sub-milli arcseconds for IERS 1996, both with equinox based and Non-Rotating Origin. luc
Fix Fixed missing nutation correction in Equation Of Equinoxes. Fixes issue #150. luc
Fix Fixed rate for TCB time scale. luc
Add Added new definition of astronomical unit from IAU-2012 resolution B2. luc
Fix Fixed Date/Time split problem when date is a few femto-seconds before the end of the day. Fixes issue #149. luc
Fix Fixed overflow problem in TimeComponents. Fixes issue #148. luc
Update Separate parsing from using Poisson series. luc
Add Added support for parsing CCSDS ODM files (OPM, OMM and OEM). Thanks to Steven Ports. luc
Update Flattened ITRF frames tree so all supported ITRF realizations (2005, 2000, 97, 93) share the same parent ITRF2008. Previously, the tree was 2008 <- 2005 <- 2000 <- {93,97} and the reference dates for Helmert transforms were all different. We now use the parameters provided at epoch 2000.0 and with respect to ITRF2008 at http://itrf.ensg.ign.fr/doc_ITRF/Transfo-ITRF2008_ITRFs.txt. luc
Fix Fixed azimuth parameter in the TopocentricFrame.pointAtDistance method. Fixes issue #145. luc
Fix Fixed location of JAVA_EPOCH. As we now take the linear models between UTC and TAI that were used between 1961 and 1972, we have to consider the offset that was in effect on 1970-01-01 and which was precisely 8.000082s. Fixes issue #142. Thanks to Matt Edwards. luc
Update Vastly improved performances for Poisson series computations. Poisson series are often evaluated several components together (x/y/s in new non-rotating paradigm, ∆ψ/∆ε in old equinox paradigm for example). As the components are built from a common model, they share many nutation terms. We now evaluate these shared terms only once, as we evaluate the components in parallel thanks to a preliminary "compilation" phase performed when the Poisson series are set up. This dramatically improves speed: on a test case based on x/y/s evaluations over a one year time span without any caching, we noticed a more than two-fold speedup: mean computation time reduced from 6.75 seconds (standard deviation 0.49s) to 3.07 seconds (standard deviation 0.04s), so it was a 54.5% reduction in mean computation time. At the same time, accuracy was also improved thanks to the Møller-Knuth TwoSum algorithm without branching now used for summing all series terms. luc
Fix When UT1 time scale is used, it is now possible to choose which Earth Orientation Parameters history to use (formerly, only EOP compatible with IAU-2000/2006 was used, even for systems relying only on older conventions). luc
Add Added Greenwich Mean Sidereal Time and Greenwich Apparent Sidereal Time to all supported IERS conventions (i.e. IERS 1996, IERS 2003 and IERS 2010). luc
Add Classical equinox-based paradigm and new non-rotating origin paradigm for inertial and terrestrial frames are now supported with all IERS conventions. This means it is now possible to use MOD/TOD/GTOD with the recent precession/nutation models from recent conventions, and it is also possible to use CIRF/TIRF/ITRF with the older precession nutation models from ancient conventions. Of course, all these conventions and frames can be used at the same time, which is very important to support legacy systems and to convert coordinates between older and newer reference systems. luc
Add Added IERS 1996 in the list of supported IERS conventions. luc
Add Added factory methods to compute arbitrary Julian Epochs (J1900.0, J2000.0 ...) and Besselian Epochs (B1900.0, B1950.0 ...) that are used as reference dates in some models and frames. luc
Fix Fixed non-bracketing exception while converting Cartesian points very close to equator into geodetic coordinates. Fixes issue #141. luc
Add Added getAngularVelocity() to PVCoordinates. evan
Add Added back serialization for some ephemerides produced by integration-based propagators. The ephemerides produced by NumericalPropagator are always serializable, and the ones produced by DSSTPropagator may be serializable or not depending on the force models used. luc
Fix Fixed missing events detection when two events occurred at exactly the same time using an analytical propagator (like generated ephemerides for example). Fixes issue #138. luc
Fix Fixed data loading from zip/jar. A more streamlined architecture has been set up, and each zip entry now uses its own input stream. Closing the stream triggers the switch to the next entry, and duplicate close are handled gracefully. Fixes issue #139. luc
Fix Improved event bracketing by backporting changes made in Apache Commons Math (may fix issues #110 and #136, but we cannot be sure as neither issues were reproducible even before this change...). luc
Fix Fixed GTOD and Veis frame that did apply UT1-UTC correction when they should not (fixes issue #131). luc
Fix Completely rewrote conversion from Cartesian to geodetic coordinates to improve numerical stability for very far points (typically when computing coordinates of Sun). Fixes issue #137. luc

Release 6.0 – 2013-04-23

Type Changes By
Fix Fixed conversion of mean anomaly to hyperbolic eccentric anomaly (fixes issue #135). pascal
Add Extracted fundamental nutation arguments from CIRF frame. This allows both reuse of the arguments for other computations (typically tides), and also allows to use convention-dependent arguments (they are similar for IERS conventions 2003 and 2010, but have changed before and may change in the future). luc
Fix Fixed event g function correction when starting exactly at 0 with a backward propagation (fixes issue #125). luc
Update Error messages properties are now loaded directly in UTF-8. luc
Add Added a way to know which tide system is used in gravity fields (zero-tide, tide-free or unknown). luc
Add Added orphan frame, i.e. trees that are not yet connected to the main frame tree but attached later on. This allows building frame trees from leaf to root. This change fixes feature request #98. luc
Add Added a way to filter only increasing or decreasing events. The filtering occurs a priori, i.e. the filtered out events do not trigger a search. Only the interesting events are searched for and contribute to computation time. This change fixes feature request #104. luc
Add Added a semianalytical propagator based on the Draper Semianalytic Satellite Theory. The DSST accounts for all significant perturbations (central body including tesseral harmonics, third-body, drag, solar radiation pressure) and is applicable to all orbit classes. To begin with, only mean elements propagation is available. pascal
Update Greatly improved performance of time-stamped caches for data that is read only once (like UTC leap seconds history or EOP). evan
Add Additional states can now be used in events. Note that waiting for the fix for issue MATH-965 in Apache Commons Math to be been officially published, a workaround has been used in Orekit. This workaround implies that events that should be triggered based on additional equations for integration-based propagator will be less accurate on the first step (full accuracy is recovered once the first step is accepted). So in these corner cases, users are advised to start propagation at least one step before the first event (or to use a version of Apache Commons Math that includes the fix, which has been added to the development version as of r1465654). This change fixes feature request #134. luc
Add AdditionalStateProviders can now be used for all propagators, not only analytical ones. Note that when both state providers and additional differential equations are used in an integration-based propagator, they must used different states names. A state can only be handled by one type at a time, either already integrated or integrated by the propagator (fixes feature request #133). luc
Add Added a way to store user data into SpacecraftState. User data are simply double arrays associated to a name. They are handled properly by interpolation, event handlers, ephemerides and adapter propagators. Note that since SpacecraftState instances are immutable, adding states generates a new instance, using a fluent API principle (fixes feature request #132). luc
Add Added a way to retrieve all additional states at once from a step interpolator. luc
Fix Fixed wrong orientation for ICRF and all IAU pole and prime meridians (a few tens milli-arcseconds). This error mainly induced an error in celestial bodies directions, including the Sun which is used in many places in Orekit (fixes bug #130). luc
Add Added support for IERS conventions 2010. Note that Orekit still also support conventions 2003 in addition to conventions 2010. However, as IERS does not provide anymore data to link TIRF 2003 with ITRF, ITRF based on 2003 convention is not available. ITRF can only be based on either 2010 conventions for CIO-based paradigm or on 1996 conventions for equinox-based paradigm. luc
Add Atmosphere models now provide their central body frame. luc
Add Added versions of angular coordinates and position-velocity that use any field instead of double (classes FieldAngularCoordinates and FieldPVCoordinates). This allows to compute derivatives of these quantities with respect to any number of variables and to any order (using DerivativeStructure for the field elements), or to compute at arbitrary precision (using Dfp for the field elements). Regular transforms as produced by frames handle these objects properly and compute partial derivatives for them. luc
Update Converted Cunningham and Droziner force models to use the API of the new partial derivatives framework, despite they STILL USE finite differences. These two force models are now considered obsolete, they have been largely superseded by the Holmes-Featherstone model, which can be used for much larger degrees (Cunnigham and Droziner use un-normalized equations and coefficients which underflow at about degree 90), which already provides analytical derivatives, and which is twice faster. It was therefore considered a waste of time to develop analytical derivatives for them. As a consequence, they use finite differences to compute their derivatives, which adds another huge slow down factor when derivatives are requested. So users are strongly recommended to avoid these models when partial derivatives are desired... luc
Add Added analytical computation of partial derivatives for third-body attraction. luc
Add Added analytical computation of partial derivatives for constant thrust maneuvers. luc
Update Converted Newtonian force model to use the new partial derivatives framework. luc
Update Converted Holmes-Featherstone force model to use the new partial derivatives framework. luc
Add Added analytical computation of partial derivatives for surface forces (drag and radiation pressure) for all supported spacecraft body shapes. luc
Update Streamlined the force models partial derivatives computation for numerical propagation. It is now far simpler to compute analytically the derivatives with respect to state and with respect to force models specific parameters, thanks to the new Apache Commons Math differentiation framework. luc
Add Added a new force model for central body gravity field, based on Holmes and Featherstone algorithms. This model is a great improvement over Cunningham and Droziner models. It allows much higher degrees (it uses normalized coefficients and carefully crafted recursions to avoid overflows and underflows). It computes analytically all partial derivatives and hence can be used to compute accurate state transition matrices. It is also much faster than the other models (for example a 10 days propagation of a low Earth orbit with a 1cm tolerance setting and a 69x69 gravity field was about 45% faster with Holmes and Featherstone than with Cunningham). luc
Fix Improved gravity field un-normalization to allow higher degrees/order with Cunningham and Droziner models. Formerly, the coefficients computation underflowed for square fields degree = order = 85, and for non-square fields at degree = 130 for order = 40. Now square fields can go slightly higher (degree = order = 89) and non-square fields can go much higher (degree = 393 for order = 63 for example). Attempts to use un-normalization past the underflow limit now raises an exception. luc
Update Updated Orekit to version 3.1.1 of Apache Commons Math. luc
Add Added support for time-dependent gravity fields. All recent gravity fields include time-dependent coefficients (linear trends and pulsations at several different periods). They are now properly handled by Orekit. For comparison purposes, it is still possible to retrieve only the constant part of a field even if the file contains time-dependent coefficients too. luc
Update Added a way to speed up parsing and reduce memory consumption when loading gravity fields. Now the user can specify the maximal degree and order before reading the file. luc
Fix The EGM gravity field reader did not complain when files with missing coefficients were provided, even when asked to complain. luc
Fix Fixed serialization of all predefined frames. This fix implied also fixing serialization of celestial bodies as the predefined ICRF frame relies on them. Note for both types of objects, only some meta-data are really serialized in such a way that at deserialization time we retrieve singletons. So the serialized data are small (less than 500 bytes) and exchanging many time these objects in a distributed application does not imply anymore lots of duplication. luc
Fix Throw an exception if the conversion of mean anomaly to hyperbolic eccentric anomaly does not converge in KeplerianOrbit (fixes bug #114). Thanks to Yannick Tanguy. tn
Fix Removed weak hash maps in frames (fixes bug #122). Thanks to Evan Ward. luc
Fix Improved documentation of interpolation methods (fixes bug #123). Thanks to Bruno Revelin. luc
Fix Make TIRF2000Provider class thread-safe (fixes bug #118). Thanks to Evan Ward. tn
Fix Correct spelling of the inner class QuadratureComputation (fixes bug #120). Thanks to Christophe Le Bris. tn
Fix Remove unnecessary synchronization in UT1Scale (fixes bug #119). Thanks to Evan Ward. tn
Fix Clear caches in CelestialBodyFactory when removing CelestialBodyLoaders (fixes bug #106). Thanks to Carlos Casas. tn
Fix Fix loading of JPL ephemerides files with overlapping periods (fixes bug #113). Thanks to Yannick Tanguy. tn
Fix Prevent initialization exception in UTCScale in case no user-defined offsets are provided. (fixes bug #111). Thanks to Simon Billemont. tn
Fix Improved performance by caching EME2000 frame in AbstractCelestialBody (fixes bug #116). Thanks to Evan Ward. luc
Fix Make TidalCorrections class thread-safe by using the new TimeStampedCache. (fixes bug #117). Thanks to Evan Ward. tn
Fix Convert position entries contained in SP3 files to meters instead of km (fixes bug #112). Thanks to Evan Ward. tn
Add Added support for version 2011 of ICGEM gravity field format. Orekit still ignore the time-dependent part of these fields, though. luc
Update Greatly simplified CelestialBodyLoader interface, now it is not related to DataLoader anymore (which implies users can more easily provide analytical models instead of the JPL/IMCCE ephemerides if they want) luc
Fix Use the new thread-safe caches and the new Hermite interpolation feature on Transform, Earth Orientation Parameters, JPL/IMCCE ephemerides, UTC-TAI history and Ephemeris to remove thread-safety issues in all classes using cache (fixes #3). luc
Add Added Hermite interpolation features for position-velocity coordinates, angular coordinates, orbits, attitudes, spacecraft states and transforms. Hermite interpolation matches sample points value and optionally first derivative. luc
Add Added an AngularCoordinates as an angular counterpart to PVCoordinates. luc
Add Transform now implements both TimeStamped and TimeShiftable. Note that this change implied adding an AbsoluteDate parameter to all transform constructors, so this is a backward incompatible change. luc
Fix Fixed wrong transform for 3D lines (fixes bug #101). luc
Add Upgraded support of CCSDS Unsegmented Time Code (CUC) to version 4 of the standard published in November 2010 (fixes bug #91), this includes support for an extended preamble field and longer time codes. luc
Add Added a way to build TLE propagators with attitude providers and mass (fixes bug #84). Thanks to Francesco Rocca. luc
Fix Fixed numerical stability errors for high order gravity field in Cunningham model (fixes bug #97). luc
Fix Fixed an error in radiation pressure for BoxAndSolarArraySpacecraft (fixes bug #92). Thanks to Yannick Tanguy. luc
Add Added models for tropospheric delay and geomagnetic field. thomas
Update The existing general mechanism for shifting objects in time has been formalized as a parameterized interface implemented by AbsoluteDate, Attitude, Orbit, PVCoordinates and SpacecraftState. luc
Update Time scales are not serializable anymore (this induced problems for the UTC scale and its caching feature). luc
Fix Fixed TLE propagation in deep space when inclination is exactly 0 (fixes bug #88). luc
Add Added a package for spacecraft states to propagators conversion extending an original contribution for TLE (Orbit Converter for Two-Lines Elements) to all propagators. Thanks to Francesco Rocca. pascal
Fix Improved testing of error messages. luc
Fix Removed too stringent test on trajectory in TLE propagator (fixes bug #86). luc
Fix Set the initial state for a TLEPropagator (fixes bug #85). thomas
Update Improved testing of error messages. luc
Update Updated IAU poles for celestial bodies according to the 2009 report and the 2011 erratum from the IAU/IAG Working Group on Cartographic Coordinates and Rotational Elements of the Planets and Satellites (WGCCRE). luc
Update Removed code deprecated before 5.0. luc
Add Added support for more recent JPL DExxx and INPOP ephemerides files (fixes feature #23). thomas
Fix Fixed formatting of very small values in TLE lines (fixes bug #77). luc
Fix Fixed formatting of TLE epoch (fixes bug #74). thomas
Fix Fixed performance issues when using the singleton UTCScale instance from multiple threads. Use a prototype pattern instead (fixes bug #33). thomas
Add Added J2 effect on small maneuvers model. luc
Fix Fixed attitudeProvider field masking in IntegratedEphemeris. luc
Add Added a tutorial to compute Earth phased, Sun synchronous orbits. luc
Add Added a fitter for osculating parameters, allowing conversion to mean parameters. luc
Update Made Greenwich mean and apparent sidereal time publicly visible in GTOD frame. luc
Update Made equation of equinoxes sidereal time publicly visible in TOD frame. luc
Update Added more german translations for error messages. thomas
Fix Allow ClasspathCrawler and ZipJarCrawler data providers to work in OSGi environments by providing an explicit class loader (fixes bug #54). luc
Update Improved the small maneuvers analytical model to compute orbit Jacobian with respect to maneuver parameters. luc
Fix Force impulse maneuver to preserve orbit type and orbit frame. luc
Add Added sp3 file parser. thomas
Add Added a method to compute frames transforms Jacobians in the Transform class. luc
Fix Fixed a problem with propagation over null or negative ranges. luc
Add Added a multiplexer for step handlers. luc
Add Added init methods to step handlers and event handlers. luc
Add Added an adapter propagator that can add small maneuvers to any propagator, including ephemeris based ones. luc
Add Added an analytical model for the effect at date t1 of a small maneuver performed at date t0. luc
Fix Fixed a missing reinitialization of start date when state was reset in numerical propagator. luc
Update Added detection of attempts to create hyperbolic orbits as circular or equinoctial instances. luc
Fix Fixed potential numerical failure in lightning ratio computation. pascal
Update Simplified construction of atmosphere models, the Earth fixed frame is already present in the body shape, there was no need to pass a separate argument for it. luc
Add Added Harris-Priester atmosphere model. pascal
Update Changed the return value of eventOccurred method from an int to an enumerate. luc
Fix Fixed frame for TLEPropagator (fixes bug #31). pascal
Add Added getters/setters for impulse maneuvers. luc
Add Added getters/setters for attitude provider in all orbit propagators. luc
Add Added a method to compute visibility circles in TopocentricFrame. luc
Add Added an equinox-based version of ITRF. luc
Add Added getters for thrust, Isp and flow rate in constant thrust maneuvers. luc
Add Allow use of any supported Local Orbital Frames as the reference frame for LofOffset attitude modes. luc
Add Added support for LVLH, VVLH and VNC local orbital frames. luc
Fix Fixed a performance bug implying that some frames reloaded all EOP history files each time a transform was computed (fixes bug #26). luc
Add Added support for columns-based IERS Rapid Data and Prediction files (finals.daily, finals.data and finals.all), the XML version was already supported since a few months luc
Fix Fixed numerical issue in eccentricity computation (fixes bug #25) luc
Update Changed step handling of abstract propagators, now they use a single step equal to the duration of the propagation in all cases except when a fixed step is requested in master mode. Previously, they arbitrarily used on hundredth of the Keplerian period as the step size, hence performing many steps even if not strictly required luc
Add Added propagation of Jacobians matrices in circular, Keplerian and equinoctial parameters, using either true, eccentric or mean position angles. Formerly, propagation of Jacobians matrices was possible only in Cartesian parameters luc
Add Added a way to propagate additional state along with orbit in abstract propagators, as an analytical counterpart to the additional equations that can be integrated by numerical propagators luc
Fix Fixed missing partial derivatives data in ephemerides produced by a numerical propagator despite it was set up to computed them (fixes bug #16) luc
Fix Added a new much simpler way to log events occurrences all at once (or only a subset of the events if desired) luc
Add Added alternative default name for ICGEM files pascal
Fix Fixed EventState reset on propagation direction change (fixes bug #19) pascal
Fix Fixed Jacobianizer so it can handle force models that do change the spacecraft mass, like ConstantThrustManeuver (fixes bug #18) luc
Add Added Jacobians between orbital parameters and Cartesian parameters for all orbits types (including hyperbolic orbits), all angles types (mean, eccentric, true) and in both directions luc
Update Replaced the integers parameters used in orbit constructors (MEAN_ANOMALY, ECCENTRIC_ANOMALY ...) by a new PositionAngle enumerate for better value safety. The old public constants and the corresponding constructors are still available but are deprecated luc
Fix Fixed ephemeris generation in numerical propagation. After getEphemeris has been called, later calls to the numerical propagator did reset the already computed and returned ephemeris (fixes bug #14) luc
Add Added support for the Marshall Solar Activity Future Estimation files Thanks to Bruno Revelin. luc
Fix TLEPropagator now implements the Propagator interface, and hence can benefit from all events detection and mode handling features (fixes features request #4) luc
Update improved events detection robustness, by decoupling events handling from adaptive step sizes in numerical integrators and (fix contributed to Apache Commons Math) and from classical propagation in analytical and tabulated propagators. This implies the events will NOT reduce integration step sizes anymore, thus also increasing speed and in corner cases reducing local precision at event occurrence, reducing max step size is often sufficient to compensate for this drawback luc
Add all propagators, including analytical ones or tabulated ones can now be used for event detection. Of course for tabulated propagators, setting up an event that would try to reset the state triggers an error when the event occurs véronique
Add propagation can now be done between two dates, regardless of the date of the initial state véronique
Add attitude can be specified either using a date only thanks to a new AttitudeLaw interface or using a date, a position-velocity provider and a frame (which can be any frame) thanks to a new AttitudeProvider interface, wrappers have been added to convert between the two interfaces. A side effect of this change is that LofOffset constructor now needs a reference to an inertial reference frame, otherwise the attitude woud be wrong if a non-inertial frame were passed to getAttitude, due to velocity composition (the computed LOF would not really be a LOF) véronique
Update the notion of quasi-inertial frames has been renamed as pseudo-inertial because quasi-inertial has a precise relativistic meaning that is not considered here. We only consider these frames to be suitable for Newtonian mechanics. luc
Update the equinox based frames have been renamed to more standard names (MOD, and GTOD instead of MEME, and PEF). The implementation of TEME was also wrong (it was really a TOD), so now there are both a TOD with a proper name and a TEME with a proper implementation. luc
Update celestial bodies now provide both an inertially oriented body centered frame and a body oriented body centered frame, the bodies managed by CelestialBodyFactory use the IAU poles and prime meridian definitions to build the two frames luc
Add added the ICRF frame at the solar system barycenter luc
Add added the ITRF93, ITRF97, ITRF2000 and ITRF2008 frames (previously, only the ITRF2005 frame was available) luc
Add added a getPoint method to TopocentricFrame luc
Add added the Galileo System Time Scales and the Galileo start epoch. luc
Add added the UT1, TCB and GMST time scales used in CCSDS Orbit Data Messages luc
Fix fixed an error when parsing a date occurring during a leap second introduction luc
Fix fixed a dut1 interpolation error for the day just before a leap second introduction luc
Fix fixed an error in JPL ephemerides: they are in TDB time scale luc
Fix fixed an error in date creation/parsing for UTC dates which occur during a leap second luc
Fix fixed UTC time scale between 1961-01-01 and 1971-12-31 ; in this time range the offset between UTC and TAI was piecewise linear luc
Add added an enumerate for specifying months in dates and for simplifying parsing of some data files luc
Add completed support for CCSDS Time Code Format (CCSDS 301.0-B-3) ; now in addition to ASCII Calendar Segmented Time Code which has been supported for a while, Orekit also supports CCSDS Unsegmented Time Code (CUC), CCSDS Day Segmented Time Code (CDS) and CCSDS Calendar Segmented Time Code (CCS) luc
Add added a freeze method to the Frame and Transform classes, in order to build fixed frames from moving ones, this is useful for example to build a launch frame at launcher inertial navigation system reset time, or to build an equinox-based frame at a specific epoch luc
Fix fixed an out of memory error when lots of temporary frames were created in loops and discarded luc
Update use the new FastMath class from commons-math instead of the standard java.util.Math class for increased accuracy and speed luc
Add added support for the new bulletinB data published by Paris-Meudon observatory for IAU-1980 precession-nutation model (IERS has ceased publishing bulletinB files for both IAU-1980 precession-nutation model and IAU-2000 precession-nutation model as of early 2010). luc
Add added support for the new XML files containing both bulletinA and bulletinB data published by IERS (both the finals and daily files are supported). luc
Update Orekit now depends on at least version 3.0 of Apache commons-math luc
Add added a way to list what data have been loaded through DataProvidersManager luc
Add PropagationException can now be created directly from OrekitException, thus simplifying wrapping lower Orekit errors in step handlers luc
Update improved exception propagation from low level java runtime and Apache commons-math libraries preserving initial error stack trace luc
Update changed exception localization framework to simplify messages handling luc
Fix greatly improved AbsoluteDate accuracy by shifting epoch when needed and separating long/double computations to avoid too large offsets and numerical cancellations, it is now possible to still have an absolute date accurate to about 1.0e-13s after shifting it 10000 times by 0.1s steps luc
Fix fixed an error in TopocentricFrame.getPVCoordinates: the coordinates returned were not the coordinates of the topocentric frame origin with respect to the specified frame, but were the coordinates of the specified frame origin with respect to the topocentric frame. luc
Fix fixed an errors in data loading in tutorials when one of the path in the classpath contained a space luc
Fix improved CelestialBodyPointed attitude mode: the spin now correctly includes the coupling effect of the phasing reference luc
Fix fixed an error in SpinStabilized attitude mode: the spin was reversed with respect to the specification luc
Add added a GroundMaskElevationDetector dealing with local physical mask for visibility pascal
Add added an ApparentElevationDetector taking refraction into account in a terrestrial environment pascal
Update enhanced DateDetector behaviour to allow adding new event dates on the fly pascal
Fix fixed an error in FramesFactory when getting ITRF2005 and TIRF2000 frames: ignoreTidalEffects was handled wrong. Thanks to Derek Surka. pascal
Update removed serialization of some cached data in frames luc
Fix fixed deserialization problems of frame singletons, they were not unique any more luc
Add numerical propagation can now be done either using Cartesian parameters, circular parameters, equinoctial parameters, or Keplerian parameters (elliptical or hyperbolic) and using mean, eccentric or true position angles for the parameters where it is relevant. So there are now 10 possible configurations for state vector. This allows propagation of any kind of trajectories, including hyperbolic orbits used for interplanetary missions, or atmospheric re-entry trajectories véronique
Update completely revamped the partial derivatives matrices computation using the additional equations mechanism véronique
Add added a mechanism to integrate user-supplied additional equations alongside with orbital parameters during numerical propagation véronique
Update use A. W. Odell and R. H. Gooding (1986) fast and robust solver for Kepler equation luc
Add keplerian and cartesian orbits now support hyperbolic orbits (i.e. eccentricity greater than 1, and in this case negative semi major axis by convention) luc
Fix fixed an error in LofOffset attitude mode: the computed attitude was reversed with respect to the specification luc
Add added an AttitudesSequence class which can handle several laws, only one of which being active at any time. The active law changes as switch events are triggered. This can be used for example to alternate between daylight attitude mode and eclipse attitude mode, or between normal observing mode and special modes for ground contact or maneuvers. luc
Fix fixed an error when crawling a classpath or a directory a zip file was found. This might lead to select an inappropriate data provider. Thanks to Bruno Revelin. pascal

Release 5.0.3 – 2011-07-12

Type Changes By
Fix Fixed a performance bug implying that some frames reloaded all EOP history files each time a transform was computed (fixes bug #26). luc
Fix Fixed a parsing bug in IERS Rapid Data and Prediction files for dates between 2000 and 2009. luc

Release 5.0.2 – 2011-07-11

Type Changes By
Update Added support for IERS Rapid Data and Prediction files finals.all, finals.data and finals.daily, for both IAU-1980 and IAU-2000 and with both columns and XML formats. luc

Release 5.0.1 – 2011-04-15

Type Changes By
Update updated packaging to allow deployment to maven central. luc

Release 5.0 – 2010-05-06

Type Changes By
Add a new experimental numerical propagator has been added, in addition to computing the spacecraft state at target time, it also computes the partial derivatives of this state with respect to the initial state (one jacobian) and with respect to models parameters (another jacobian). The jacobians are integrated alongside with the state, using variational equations for better accuracy and numerical robustness. This will help further implementation of orbit determination or optimization algorithms. This code is still considered to be experimental as of 5.0 and the API could change in the future. pascal
Add a new SpacecraftFrame class has been added, taking into account orbit and attitude thanks to an underlying propagator. This allows to see the spacecraft just as another known geometrical object automatically handled and connected to all other frames. For an instantaneous view, Transform instances can also be built directly by SpacecraftState instances. luc
Add frames can now be flagged as quasi-inertial or not; only quasi-inertial frames are suitable for defining orbits luc
Add the Topocentric frame now provides a way to retrieve the body shape on which the frame is defined luc
Update changed the way Veis 1950 frame is constructed. Now, its parent is the PEF frame with no EOP corrections applied. pascal
Fix fixed a parameters inversion in Earth Orientation Parameters for IAU-1980 models. The error could introduce up to a few meters error in position during transformations between TEME and MEME Thanks to John Pritchard. luc
Add factories have been introduced for handling all data formats. Their default configuration correspond to the legacy formats used in previous versions (IERS format for UTC-TAI, EOPC04 and bulletins B for Earth Orientation Parameters, JPL format for celestial bodies ...). Users can now add support for their own formats if they want (for example if they prefer using bulletins A instead of EOPC04 and bulletins B, or if they have their own gravity field format ...). Consequences of these changes are that the SolarSystemBody and the PotentialReaderFactory classes have been deprecated (replaced by CelestialBodyFactory and GravityFieldFactory) and that TimeScalesFactory and FramesFactory have been extended. All these factories follow the same generic pattern. luc
Fix improved thread safety (however, Orekit is still NOT completely thread-safe). luc
Add the loaders for gravity fields now can optionally allow missing coefficients (they will be replaced by 0.0 except c[0][0] which will be replaced by 1.0). luc
Fix the loader for gravity fields in the ICGEM format now support empty lines in the file (there is for example one blank line at the end of the file in the orekit-data zip archive). luc
Add added support for the GRGS gravity field files formats. luc
Add added a way to list the available satellite numbers in TLE files. luc
Update improved TLE elements loading. Now TLE lines are loaded using the standard data loading mechanism (thus allowing loading from disk files, network, classpath ...), they can contain TLE for several objects in one file, and they may contain some non-TLE lines if desired. luc
Add a new PVCoordinatesProvider interface has been created on top of several existing classes and interfaces (orbit propagator, celestial bodies, some moving frames ...). This is a major generalization that allows to use either satellites or celestial bodies in many algorithms (attitude pointing target, eclipses and field of view events ...) véronique
Fix improved numerical propagator efficiency when used from an outside loop: the initial state is automatically set to the last state at propagation end, thus allowing to restart from here without recomputing everything luc
Add added a reset feature in all propagators, allowing to reuse an already configured propagator for several different orbits luc
Fix fixed a mode handling error in NumericalPropagator: when a propagator was reused with a new mode setting, the previous step handlers were still used in addition to the new ones instead of replacing them luc
Fix fixed an interpolation error for orbits crossing the -PI/+PI singularity between entries in the Ephemeris class luc
Update KeplerianPropagator now preserve orbits types luc
Add AbsoluteDate, Orbit, PVCoordinates, Attitude and SpacecraftState instances can now all be slightly shifted in time using simple evolution models (keplerian for orbit, fixed angular rate for attitude, fixed translation for position/velocity). This is not a replacement for proper propagation but is useful for known simple motions or small time shifts or when coarse accuracy is sufficient luc
Fix changed AttitudeLaw.getState signature to use complete orbit. This is an incompatible change introduced to fix a major bug in spin computation for some attitude laws. The laws for which orientation depends on satellite velocity have a spin vector that depends on acceleration. This can be computed only if complete orbit is available. This change should be simple to handle from a users point of view, as the caller generally already has the orbit available and attitude laws implementations can retrieve all the former parameters (date, position/velocity, frame) directly from orbit. luc
Fix fixed spin rate computation errors in almost all attitude modes luc
Add added a new simple linear attitude mode: FixedRate luc
Fix fixed an error in event detection: when two events were very close (for example a very short ground station visibility), the second one may be ignored despite the first one was detected. luc
Fix fixed corner cases in event detection during orbit propagation, sometimes an already detected and handled event prevented the propagator to go further in time. luc
Add added an EventShifter wrapper allowing to slightly shift raw events in time. This is useful for example to switch an attitude mode from solar pointing to something else a few minutes before eclipse entry and going back to solar pointing mode a few minutes after eclipse exit. luc
Add added a new AlignmentDetector. pascal
Add added a new EclipseDetector handling either umbra or penumbra entry and exit events. pascal
Add added new CircularFieldOfViewDetector and DihedralFieldOfViewDetector handling field of view entry and exit events for any type of target. véronique
Add added an experimental implementation of a BoxAndSolarArray spacecraft model considering a convex body (either parallelepipedic or defined by a set of facets) and a rotating solar array, for accurate modeling of surface forces with attitude. Beware that this class is still considered experimental, so use it with care! luc
Update completely changed the RadiationSensitive and DragSensitive interfaces to be more comprehensive and handle properly lift and side force effects when used with non-symmetric spacecrafts/flux geometry luc
Fix fixed denormalization of gravity field coefficients, the last coefficient was not initialized Thanks to Christelle Blandin. luc
Add added a relative constructor and a getMomentum method to PVCoordinates luc
Add added a special implementation improving performances for the frequent case of identity transform luc
Fix fixed forgotten radians to degrees conversions for inclination and RAAN in CircularOrbit.toString() luc
Add added a Constants interface including a few useful physical constants. luc
Add added a way to build date components from week components (this can be used for scheduled operations with week-related periods) luc
Add added string parsing features for dates and times components supporting ISO-8601 formats luc
Add Orekit is now packaged as an OSGi bundle luc
Add added some pieces of an UML model for the library (available in the source distribution) pascal
Update updated error message localization to be more consistent with Java exception. Now getMessage returns a non-localized message and only getLocalizedMessage returns a message localized for the platform default locale. A new getMessage(Locale) method has also been added to retrieve the message in any desired locale, not only the platform default one. The messages are also built and translated only when needed, so if an exception is triggered and never displayed, the message will never be built. luc

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

No changes in this release.