Orekit issueshttps://gitlab.orekit.org/orekit/orekit/-/issues2024-01-16T12:52:09Zhttps://gitlab.orekit.org/orekit/orekit/-/issues/1262Comments in parsed CCSDS file cannot be updated2024-01-16T12:52:09ZDavid GondelachComments in parsed CCSDS file cannot be updatedHi all,
I tried to parse a message that contains comments, e.g. CDM or OEM, and then change or remove some comments before writing it to a file again. However, I was not able to do this. It looks like the comments are stored in a Commen...Hi all,
I tried to parse a message that contains comments, e.g. CDM or OEM, and then change or remove some comments before writing it to a file again. However, I was not able to do this. It looks like the comments are stored in a CommentsContainer and only accessible as a read-only list (Collections.unmodifiableList), hence not modifiable.
The easiest fixes would be to have `CommentsContainer.getComments` return a modifiable List or to add a setter for the List `comments`. I can implement such a change if there are no objections, but maybe you have better ideas!
https://gitlab.orekit.org/orekit/orekit/-/blob/develop/src/main/java/org/orekit/files/ccsds/section/CommentsContainer.java
Best,
DavidDavid GondelachDavid Gondelachhttps://gitlab.orekit.org/orekit/orekit/-/issues/1297Can't truncate to CCSDS ODM-specified digits2024-01-16T12:51:29ZBrad KellyCan't truncate to CCSDS ODM-specified digitsOrekit writers are not currently compliant to https://public.ccsds.org/Pubs/502x0b3e1.pdf section 7.5.6 and 7.5.7, but outputting full double precision, per https://forum.orekit.org/t/odm-output-precision-control/3173.Orekit writers are not currently compliant to https://public.ccsds.org/Pubs/502x0b3e1.pdf section 7.5.6 and 7.5.7, but outputting full double precision, per https://forum.orekit.org/t/odm-output-precision-control/3173.https://gitlab.orekit.org/orekit/orekit/-/issues/1303Feature request: implement STKEphemerisFile writer2024-01-16T09:42:31ZqmorFeature request: implement STKEphemerisFile writerPlease see https://forum.orekit.org/t/stkephemerisfile-writer/3192/1Please see https://forum.orekit.org/t/stkephemerisfile-writer/3192/1https://gitlab.orekit.org/orekit/orekit/-/issues/1299Add support for Intelsat's 11 elements propagation2024-01-14T12:32:30ZBryan CazabonneAdd support for Intelsat's 11 elements propagationThe ITU-R defines a standard for the propagation of the “Intelsat’s 11 elements”. Those elements are used by some ground operators for geostationary satellites. The format is available here: https://www.itu.int/dms_pubrec/itu-r/rec/s/r-r...The ITU-R defines a standard for the propagation of the “Intelsat’s 11 elements”. Those elements are used by some ground operators for geostationary satellites. The format is available here: https://www.itu.int/dms_pubrec/itu-r/rec/s/r-rec-s.1525-0-200106-s!!pdf-e.pdf
The idea of propagating Intelsat’s 11 elements for geostationary satellites is close to GNSS almanac propagation for navigation satellites: No orbital perturbations in the equations, only elements to PV conversion.
The propagator shall extend `AbstractAnalyticalPropagator`.
This propagator in available in STK. We can validate the Orekit-based implementation with STK. We can also use some Intelsat data to validate it.12.1Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/1249Duplicated code in (Field) abstract propagators2024-01-13T14:02:52ZRomain SerraDuplicated code in (Field) abstract propagatorsThe duplicated code is `propagate(date). getPVCoordinates(frame)` for `getPVCoordinates(date, frame)`
It is the case at least for `AbstractAnalyticalPropagator`, `IntegratedEphemeris` and Numerical propagator (plus `Field` equivalent).The duplicated code is `propagate(date). getPVCoordinates(frame)` for `getPVCoordinates(date, frame)`
It is the case at least for `AbstractAnalyticalPropagator`, `IntegratedEphemeris` and Numerical propagator (plus `Field` equivalent).12.1Romain SerraRomain Serrahttps://gitlab.orekit.org/orekit/orekit/-/issues/1295Beta angle EventDetector2024-01-04T20:21:07ZJoeBeta angle EventDetectorThis issue requests a (Field) `EventDetector` triggering when the solar beta angle crosses some threshold be added to orekit.
Background forum discussion can be found here: https://forum.orekit.org/t/calculating-solar-beta-angle/2977This issue requests a (Field) `EventDetector` triggering when the solar beta angle crosses some threshold be added to orekit.
Background forum discussion can be found here: https://forum.orekit.org/t/calculating-solar-beta-angle/297712.1JoeJoehttps://gitlab.orekit.org/orekit/orekit/-/issues/1290Signature discrepancy between double and Field methods in AberrationModifier2023-12-31T08:48:08ZRomain SerraSignature discrepancy between double and Field methods in AberrationModifierProblem concerns natural-to-proper conversions. A common "signature" should be agreed upon and the other one deprecated.Problem concerns natural-to-proper conversions. A common "signature" should be agreed upon and the other one deprecated.https://gitlab.orekit.org/orekit/orekit/-/issues/1230AberrationModifier should be usable with custom data context2023-12-30T11:46:12ZMaxime JournotAberrationModifier should be usable with custom data context`AberrationModifier` class cannot be used with a custom data context.
All methods using solar system barycenter (SSB) use `DefaultDataContext`.
APIs should be upgraded so that one can use a custom `DataContext` not linked to the defa...`AberrationModifier` class cannot be used with a custom data context.
All methods using solar system barycenter (SSB) use `DefaultDataContext`.
APIs should be upgraded so that one can use a custom `DataContext` not linked to the default one.
TBC, but maybe just putting the SSB as an attribute and adding a constructor taking a generic `DataContext` in input may do the trick.12.0.1Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/1055Bad caching of the ocean tides model2023-12-30T11:45:50ZAspern123Bad caching of the ocean tides modelOpening this issue after this [discussion](https://forum.orekit.org/t/oceantides-weird-behavior/2370).
If an OceanTides force model is set up inside a function, and this function is called in a program several times with different param...Opening this issue after this [discussion](https://forum.orekit.org/t/oceantides-weird-behavior/2370).
If an OceanTides force model is set up inside a function, and this function is called in a program several times with different parameters, particularly with different degree or order values, the acceleration calculations are always done with the parameters from the first call. For example, the first call is with degree=order=10, then oceanTides.acceleration is calculated. The second call is with degree=order=20, but new acceleration is the same as the first one.
Suggested solution by [@MaximeJ](https://forum.orekit.org/u/MaximeJ):
It doesn’t happen if two different DataContext are used.
There’s definitely something happening in the caching of the ocean tides model.
I think it’s located in GravityFields.getOceanTidesWaves(degree, order). After two successive calls with (10, 10) and (20, 20) the degree, order in the waves is still set to 10.
In OceanTidesReader, method stillAcceptData just checks if some ocean waves already exist.
/** {@inheritDoc} */
@Override
public boolean stillAcceptsData() {
return waves.isEmpty();
}
So I think it doesn’t care if the degree/order is higher than what’s already there.
I compared it to the same method in PotentialCoefficientsReader and here there’s a check on the degree/order of the harmonics already loaded.
/** {@inheritDoc} */
public boolean stillAcceptsData() {
return !(readComplete &&
getMaxAvailableDegree() >= getMaxParseDegree() &&
getMaxAvailableOrder() >= getMaxParseOrder());
}
I think the same behavior should be implemented in OceanTidesReader.12.0.1Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/1253Incorrect propagation of covariance with a "BoundedPropagator"2023-12-30T11:44:48ZChristophe Le BrisIncorrect propagation of covariance with a "BoundedPropagator"The propagation of the covariance extracted from the ephemeris provided by a BoundedPropagator is incorrect.
```
MatricesHarvester harvester = propagator.setupMatricesComputation("stm", null, null);
StateCovarianceMatrixProvider...The propagation of the covariance extracted from the ephemeris provided by a BoundedPropagator is incorrect.
```
MatricesHarvester harvester = propagator.setupMatricesComputation("stm", null, null);
StateCovarianceMatrixProvider covarianceProvider =
new StateCovarianceMatrixProvider("cov", "stm", harvester, covariance);
propagator.addAdditionalStateProvider(covarianceProvider);
EphemerisGenerator generator = propagator.getEphemerisGenerator();
propagator.propagate(startDate, targetDate);
BoundedPropagator ephemeris = generator.getGeneratedEphemeris();
```
Later, when a call is made to get the covariance from the BoundedPropagator with:
```
finalState = ephemeris.propagate(t);
StateCovariance finalCovariance = covarianceProvider.getStateCovariance(finalState);
```
The finalCovariance is incorrect and different from the value obtained by a direct propagation.12.0.1Maxime JournotMaxime Journothttps://gitlab.orekit.org/orekit/orekit/-/issues/1254Wrong behavior of method "propagate(tStart, tEnd)" when used with "setResetAt...2023-12-30T11:44:16ZChristophe Le BrisWrong behavior of method "propagate(tStart, tEnd)" when used with "setResetAtEnd(false)"When setResetAtEnd is called with false, the initial state of the propagation remains unchanged after the propagation.
When `propagate(tStart, tEnd)` is called and tStart is different from the epoch of the initial state, a first integrat...When setResetAtEnd is called with false, the initial state of the propagation remains unchanged after the propagation.
When `propagate(tStart, tEnd)` is called and tStart is different from the epoch of the initial state, a first integration is done. But neither the event detectors nor the ephemeris generator are set up yet during this integration.
If `resetAtEnd=false`, the initial state is unchanged for the second propagation so this first propagation is lost.
Then, in a second time, the dynamics is integrated from initial state date to tEnd, with event detectors and ephemeris generators activated.
So technically, if `resetAtEnd=false` then the result of:
`propagate(tStart, tEnd)`
seems strictly equivalent to:
`propagate(tEnd)`
[TestEphemeris.java](/uploads/dbe047caa6538daf8c11bbd91908794f/TestEphemeris.java)12.0.1Maxime JournotMaxime Journothttps://gitlab.orekit.org/orekit/orekit/-/issues/1261Javadoc still refers to old name of yields2023-12-30T11:43:37ZRomain SerraJavadoc still refers to old name of yieldsFor (Field) AdditionalStateProvider as well as AdditionalDerivativesProvider, some Javadoc still references the old name of method `yields` that used to be called `yield`For (Field) AdditionalStateProvider as well as AdditionalDerivativesProvider, some Javadoc still references the old name of method `yields` that used to be called `yield`12.0.1Tanner MillsTanner Millshttps://gitlab.orekit.org/orekit/orekit/-/issues/1266SpacecraftStateInterpolator constructor ignores extrapolation threshold2023-12-30T11:42:58ZChristopher SchankSpacecraftStateInterpolator constructor ignores extrapolation thresholdRegardless of which constructor is used, SpacecraftStateInterpolator will always use DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
```
@Test
public void testConstructor() {
Frame gcrf = DataContext.getDefault().getFrames().getGCRF();
...Regardless of which constructor is used, SpacecraftStateInterpolator will always use DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
```
@Test
public void testConstructor() {
Frame gcrf = DataContext.getDefault().getFrames().getGCRF();
SpacecraftStateInterpolator spacecraftStateInterpolator = new SpacecraftStateInterpolator(5, 7.0, gcrf, gcrf);
assertEquals(7.0, spacecraftStateInterpolator.getExtrapolationThreshold());
}
```
Edit: Orekit 12.012.0.1Vincent CUCCHIETTIvincent.cucchietti@csgroup.euVincent CUCCHIETTIvincent.cucchietti@csgroup.euhttps://gitlab.orekit.org/orekit/orekit/-/issues/1269Infinite loop when using specific date with CssiSpaceWeatherData2023-12-30T11:42:34ZVincent CUCCHIETTIvincent.cucchietti@csgroup.euInfinite loop when using specific date with CssiSpaceWeatherDataHi everyone,
@MaximeJ noticed an infinite loop when using the ```CssiSpaceWeatherData``` at specific date.
Error can be reproduced using the following file:
[2023-11-14_-_Error_Infinite_Loop_CSSI.zip](/uploads/3a3d469880db4135a4db555d8...Hi everyone,
@MaximeJ noticed an infinite loop when using the ```CssiSpaceWeatherData``` at specific date.
Error can be reproduced using the following file:
[2023-11-14_-_Error_Infinite_Loop_CSSI.zip](/uploads/3a3d469880db4135a4db555d8a3ef88f/2023-11-14_-_Error_Infinite_Loop_CSSI.zip)
Cheers,
Vincent
EDIT:
Issue occurs when using date with month with 30 or less days in the predicted monthly data. A fix has been found and is currently under implementation.12.0.1Vincent CUCCHIETTIvincent.cucchietti@csgroup.euVincent CUCCHIETTIvincent.cucchietti@csgroup.euhttps://gitlab.orekit.org/orekit/orekit/-/issues/1271Add Intellij checkstyle configuration in contributing.md2023-12-30T11:41:58ZBryan CazabonneAdd Intellij checkstyle configuration in contributing.mdIt would be great to add Checkstyle configuration for Intellij in the contributing.md file.It would be great to add Checkstyle configuration for Intellij in the contributing.md file.12.0.1Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/1277Regression in computation speed when using Ephemeris2023-12-30T11:41:37ZVincent CUCCHIETTIvincent.cucchietti@csgroup.euRegression in computation speed when using EphemerisHi everyone,
Opening this issue following [this forum thread](https://forum.orekit.org/t/decreased-computation-speed-of-eventdetector-in-orekit-12-0/3097)
Working on it.
Cheers,
VincentHi everyone,
Opening this issue following [this forum thread](https://forum.orekit.org/t/decreased-computation-speed-of-eventdetector-in-orekit-12-0/3097)
Working on it.
Cheers,
Vincent12.0.1Vincent CUCCHIETTIvincent.cucchietti@csgroup.euVincent CUCCHIETTIvincent.cucchietti@csgroup.euhttps://gitlab.orekit.org/orekit/orekit/-/issues/1280Add missing contributions for 12.0 in changes.xml2023-12-30T11:40:01ZMaxime JournotAdd missing contributions for 12.0 in changes.xmlSome contributions for fixing issues #1203 and #982 are missing in the changes.xml for v 12.0Some contributions for fixing issues #1203 and #982 are missing in the changes.xml for v 12.012.0.1Maxime JournotMaxime Journothttps://gitlab.orekit.org/orekit/orekit/-/issues/1025Frame alignement mistake in the Frames webpage2023-12-30T08:34:30ZbobbyfrasierFrame alignement mistake in the Frames webpageIn the [webpage about the Frames](https://www.orekit.org/site-orekit-latest/architecture/frames.html) on the Orekit website, there seem to be a mistake in the § "Solar system frames"
It is written :
> in these cases, the associated fram...In the [webpage about the Frames](https://www.orekit.org/site-orekit-latest/architecture/frames.html) on the Orekit website, there seem to be a mistake in the § "Solar system frames"
It is written :
> in these cases, the associated frames are aligned with **EME2000**. One important case is the solar system barycenter, as its associated frame is the ICRF
While it should be :
> in these cases, the associated frames are aligned with **GCRF**. One important case is the solar system barycenter, as its associated frame is the ICRF
(or ICRF since ICRF and GCRF are aligned)https://gitlab.orekit.org/orekit/orekit/-/issues/1274Use of Tide class in OceanTidesWaves2023-12-30T08:32:54ZGaëtan PierreUse of Tide class in OceanTidesWavesReplace `doodson`, `cGamma`, `cL`, `cLPrime`, `cF`, `cD`, `cOmega `by a `Tide`. In `addContribution`, replace `thetaF` computation by `getPhase` method.Replace `doodson`, `cGamma`, `cL`, `cLPrime`, `cF`, `cD`, `cOmega `by a `Tide`. In `addContribution`, replace `thetaF` computation by `getPhase` method.https://gitlab.orekit.org/orekit/orekit/-/issues/1289StepHandler and EventHandler callbacks order2023-12-30T08:30:43ZMirco RasottoStepHandler and EventHandler callbacks orderHi,
This issue is related to [this discussion](https://forum.orekit.org/t/stephandler-and-eventhandler-callbacks-order/3103) on the forum.
Thanks,
MircoHi,
This issue is related to [this discussion](https://forum.orekit.org/t/stephandler-and-eventhandler-callbacks-order/3103) on the forum.
Thanks,
Mirco