Orekit issueshttps://gitlab.orekit.org/orekit/orekit/-/issues2021-03-05T18:40:52Zhttps://gitlab.orekit.org/orekit/orekit/-/issues/670call to "init" method of ForceModel interface in never done in AbstractGaussi...2021-03-05T18:40:52ZChristophe Le Briscall to "init" method of ForceModel interface in never done in AbstractGaussianContribution class and/or DSST propagatorThe `init` method of `ForceModel` interface is never called either by `AbstractGaussianContribution` class or by the `DSSTPropagator`. Therefore, if a `ForceModel` implements the `init` method, the `ForceModel` will never be initialized ...The `init` method of `ForceModel` interface is never called either by `AbstractGaussianContribution` class or by the `DSSTPropagator`. Therefore, if a `ForceModel` implements the `init` method, the `ForceModel` will never be initialized by a `DSSTForceModel` that extends `AbstractGaussianContribution` class.[AbstractGaussianContributionTest.java](/uploads/94c00bb58d1f16bbc8e615c0af7bb4cd/AbstractGaussianContributionTest.java)11.0Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/691Inconsistent signature of getParametersDrivers() method2021-03-05T18:40:53ZBryan CazabonneInconsistent signature of getParametersDrivers() methodThe `getParametersDrivers()` method has two different signatures between `{DSST}ForceModel` and `ObservedMeasurement`. In force models the return type is an array of `ParameterDriver` whereas in observed measurements, the return type is ...The `getParametersDrivers()` method has two different signatures between `{DSST}ForceModel` and `ObservedMeasurement`. In force models the return type is an array of `ParameterDriver` whereas in observed measurements, the return type is a list of `ParameterDriver`.
Having a consistent architecture between the two interfaces can be a good improvement.11.0Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/764Expose underlying UTC-TAI data in UTCScale2021-03-06T21:00:16ZAndrew GoetzExpose underlying UTC-TAI data in UTCScaleI would like an easy way to access the raw UTC-TAI offset data which underlie a `UTCScale`. I don't see any easy way of extracting that data right now. Thus, I would like to add a `getUTCTAIOffsets()` method to `UTCScale`.I would like an easy way to access the raw UTC-TAI offset data which underlie a `UTCScale`. I don't see any easy way of extracting that data right now. Thus, I would like to add a `getUTCTAIOffsets()` method to `UTCScale`.11.0https://gitlab.orekit.org/orekit/orekit/-/issues/523Add support for loading RINEX navigation file2021-03-10T10:34:16ZGowtham SivaramanAdd support for loading RINEX navigation fileOrekit (as of v9.3) supports RINEX (measurement/observation files) versions 2.x and 3.x. But the support for loading navigation files (Eg: ftp://cddis.nasa.gov/gnss/data/daily/2019/035/19n/brdc0350.19n.Z) is lacking. The RINEX data forma...Orekit (as of v9.3) supports RINEX (measurement/observation files) versions 2.x and 3.x. But the support for loading navigation files (Eg: ftp://cddis.nasa.gov/gnss/data/daily/2019/035/19n/brdc0350.19n.Z) is lacking. The RINEX data format document (ftp://igs.org/pub/data/format/rinex301.pdf
) discusses the format of navigation file broadcasted.
Similar to SEM/YUMA parsers, the support to run GPSPropagator at the end of loading RINEX navigation files can be made available.11.0https://gitlab.orekit.org/orekit/orekit/-/issues/555Change ionospheric models API2021-03-10T10:40:53ZBryan CazabonneChange ionospheric models APICurrent API used for the computation of the path delay due to ionospheric effects limits the implementation of new ionospheric models. Current API can be improved by:
* Add `SpacecraftState` information and the possibility to estimate s...Current API used for the computation of the path delay due to ionospheric effects limits the implementation of new ionospheric models. Current API can be improved by:
* Add `SpacecraftState` information and the possibility to estimate some ionospheric model parameters.
* Add the frequency parameter to limit the number of model initialization.
* Replace `GeodeticPoint`, elevation and azimuth parameters with `TopocentricFrame` parameter.
Old method parameters: `pathDelay(AbsoluteDate date, GeodeticPoint geo, double elevation, double azimuth)`
New method parameters: `pathDelay(SpacecraftState state, TopocentricFrame baseFrame, double frequency, double[] parameters)`11.0Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/758Support alpha-5 TLE satellite numbers2021-03-11T10:54:20ZMark RuttenSupport alpha-5 TLE satellite numbersUS Space Force have introduced a new form of 5-digit satellite number (a combination of a letter and numbers) that allows for numbers > 99,999. Orekit currently expects the satellite numbers to be decimal digits.
From the [space-track ...US Space Force have introduced a new form of 5-digit satellite number (a combination of a letter and numbers) that allows for numbers > 99,999. Orekit currently expects the satellite numbers to be decimal digits.
From the [space-track documentation](https://www.space-track.org/documentation#tle-alpha5):
Alpha-5 is a stopgap object numbering schema from the United States Space Force that increases the satellite catalog’s capacity to display up to 339,999 objects in the GP/GP_History API classes using legacy fixed-width Two and Three Line Element Set (TLE/3LE) formats.
Replacing the 1st digit of the 5-digit object number with an alphanumeric character makes it possible to represent 240,000 more numbers. Objects less than 100,000 are unaffected by Alpha-5, as are users who download elsets from the GP and GP_History API classes in other formats like XML, JSON, KVN, and CSV. In order to preserve legacy operations that depend on 5-digit integers, our legacy API Classes tle, tle_latest, and tle_publish will not change to Alpha-5.
Only capital letters and numbers are used in Alpha-5. The letters “I” and “O” are omitted to avoid confusion with the numbers “1” and “0”.11.0https://gitlab.orekit.org/orekit/orekit/-/issues/768Parse several types of ITRF specifications2021-03-15T14:50:26ZLuc MaisonobeParse several types of ITRF specificationsSeveral ways to specify ITRF versions are used in several contexts.
- some contexts allow years on two digits (CCSDS ODM before version 3, CCSDS ADM, CCSDS TDM, Orekit `itrf-version.conf`)
- all contexts allow years on 4 digits, some r...Several ways to specify ITRF versions are used in several contexts.
- some contexts allow years on two digits (CCSDS ODM before version 3, CCSDS ADM, CCSDS TDM, Orekit `itrf-version.conf`)
- all contexts allow years on 4 digits, some require them
- some contexts use "-" as separator (CCSDS, Orekit `itrf-version.conf`)
- some contexts use " " as separator (comments in IERS bulletins B)
- some contexts don't use any separators (CCSDS after ITRF2000)
- some contexts would be simpler if "_" was allowed as a separator (parsing from enumerates `name()` output)
- some contexts allow lower case (Orekit `itrf-version.conf`)
It would be simpler if Orekit allowed all these variations to be used, mainly in `itrf-version.conf` and in CCSDS parsing.
For consistency, the constants of the various enums (`org.orekit.frames.ITRFVersion`, `org.orekit.frames.HelmertTransformation.Predefined`, `org.orekit.files.ccsds.definitions.CelestialBodyFrame`) should all use 4 digits years instead of mixing two digits and four digits.11.0Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/769Add SSR Ionospheric model2021-03-23T15:09:30ZBryan CazabonneAdd SSR Ionospheric modelSSR IM201 messages provides elements to compute the ionospheric delay acting on GNSS satellites for a given location. Details about the implementation of the model are given in: https://files.igs.org/pub/data/format/igs_ssr_v1.pdfSSR IM201 messages provides elements to compute the ionospheric delay acting on GNSS satellites for a given location. Details about the implementation of the model are given in: https://files.igs.org/pub/data/format/igs_ssr_v1.pdf11.0Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/763Add support for IGS SSR data2021-04-02T14:20:59ZBryan CazabonneAdd support for IGS SSR dataIn October 2020, IGS released the first format for SSR (State Space Representation) data: https://files.igs.org/pub/data/format/igs_ssr_v1.pdf
It could be interesting to start the implementation of this format in OrekitIn October 2020, IGS released the first format for SSR (State Space Representation) data: https://files.igs.org/pub/data/format/igs_ssr_v1.pdf
It could be interesting to start the implementation of this format in Orekit11.0https://gitlab.orekit.org/orekit/orekit/-/issues/775Bug : NullPointerException in the method named interpolate() in FieldSpacecra...2021-04-02T14:20:59ZGhost UserBug : NullPointerException in the method named interpolate() in FieldSpacecraftState.javaIn the method interpolate() in FieldSpacecraftState.java, the orbit field is used to make an array. However the orbit can be null is AbsolutePVCoordinates are used. Therefore we obtain in this case a NullPointerException.
the line : fin...In the method interpolate() in FieldSpacecraftState.java, the orbit field is used to make an array. However the orbit can be null is AbsolutePVCoordinates are used. Therefore we obtain in this case a NullPointerException.
the line : final T[] mm = MathArrays.buildArray(orbit.getA().getField(), 1);
could be change such as : final T[] mm = MathArrays.buildArray(date.getField(), 1);11.0https://gitlab.orekit.org/orekit/orekit/-/issues/774TimeStampedFieldPVCoordinates should implements FieldTimeStamped2021-04-06T12:03:36ZBryan CazabonneTimeStampedFieldPVCoordinates should implements FieldTimeStampedThe change is straightforward because the `getDate()` method is already implemented in the class.The change is straightforward because the `getDate()` method is already implemented in the class.11.0Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/773TimeStampedFieldAngularCoordinates should implements FieldTimeStamped2021-04-07T19:50:45ZBryan CazabonneTimeStampedFieldAngularCoordinates should implements FieldTimeStampedThe change is straightforward because the `getDate()` method is already implemented in the class.The change is straightforward because the `getDate()` method is already implemented in the class.11.0https://gitlab.orekit.org/orekit/orekit/-/issues/474Add support for version 3 of CCSDS Orbit Data Messages2021-04-16T16:21:36ZLuc MaisonobeAdd support for version 3 of CCSDS Orbit Data MessagesCCSDS Orbit Data Message will be updated in the near future, with
a new Orbit Comprehensive Message (OCM) in addition to the existing
OPM, OMM and OEM already supported by Orekit.
The update was presented during SpaceOps 2018 confer...CCSDS Orbit Data Message will be updated in the near future, with
a new Orbit Comprehensive Message (OCM) in addition to the existing
OPM, OMM and OEM already supported by Orekit.
The update was presented during SpaceOps 2018 conference by David
Berry (see https://arc.aiaa.org/doi/pdf/10.2514/6.2018-2456). The
paper provided a link to the current draft.
We discussed with Dave at the conference and agreed Orekit could
provide one of the prototype implementations for the standard.
*(from redmine: issue id 474, created on 2018-06-04)*11.0Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/780Wrong URL for SonarQube badges2021-06-06T18:25:09ZGuilhem BonnefilleWrong URL for SonarQube badgesThe SonarQube badges URLs in the README are incorrect, while the one from Gitlab's project are right.
I suspect it is due to https://gitlab.orekit.org/orekit/orekit/-/commit/3736723bf97b29c38378700bb845c26f5fcace2a
IMHO, it is better t...The SonarQube badges URLs in the README are incorrect, while the one from Gitlab's project are right.
I suspect it is due to https://gitlab.orekit.org/orekit/orekit/-/commit/3736723bf97b29c38378700bb845c26f5fcace2a
IMHO, it is better to keep the Maven ID (org.orekit:orekit) as key.
It is a pain that [Gitlab CE does not offer the ability to run a merge-request of a fork in the context of the upstream project](https://docs.gitlab.com/ee/ci/merge_request_pipelines/index.html#run-pipelines-in-the-parent-project-for-merge-requests-from-a-forked-project)11.0Sébastien Dinotsebastien.dinot@csgroup.euSébastien Dinotsebastien.dinot@csgroup.euhttps://gitlab.orekit.org/orekit/orekit/-/issues/782Update exception message of Orekit internal error2021-06-06T18:25:09ZBryan CazabonneUpdate exception message of Orekit internal errorThis Orekit internal error exception proposes to the user to open an issue on GitLab. However, encountering this error message does not mean that there is a bug in Orekit. So, an open discussion on the forum is better than an issue on th...This Orekit internal error exception proposes to the user to open an issue on GitLab. However, encountering this error message does not mean that there is a bug in Orekit. So, an open discussion on the forum is better than an issue on the source code repository.
The exception message must be updated.11.0https://gitlab.orekit.org/orekit/orekit/-/issues/783Creation of new class GNSSPropagatorBuilder independant of GPSPropagator class2021-06-06T18:25:09ZArnau OchoaCreation of new class GNSSPropagatorBuilder independant of GPSPropagator classA new class `GNSSPropagatorBuilder`, independant of `GPSPropagator` class could be created in substitution of the nested class `GPSPropagator$Builder`. This would be more consistent with Builder classes in Orekit and would also allow to ...A new class `GNSSPropagatorBuilder`, independant of `GPSPropagator` class could be created in substitution of the nested class `GPSPropagator$Builder`. This would be more consistent with Builder classes in Orekit and would also allow to use `GPSPropagator` from MATLAB.
See [this forum post](https://forum.orekit.org/t/instantiating-nested-class-from-matlab/1207) for more details.11.0https://gitlab.orekit.org/orekit/orekit/-/issues/793Make SP3File constructors and methods public2021-06-16T06:43:49ZBryan CazabonneMake SP3File constructors and methods publicI'm currently doing some tests in ephemeris file conversion (e.g., writing a SP3 file from a parsed CPF file). However, I'm limited because most of the methods in `SP3File` class are package protected, including the constructor. I propos...I'm currently doing some tests in ephemeris file conversion (e.g., writing a SP3 file from a parsed CPF file). However, I'm limited because most of the methods in `SP3File` class are package protected, including the constructor. I propose to update all the methods and constructors from protected to public.11.0https://gitlab.orekit.org/orekit/orekit/-/issues/796CPF writer uses start ephemeris epoch to write end ephemeris epoch2021-06-18T06:56:50ZBryan CazabonneCPF writer uses start ephemeris epoch to write end ephemeris epochIn CPF writer class, the writing on line H2 must be fixed to use the last epoch instead of the start epoch to write the ephemeris end date.In CPF writer class, the writing on line H2 must be fixed to use the last epoch instead of the start epoch to write the ephemeris end date.11.0Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/702Eclipses by Moon not considered in solar radiation pressure force model2021-06-21T14:28:04ZLuc MaisonobeEclipses by Moon not considered in solar radiation pressure force modelThe solar radiation pressure force model does not consider the
eclipses generated by Moon.
This induces errors in orbit determination for GNSS satellites at some epochs.The solar radiation pressure force model does not consider the
eclipses generated by Moon.
This induces errors in orbit determination for GNSS satellites at some epochs.11.0https://gitlab.orekit.org/orekit/orekit/-/issues/801Add getter for meteorological data used in CRD data block2021-06-30T12:25:34ZBryan CazabonneAdd getter for meteorological data used in CRD data blockWith the current implementation, only a `Meteo` object is accessible to the user. It could be useful to add a getter to access the list of `MeteorologicalMeasurement` used to build this object.With the current implementation, only a `Meteo` object is accessible to the user. It could be useful to add a getter to access the list of `MeteorologicalMeasurement` used to build this object.11.0Bryan CazabonneBryan Cazabonne