Newer
Older
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2002-2014 CS Systèmes d'Information
Licensed to CS Systèmes d'Information (CS) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
CS licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<document>
<properties>
<title>Orekit Changes</title>
</properties>
<body>
description="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.">
<action dev="hankg" type="add">
Added bilinear interpolator and use it on Saastamoinen model.
Implements feature #182.
</action>
<action dev="luc" type="update">
Removed old parts that were deprecated in previous versions.
</action>
<action dev="luc" type="update">
Updated dependency to Apache Commons Math 3.4, released on 2014-12-26.
</action>
<action dev="luc" type="fix">
Fixed null vector normalization when attempting to project to ground a point already on ground.
Fixes issue #181.
</action>
<action dev="luc" type="add" due-to="Lucian Barbulescu">
Added Romanian localization for error messages.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="fix">
Improved acceleration output in Eckstein-Hechler model.
<action dev="luc" type="add">
Added projection of moving point (i.e. position and derivatives too) to
ground surface.
Added a general 3 axes ellipsoid class, including a feature to compute
any plane section (which result in a 2D ellipse).
Added support for IERS bulletin A (rapid service and prediction)
<action dev="tn" type="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.
<action dev="luc" type="fix" due-to="Patrice Mathieu">
Fixed closest TLE search. When filtering first from satellite ID and
then extracting closest date, the returned satellite was sometime wrong.
</action>
<action dev="luc" type="add" due-to="Hank Grabowski">
Allow attitude overriding during impulsive maneuvers.
Fixes issue #176.
</action>
<action dev="evan" type="add">
Added general relativity force model.
</action>
<action dev="luc" type="add" due-to="Ioanna Stypsanelli">
added Greek localization for error messages.
</action>
<action dev="evan" type="fix">
Fixed incorrect partial derivatives for force models that depend on satellite velocity.
Fixes #174.
</action>
<action dev="evan" type="fix">
Fixed incorrect parameters set in NumericalPropagatorBuilder.
Fixes #175.
</action>
<action dev="luc" type="update" >
Significantly reduced size of various serialized objects.
</action>
<action dev="luc" type="update" >
PVCoordinatesProvider now produces time-stamped position-velocities.
</action>
<action dev="luc" type="update" >
Tabulated attitude provider can be built directly from time-stamped angular coordinates
lists, in addition to attitudes lists.
</action>
<action dev="luc" type="add" >
Added time-stamped versions of position-velocity and angular coordinates.
</action>
<action dev="luc" type="fix" due-to="Daniel Aguilar Taboada">
Fixed wrong rotation interpolation for rotations near π.
Fixes issue #173.
</action>
<action dev="luc" type="update" >
Updated dependency to Apache Commons Math 3.3.
</action>
<action dev="luc" type="update" due-to="Lucian Barbulescu, Nicolas Bernard">
Added short periodics for DSST propagation.
</action>
<action dev="luc" type="add" >
Added a GeographicZoneDetector event detector for complex geographic zones traversal.
Fixes issue #163.
</action>
<action dev="evan" type="fix">
Add Ecliptic frame. Agrees with JPL ephemerides to within 0.5 arcsec.
Issue #166.
</action>
<action dev="evan" type="fix">
Fix cache exception when propagating backwards with an interpolated
gravity force model.
Fixes issue #169.
</action>
<action dev="luc" type="fix">
Fixed parsing of dates very far in the future.
Fixes issue #171.
</action>
<action dev="luc" type="fix">
Trigger an exception when attempting to interpolate attitudes without rotation rate
using only one data point.
</action>
<action dev="evan" type="fix">
Fixed SpacecraftState date mismatch exception with some attitude providers.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="update" due-to="Lucian Barbulescu">
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.
</action>
<action dev="luc" type="update" due-to="Lucian Barbulescu">
Avoid recomputing Chi and Chi^2 in Hansen coefficients for tesseral.
</action>
<action dev="luc" type="update" due-to="Nicolas Bernard">
Added better handling of Hansen kernel computation through use of PolynomialFunction.
</action>
<action dev="luc" type="update" due-to="Petre Bazavan">
Compute Hansen coefficients using linear transformation.
</action>
<action dev="luc" type="fix" >
Fixed a non-bracketing exception in event detection, in some rare cases of noisy g function.
Fixes issue #160.
</action>
<action dev="luc" type="fix" >
Fixed a missing reset of resonant tesseral terms in DSST propagation.
Fixes issue #159.
</action>
<action dev="luc" type="fix" >
Improved default max check interval for NodeDetector, so it handles correctly
highly eccentric orbits.
Fixes issue #158.
</action>
<release version="6.1" date="2013-12-13"
description="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.">
<action dev="luc" type="fix" >
Reduced number of calls to the g function in event detectors.
Fixes issue #108.
</action>
<action dev="luc" type="fix" >
Fixed a spurious backward propagation.
Fixes issue #107.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="add" >
Added high degree ocean load deformation coefficients computed by Pascal
Gégout (CNRS / UMR5563 - GET).
</action>
<action dev="luc" type="add" >
Time scales are now serializable.
</action>
<action dev="luc" type="add" due-to="Nicolas Bernard">
Improved DSST tesseral computation efficiency by caching Jacobi polynomials.
</action>
<action dev="luc" type="fix" due-to="Daniel Aguilar Taboada">
Fixed yaw steering attitude law, which didn't project spacecraft velocity correctly.
Fixes issue #156.
</action>
<action dev="luc" type="add" >
Added a way to set the maximum number of iterations for events detection.
Fixes issue #155.
</action>
<action dev="luc" type="add">
Added an attitude provider from tabulated attitudes.
Fixes issue #154.
</action>
<action dev="luc" type="add" due-to="Hank Grabowski">
Improved test coverage.
Fixes issue #153.
</action>
<action dev="luc" type="add" due-to="Hank Grabowski">
Merged all elevation detectors into one. The new detector supports all
features from the previous (and now deprecated) ApparentElevationDetector
and GroundMaskElevationDetector.
Fixes issue #144.
</action>
<action dev="luc" type="add" due-to="Hank Grabowski">
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.
</action>
<action dev="luc" type="fix" due-to="Christophe Le Bris">
Fixed an indexing error in Harris-Priester model.
Fixes issue #152.
</action>
<action dev="luc" type="add">
Added a new force model for ocean tides in numerical propagation, including pole tides.
Fixes issue #11.
</action>
<action dev="luc" type="fix" due-to="Lucian Barbulescu">
Fixed conversion from position-velocity to Keplerian, when the orbit is
perfectly equatorial.
Fixes issue #151.
</action>
<action dev="luc" type="add">
Added a new force model for solid tides in numerical propagation, including pole tides.
Fixes issue #10.
<action dev="luc" type="add">
Added a way to select IERS conventions for non-rotating origin
based ITRF.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="fix">
Fixed missing nutation correction in Equation Of Equinoxes.
Fixes issue #150.
</action>
<action dev="luc" type="fix">
Fixed rate for TCB time scale.
</action>
<action dev="luc" type="add">
Added new definition of astronomical unit from IAU-2012 resolution B2.
</action>
<action dev="luc" type="fix">
Fixed Date/Time split problem when date is a few femto-seconds before the end of the day.
Fixes issue #149.
</action>
<action dev="luc" type="fix">
Fixed overflow problem in TimeComponents.
Fixes issue #148.
</action>
<action dev="luc" type="update">
Separate parsing from using Poisson series.
</action>
<action dev="luc" type="add" due-to="Steven Ports">
Added support for parsing CCSDS ODM files (OPM, OMM and OEM).
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="fix">
Fixed azimuth parameter in the TopocentricFrame.pointAtDistance method.
Fixes issue #145.
</action>
<action dev="luc" type="fix" due-to="Matt Edwards">
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.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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).
</action>
<action dev="luc" type="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).
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="add" >
Added IERS 1996 in the list of supported IERS conventions.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="fix" >
Fixed non-bracketing exception while converting Cartesian points very close to equator into geodetic
coordinates. Fixes issue #141.
</action>
<action dev="evan" type="add" >
Added getAngularVelocity() to PVCoordinates.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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...).
</action>
<action dev="luc" type="fix" >
Fixed GTOD and Veis frame that did apply UT1-UTC correction when they should not (fixes issue #131).
</action>
<action dev="luc" type="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.
</action>
<release version="6.0" date="2013-04-23"
description="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.">
<action dev="pascal" type="fix" >
Fixed conversion of mean anomaly to hyperbolic eccentric anomaly (fixes issue #135).
</action>
<action dev="luc" type="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).
</action>
<action dev="luc" type="fix" >
Fixed event g function correction when starting exactly at 0 with a backward
propagation (fixes issue #125).
</action>
<action dev="luc" type="update" >
Error messages properties are now loaded directly in UTF-8.
</action>
<action dev="luc" type="add" >
Added a way to know which tide system is used in gravity fields (zero-tide,
tide-free or unknown).
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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.
</action>
<action dev="pascal" type="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.
</action>
<action dev="evan" type="update" >
Greatly improved performance of time-stamped caches for data that is
read only once (like UTC leap seconds history or EOP).
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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).
</action>
<action dev="luc" type="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).
</action>
<action dev="luc" type="add" >
Added a way to retrieve all additional states at once from a step interpolator.
</action>
<action dev="luc" type="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).
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="add" >
Atmosphere models now provide their central body frame.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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...
</action>
<action dev="luc" type="add" >
Added analytical computation of partial derivatives for third-body
attraction.
</action>
<action dev="luc" type="add" >
Added analytical computation of partial derivatives for constant
thrust maneuvers.
</action>
<action dev="luc" type="update" >
Converted Newtonian force model to use the new partial derivatives
framework.
</action>
<action dev="luc" type="update" >
Converted Holmes-Featherstone force model to use the new partial derivatives
framework.
</action>
<action dev="luc" type="add" >
Added analytical computation of partial derivatives for surface forces
(drag and radiation pressure) for all supported spacecraft body shapes.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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).
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="update" >
Updated Orekit to version 3.1.1 of Apache Commons Math.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="fix" >
The EGM gravity field reader did not complain when files with missing
coefficients were provided, even when asked to complain.
</action>
<action dev="luc" type="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.
</action>
<action dev="tn" type="fix" due-to="Yannick Tanguy">
Throw an exception if the conversion of mean anomaly to hyperbolic
eccentric anomaly does not converge in KeplerianOrbit (fixes bug #114).
</action>
<action dev="luc" type="fix" due-to="Evan Ward">
Removed weak hash maps in frames (fixes bug #122).
</action>
<action dev="luc" type="fix" due-to="Bruno Revelin">
Improved documentation of interpolation methods (fixes bug #123).
</action>
<action dev="tn" type="fix" due-to="Evan Ward">
Make TIRF2000Provider class thread-safe (fixes bug #118).
</action>
Thomas Neidhart
committed
<action dev="tn" type="fix" due-to="Christophe Le Bris">
Correct spelling of the inner class QuadratureComputation (fixes bug #120).
</action>
Thomas Neidhart
committed
<action dev="tn" type="fix" due-to="Evan Ward">
Remove unnecessary synchronization in UT1Scale (fixes bug #119).
</action>
<action dev="tn" type="fix" due-to="Carlos Casas">
Thomas Neidhart
committed
Clear caches in CelestialBodyFactory when removing CelestialBodyLoaders
<action dev="tn" type="fix" due-to="Yannick Tanguy">
Thomas Neidhart
committed
Fix loading of JPL ephemerides files with overlapping periods
(fixes bug #113).
</action>
<action dev="tn" type="fix" due-to="Simon Billemont">
Thomas Neidhart
committed
Prevent initialization exception in UTCScale in case no user-defined
offsets are provided. (fixes bug #111).
</action>
<action dev="luc" type="fix" due-to="Evan Ward">
Improved performance by caching EME2000 frame in AbstractCelestialBody
(fixes bug #116).
</action>
Thomas Neidhart
committed
<action dev="tn" type="fix" due-to="Evan Ward">
Make TidalCorrections class thread-safe by using the new TimeStampedCache.
(fixes bug #117).
</action>
<action dev="tn" type="fix" due-to="Evan Ward">
Convert position entries contained in SP3 files to meters instead of km
(fixes bug #112).
</action>
<action dev="luc" type="add" >
Added support for version 2011 of ICGEM gravity field format. Orekit
still ignore the time-dependent part of these fields, though.
</action>
<action dev="luc" type="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)
</action>
<action dev="luc" type="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).
<action dev="luc" type="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.
</action>
<action dev="luc" type="add" >
Added an AngularCoordinates as an angular counterpart to PVCoordinates.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="fix" >
Fixed wrong transform for 3D lines (fixes bug #101).
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="add" due-to="Francesco Rocca">
Added a way to build TLE propagators with attitude providers and mass (fixes bug #84).
</action>
<action dev="luc" type="fix" >
Fixed numerical stability errors for high order gravity field in Cunningham model (fixes bug #97).
</action>
<action dev="luc" type="fix" due-to="Yannick Tanguy">
Fixed an error in radiation pressure for BoxAndSolarArraySpacecraft (fixes bug #92).
</action>
<action dev="thomas" type="add">
Added models for tropospheric delay and geomagnetic field.
</action>
<action dev="luc" type="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.
</action>
<action dev="luc" type="update">
Time scales are not serializable anymore (this induced problems for the UTC scale
and its caching feature).
</action>
<action dev="luc" type="fix">
Fixed TLE propagation in deep space when inclination is exactly 0 (fixes bug #88).
</action>
<action dev="pascal" type="add" due-to="Francesco Rocca">
Added a package for spacecraft states to propagators conversion extending an
original contribution for TLE (Orbit Converter for Two-Lines Elements) to all
propagators.
</action>
<action dev="luc" type="fix">
Improved testing of error messages.
</action>
<action dev="luc" type="fix">
Removed too stringent test on trajectory in TLE propagator (fixes bug #86).
</action>
<action dev="thomas" type="fix">
Set the initial state for a TLEPropagator (fixes bug #85).
Thomas Neidhart
committed
</action>
<action dev="luc" type="update">
Improved testing of error messages.
</action>
<action dev="luc" type="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).
</action>
<action dev="luc" type="update">
Removed code deprecated before 5.0.
</action>
<action dev="thomas" type="add">
Added support for more recent JPL DExxx and INPOP ephemerides files (fixes feature #23).
</action>
<action dev="luc" type="fix">
Fixed formatting of very small values in TLE lines (fixes bug #77).
</action>
<action dev="thomas" type="fix">
Fixed formatting of TLE epoch (fixes bug #74).
</action>
Thomas Neidhart
committed
<action dev="thomas" type="fix">
Fixed performance issues when using the singleton UTCScale instance from
multiple threads. Use a prototype pattern instead (fixes bug #33).
</action>
<action dev="luc" type="add">
Added J2 effect on small maneuvers model.
</action>
<action dev="luc" type="fix">
Fixed attitudeProvider field masking in IntegratedEphemeris.
</action>
<action dev="luc" type="add">
Added a tutorial to compute Earth phased, Sun synchronous orbits.
</action>
<action dev="luc" type="add">
Added a fitter for osculating parameters, allowing conversion to mean parameters.
</action>
<action dev="luc" type="update">
Made Greenwich mean and apparent sidereal time publicly visible in GTOD frame.
</action>
<action dev="luc" type="update">
Made equation of equinoxes sidereal time publicly visible in TOD frame.
</action>
<action dev="thomas" type="update">
Added more german translations for error messages.
</action>
<action dev="luc" type="fix">
Allow ClasspathCrawler and ZipJarCrawler data providers to work in
OSGi environments by providing an explicit class loader (fixes bug #54).
</action>
<action dev="luc" type="update">
Improved the small maneuvers analytical model to compute orbit Jacobian
with respect to maneuver parameters.
</action>
<action dev="luc" type="fix">
Force impulse maneuver to preserve orbit type and orbit frame.
</action>
<action dev="thomas" type="add">
Added sp3 file parser.
</action>
<action dev="luc" type="add">
Added a method to compute frames transforms Jacobians in the Transform class.
</action>
<action dev="luc" type="fix">
Fixed a problem with propagation over null or negative ranges.
</action>
<action dev="luc" type="add">
Added a multiplexer for step handlers.
</action>
<action dev="luc" type="add">
Added init methods to step handlers and event handlers.
</action>
<action dev="luc" type="add">
Added an adapter propagator that can add small maneuvers to any propagator, including
ephemeris based ones.
</action>
<action dev="luc" type="add">
Added an analytical model for the effect at date t1 of a small maneuver performed at date t0.
</action>
<action dev="luc" type="fix">
Fixed a missing reinitialization of start date when state was reset in numerical propagator.
</action>
<action dev="luc" type="update">
Added detection of attempts to create hyperbolic orbits as circular or equinoctial
instances.
</action>
<action dev="pascal" type="fix">
Fixed potential numerical failure in lightning ratio computation.
</action>
<action dev="luc" type="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.
</action>
<action dev="pascal" type="add">
Added Harris-Priester atmosphere model.
</action>
<action dev="luc" type="update">
Changed the return value of eventOccurred method from an int to an enumerate.
</action>
<action dev="pascal" type="fix">
Fixed frame for TLEPropagator (fixes bug #31).
</action>
<action dev="luc" type="add">
Added getters/setters for impulse maneuvers.
</action>
<action dev="luc" type="add">
Added getters/setters for attitude provider in all orbit propagators.
</action>
<action dev="luc" type="add">
Added a method to compute visibility circles in TopocentricFrame.
</action>
<action dev="luc" type="add">
Added an equinox-based version of ITRF.
</action>
<action dev="luc" type="add">
Added getters for thrust, Isp and flow rate in constant thrust maneuvers.
</action>
<action dev="luc" type="add">
Allow use of any supported Local Orbital Frames as the reference frame
for LofOffset attitude modes.
</action>
<action dev="luc" type="add">
Added support for LVLH, VVLH and VNC local orbital frames.
</action>
<action dev="luc" type="fix">
Fixed a performance bug implying that some frames reloaded all EOP history files
each time a transform was computed (fixes bug #26).
</action>
<action dev="luc" type="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
</action>
<action dev="luc" type="fix" >
Fixed numerical issue in eccentricity computation (fixes bug #25)
</action>
<action dev="luc" type="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
</action>
<action dev="luc" type="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
</action>
<action dev="luc" type="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
</action>
<action dev="luc" type="fix" >
Fixed missing partial derivatives data in ephemerides produced by a numerical
propagator despite it was set up to computed them (fixes bug #16)
Added a new much simpler way to log events occurrences all at once (or
only a subset of the events if desired)
</action>
<action dev="pascal" type="add" >
Added alternative default name for ICGEM files
</action>
<action dev="pascal" type="fix" >
Fixed EventState reset on propagation direction change (fixes bug #19)
</action>
<action dev="luc" type="fix" >
Fixed Jacobianizer so it can handle force models that do change the spacecraft mass,
like ConstantThrustManeuver (fixes bug #18)
</action>
<action dev="luc" type="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
</action>
<action dev="luc" type="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
</action>
<action dev="luc" type="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)
</action>
<action dev="luc" type="add" due-to="Bruno Revelin">
Added support for the Marshall Solar Activity Future Estimation files
</action>
<action dev="luc" type="fix">
TLEPropagator now implements the Propagator interface, and hence can benefit from all
events detection and mode handling features (fixes features request #4)
</action>
<action dev="luc" type="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
</action>
<action dev="véronique" type="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
</action>
<action dev="véronique" type="add" >
propagation can now be done between two dates, regardless of the date of the initial state
</action>
<action dev="véronique" type="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)
<action dev="luc" type="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.
</action>
<action dev="luc" type="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 Maisonobe
committed
</action>
<action dev="luc" type="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
</action>
<action dev="luc" type="add">
added the ICRF frame at the solar system barycenter

Luc Maisonobe
committed
</action>
<action dev="luc" type="add">
added the ITRF93, ITRF97, ITRF2000 and ITRF2008 frames (previously, only
the ITRF2005 frame was available)
</action>
<action dev="luc" type="add">
added the Galileo System Time Scales and the Galileo start epoch.
</action>
<action dev="luc" type="add">
added the UT1, TCB and GMST time scales used in CCSDS Orbit Data Messages
</action>
<action dev="luc" type="fix">
fixed an error when parsing a date occurring during a leap second introduction

Luc Maisonobe
committed
<action dev="luc" type="fix">
fixed a dut1 interpolation error for the day just before a leap second introduction
</action>
<action dev="luc" type="fix">
fixed an error in JPL ephemerides: they are in TDB time scale
</action>
<action dev="luc" type="fix">
fixed an error in date creation/parsing for UTC dates which occur during a
leap second
</action>

Luc Maisonobe
committed
<action dev="luc" type="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
</action>
<action dev="luc" type="add">
added an enumerate for specifying months in dates and for simplifying parsing
of some data files
</action>