[VOTE] Releasing Orekit 13.0 from release candidate 1

This is a VOTE in order to release version 13.0 of the Orekit library.
Version 13.0 is a major release.

Highlights in the 13.0 release are:

  • revamp of tropospheric models,
  • revamp of {Field}ImpulseManeuver,
  • revamp of absolute dates with attoseconds precision,
  • revamp of numerical integration tolerances,
  • many improvements in optimal control
    • min time Hamiltonian
    • cost evaluation
    • differential information at control switches,
    • linear system tuning,
    • logarithmic barrier for fuel cost,
    • cost/penalty barrier for indirect fuel optimization,
    • scales in Newton updates,
  • new Kalman/unscented smoother,
  • many improvements in GNSS
    • Rinex files,
    • Sinex files,
    • partial derivatives in GNSS propagators,
    • handling of ambiguities,
    • non-standard signals and systems,
  • new ITU models
    • ITU-R P.531 NeQuick 2 ionospheric model,
    • ITU-R P.834 tropospheric model,
  • replacement of AdditionalStateProvider by AdditionalDataProvider,
  • builders for {Field}SpacecraftState,
  • moved position angles conversions methods,
  • IIRV messages reader/writer,
  • sexagesimal angles,
  • moving transition dates in TimeSpanMap,
  • new East-North-Up (ENU) and North-East-Down (NED) local orbital frames,
  • {Field}EventDetectionSettings,
  • Walker constellation for star pattern,
  • magnetic field loading from DataSource,
  • removed orbit-related chained getters in (Field)SpacecraftState,
  • a posteriori filtering feature for generated measurements,
  • switched default PositionAngleType in (Field)NumericalPropagator to ECCENTRIC.

The release candidate 1 can be found on the GitLab repository as
tag 13.0-RC1 in the release-13.0 branch:

Maven artifacts are available at
Index of /repositories/orgorekit-1074.

The votes will be tallied in 120 hours for now, on 2025-05-10T23:00:00Z (this is UTC time).

3 Likes

+1

What a change! Thanks to all contributors for this impressive work.

1 Like

+1 . Thank you for the improvements

+1. That’s a lot of new features!

Hello,

SonarQube is happy except for 3 code smells but 2 of them can be marked as “won’t fix” and the third is only a redundant check which can be either ignored or fixed in a patch.

+1 for the release ! Thanks to all the contributors + @luc for the release :partying_face:.

Cheers,
Vincent

Release candidate has been integrated in our operational software for testing. No regression observed.

+1 for the release

I think the target epoch is 2025-04-10 :slight_smile:

4 Likes

+1 for the release. Thanks to all the contributors for the improvements !

+1 for the release.
I’d also like to highlight a potential improvement in the conversion of osculating elements into mean elements for analytical theories: Brouwer-Lyddane, Eckstein-Hechler, DSST, SGP4/SDP4 (i.e. forTLE).

1 Like

Yes, sorry, I missed to announce that :worried:

Don’t worry, in fact this evolution is hidden in the Brouwer-Lyddane fix for issue 1558.

In fact I consider them as false positive and I have flagged them as such in SonarQube. “NaN” is the accepted proper name for such invalid data, despite is has a lowercase “a”. It is spelled this way in standard Java Doubleclass.
I am not sure about the third case, which is about something that is loaded from either the jar or the development source tree. As it is loaded at runtime, I feel better to still check we can open this stream. I am therefore wondering if we should declare it as “false positive”, as “won’t fix” or consider my concerns are moot and fix it later on.

1 Like

+1. Once again, the work is impressive!

+1 for the release.
Impressive work indeed!
Thank you @luc for taking care of it!!!

I’ve noticed two classes that have a missing @DefaultDataContext but this is not a no-go for me.
(These are RtcmMessageType and GlobalPressureTemperature2. Search for context in the latest CI log and you’ll find them)

1 Like

I am traveling so can’t help on this one. It looks like a great release though :).

+1
Thanks Luc for the release.

A few more features to be looking forward to:

  • Generalized ProfileThrustPropulsionModel
  • All ForceModel and AttitudeProvider working with AbsolutePVCoordinates
  • Alternative to AttitudesSequence with instantaneous switches
  • Revamped tolerances for numerical propagation
  • AttitudeProvider now inheriting from EventDetectorsProvider and ParameterDriverProvider
  • (Field)Orbit always containing rates (possibly Keplerian)
  • ThirdBodyAttraction can be defined without CelestialBody
  • AdaptableInterval now taking boolean argument on direction of propagation
  • native AdaptableInterval for date detection
1 Like

Also, maybe we should announce somewhere that the production branch is now “main” and not “master” anymore

4 Likes

+1 Great features!! Very impressive!

Good point, people would need to update their fork if applicable

Looking a bit closer, it appears that it is not possible to avoid using the default data context when using those classes. In particular, RtcmMessageType eventually gets UT1 from the default data context, so it would seem that users of that class can’t update their EOP without terminating the JVM.

For the GPT models, using another data context would involve adding a constructor parameter, like in GlobalPressureTemperature or GlobalPressureTemperature3, which could be easily done in a patch release.

RtcmMessageType is an enum and the offending method implements the interface MessageType. It seems the fix would be to add a TimeScales as a method parameter. That would be easier to do in a major release when backwards compatibility is not a concern.

So I’m -0 for the release. I think now is the best time to fix RtcmMessageType, but I don’t want to hold up the release if no one else thinks that is important.

Other than that issue, it is a great set of new features and my initial testing with it has been positive.

Regards,
Evan

I think your concerns are important.

I also think that in that context of RTCM which is based on a constant data stream and could potentially be used on an always up service, letting the users update their EOP is mandatory.

I therefore cancel this vote, will fix this issue and prepare a new release candidate.

Thanks a lot for identifying this problem!

2 Likes