Orekit issueshttps://gitlab.orekit.org/orekit/orekit/-/issues2019-02-03T19:16:15Zhttps://gitlab.orekit.org/orekit/orekit/-/issues/517GPT2 model uses hardcoded 5° step2019-02-03T19:16:15ZLuc MaisonobeGPT2 model uses hardcoded 5° stepThe GPT2 model cannot load grids with finer or coarser step sizes than an hardcoded value of 5°.
As the grids include the latitude/longitude values, they could theoretically be loaded with a
different step size. Indeed, tuwien does provi...The GPT2 model cannot load grids with finer or coarser step sizes than an hardcoded value of 5°.
As the grids include the latitude/longitude values, they could theoretically be loaded with a
different step size. Indeed, tuwien does provide at least to step sizes: 1° and 5°.9.3Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/516GPSPropagator should manage clock corrections2019-02-03T19:16:33ZLuc MaisonobeGPSPropagator should manage clock correctionsThe GPSPropagator should be able to provide clock corrections, including the relativistic correction related to the propagated state as additional states.The GPSPropagator should be able to provide clock corrections, including the relativistic correction related to the propagated state as additional states.9.3Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/515add clock offset for inter-satellite measurements2019-02-01T18:07:12ZLuc Maisonobeadd clock offset for inter-satellite measurementsThis is the same as issue #513, but for inter-satellites measurements.This is the same as issue #513, but for inter-satellites measurements.9.3Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/513Add clock bias in measurements2019-02-01T18:07:12ZLuc MaisonobeAdd clock bias in measurementsMeasurements made by ground stations may be affected by clock biases.
Such a bias should be available for estimation in orbit determination.Measurements made by ground stations may be affected by clock biases.
Such a bias should be available for estimation in orbit determination.9.3Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/512Add weather model GPT22019-02-03T19:20:38ZBryan CazabonneAdd weather model GPT2Same as issue #511 but with the Global Pressure and Temperature 2 (GPT2) model.
GPT2 model is an improvement of GPT model.
More information about this model can be found at : [GPT2](http://vmf.geo.tuwien.ac.at/documentation/Lagler%20et...Same as issue #511 but with the Global Pressure and Temperature 2 (GPT2) model.
GPT2 model is an improvement of GPT model.
More information about this model can be found at : [GPT2](http://vmf.geo.tuwien.ac.at/documentation/Lagler%20et%20al.,%202013%20%20%20(GPT2).pdf)9.3Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/511Add weather model GPT2019-02-03T19:20:53ZBryan CazabonneAdd weather model GPTOrekit provides two tropospheric models (Marini-Murray and Saastamoinen) that need weather parameters inputs. In the case of the user does not have access to weather data, standard atmosphere initialization is possible. However, it can b...Orekit provides two tropospheric models (Marini-Murray and Saastamoinen) that need weather parameters inputs. In the case of the user does not have access to weather data, standard atmosphere initialization is possible. However, it can be useful to implement weather models that allow the computation of the weather parameters thanks to the station position (latitude, longitude and altitude) and the date. One of these models is GPT (Global Pressure and Temperature). It was developed by the Vienna University.
More information about these models can be found at: [GPT](http://vmf.geo.tuwien.ac.at/documentation/Boehm%20et%20al.,%202007%20%20%20(GPT).pdf)9.3Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/510TimeStampedFieldPVCoordinates.shiftedBy drops derivatives2019-02-01T18:07:12ZLuc MaisonobeTimeStampedFieldPVCoordinates.shiftedBy drops derivativesWhen calling the shiftedBy(dt) method on an instance of TimeStampedFieldPVCoordinates with a dt argument that includes derivatives, the derivatives are silently dropped in the date embedded in the created instance.When calling the shiftedBy(dt) method on an instance of TimeStampedFieldPVCoordinates with a dt argument that includes derivatives, the derivatives are silently dropped in the date embedded in the created instance.9.3Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/509Differentiation.differentiate with ParameterFunction/ParameterDriver often fails2019-02-01T18:07:12ZLuc MaisonobeDifferentiation.differentiate with ParameterFunction/ParameterDriver often failsThe method only works if the scaling factor of the ParameterDriver is 1.0 and if the ParameterDriver passed at the call to differentiate is the same as the one passed to the returned ParameterFunction.
If scale is different from 1.0, th...The method only works if the scaling factor of the ParameterDriver is 1.0 and if the ParameterDriver passed at the call to differentiate is the same as the one passed to the returned ParameterFunction.
If scale is different from 1.0, the returned derivative is the real derivative multiplied by scale.
If the parameterDriver p2 passed to the returned ParameterFunction is not the parameter p1 passed when calling differentiate, the derivative is computed using the current value of p1, not p2.9.3Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/508Inconsistent conversions from AbsoluteDate to FieldAbsoluteDate2019-02-01T18:07:12ZLuc MaisonobeInconsistent conversions from AbsoluteDate to FieldAbsoluteDateDepending on how an AbsoluteDate is converted into a FieldAbsoluteDate, the result is not the same.
When running the following example, the difference is about 3.2e-10 second. It is not big but as absolutely
no computation should occur ...Depending on how an AbsoluteDate is converted into a FieldAbsoluteDate, the result is not the same.
When running the following example, the difference is about 3.2e-10 second. It is not big but as absolutely
no computation should occur in the conversion, we should end up with exactly 0, or at least ulp(1.0), i.e.
about 2.2e-16.
```java
AbsoluteDate date = new AbsoluteDate(2000, 2, 24, 17, 5, 30.047, TimeScalesFactory.getUTC());
FieldAbsoluteDate<T> tA = new FieldAbsoluteDate<>(field, date);
FieldAbsoluteDate<T> tB = new FieldAbsoluteDate<>(date, field.getZero());
Assert.assertEquals(0.0, tA.durationFrom(tB).getReal(), FastMath.ulp(1.0));
```9.3Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/501Deprecate GFunction2019-02-03T19:17:10ZEvan WardDeprecate GFunctionNow that OrekitException is unchecked `Function` can be used instead of `GFunction`. Also make `GFunction` extend `Function`.Now that OrekitException is unchecked `Function` can be used instead of `GFunction`. Also make `GFunction` extend `Function`.9.3Evan WardEvan Wardhttps://gitlab.orekit.org/orekit/orekit/-/issues/500get interval of validity from a TimeSpanMap2018-12-18T16:41:37ZLuc Maisonobeget interval of validity from a TimeSpanMap`TimeSpanMap` allows to store objects that are valid only for a certain time range, and replaced by others when
their validity ends. They are used for example to store propagation states before and after maneuvers, or
attitude modes duri...`TimeSpanMap` allows to store objects that are valid only for a certain time range, and replaced by others when
their validity ends. They are used for example to store propagation states before and after maneuvers, or
attitude modes during attitude sequences changes, or satellite code to PRN number mapping in GNSS constellations.
It is easy to retrieve the object valid at any specified time using the `get(AbsoluteDate)` method. Is is however
cumbersome to know the interval of validity of this object. Users have to retrieve the full set of transitions using
`getTransitions()` and explore it.
It would be nice to have a `getValidity(AbsoluteDate)` method to retrieve the interval to which the provided date belongs.9.3Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/498Add Mendes-Pavlis tropospheric model2019-02-01T18:07:12ZBryan CazabonneAdd Mendes-Pavlis tropospheric modelIt could be interesting to add the Mendes & Pavlis tropospheric model on Orekit.
This model is recommended by the IERS Conventions 2010 for optical techniques and it presents better accuracy than the current models on Orekit (Murini-Mur...It could be interesting to add the Mendes & Pavlis tropospheric model on Orekit.
This model is recommended by the IERS Conventions 2010 for optical techniques and it presents better accuracy than the current models on Orekit (Murini-Murray and Saastamoinen).
Reference article:
Mendes, V. B., & Pavlis, E. C. (2004). High‐accuracy zenith delay prediction at optical wavelengths. Geophysical Research Letters, 31(14).
IERS Conventions (2010): https://www.iers.org/SharedDocs/Publikationen/EN/IERS/Publications/tn/TechnNote36/tn36_132.pdf?__blob=publicationFile&v=19.3Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/497JavaDoc fix for Marini-Murray tropospheric model2019-02-01T18:07:12ZBryan CazabonneJavaDoc fix for Marini-Murray tropospheric modelOn MariniMurrayModel class current JavaDoc of `getStandardModel` method is the following one:
/** Create a new Marini-Murray model using a standard atmosphere model.
*
* <ul>
* <li>temperature: 20 degree Celsius
...On MariniMurrayModel class current JavaDoc of `getStandardModel` method is the following one:
/** Create a new Marini-Murray model using a standard atmosphere model.
*
* <ul>
* <li>temperature: 20 degree Celsius
* <li>pressure: 1013.25 mbar
* <li>humidity: 50%
* </ul>
*
* @param latitude site latitude
* @param frequency laser frequency, Hz
*
* @return a Saastamoinen model with standard environmental values
*/
It should be:
/** Create a new Marini-Murray model using a standard atmosphere model.
*
* <ul>
* <li>temperature: 20 degree Celsius
* <li>pressure: 1013.25 mbar
* <li>humidity: 50%
* </ul>
*
* @param latitude site latitude
* @param wavelength laser wavelength, nm
*
* @return a Marini-Murray model with standard environmental values
*/9.3Bryan CazabonneBryan Cazabonnehttps://gitlab.orekit.org/orekit/orekit/-/issues/496JavaDoc fix for TimeComponents.getSecond()2019-02-03T19:17:21ZEvan WardJavaDoc fix for TimeComponents.getSecond()JavaDoc for `TimeComponents.getSecond()` states `return second second number from 0.0 to 60.0 (excluded)` but since the constructor allows values up to 61 seconds I believe the documentation is wrong and should be updated.JavaDoc for `TimeComponents.getSecond()` states `return second second number from 0.0 to 60.0 (excluded)` but since the constructor allows values up to 61 seconds I believe the documentation is wrong and should be updated.9.3Evan WardEvan Wardhttps://gitlab.orekit.org/orekit/orekit/-/issues/495The MarshallSolarActivityFutureEstimation class could implement the NRLMSISE...2019-02-03T19:17:32ZPascal ParraudThe MarshallSolarActivityFutureEstimation class could implement the NRLMSISE00InputParameters interfaceIt would be of interest to make the MarshallSolarActivityFutureEstimation class implement the NRLMSISE00InputParameters interface in order to provide data to the NRLMSISE00 atmospheric model. Updating the code is straightforward.It would be of interest to make the MarshallSolarActivityFutureEstimation class implement the NRLMSISE00InputParameters interface in order to provide data to the NRLMSISE00 atmospheric model. Updating the code is straightforward.9.3https://gitlab.orekit.org/orekit/orekit/-/issues/494Promote the measurements generators from the unit tests part to the regular l...2019-02-03T19:17:46ZLuc MaisonobePromote the measurements generators from the unit tests part to the regular library partOrbit Determination validation involved writing measurements generators for all measurements types.
As validation was very accurate, these generators are very realistic and not straightforward. They
would be useful in many mission analys...Orbit Determination validation involved writing measurements generators for all measurements types.
As validation was very accurate, these generators are very realistic and not straightforward. They
would be useful in many mission analysis tools, so they should be promoted to be available in the
library.9.3Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/1361Allow splicing of Rinex clock files2024-03-27T22:08:36ZLuc MaisonobeAllow splicing of Rinex clock filesSince issue #1155 has been solved, it is possible to splice SP3 files and thus interpolate between the end of one file and the beginning of the next one.
The same feature should be available for Rinex clock files.Since issue #1155 has been solved, it is possible to splice SP3 files and thus interpolate between the end of one file and the beginning of the next one.
The same feature should be available for Rinex clock files.12.1Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/1360Add AggregatedClockModel2024-03-27T22:08:03ZLuc MaisonobeAdd AggregatedClockModel`SP3Ephemeris` allows to generate a global clock model by aggregating the clock models from each `SP3Segment`.
This clock model aggregation feature should be available as a new general implementation of `ClockModel`.`SP3Ephemeris` allows to generate a global clock model by aggregating the clock models from each `SP3Segment`.
This clock model aggregation feature should be available as a new general implementation of `ClockModel`.12.1Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/1359Add getFirstNonNullSpan and getLastNonNullSpan to TimeSpanMap2024-03-27T22:08:03ZLuc MaisonobeAdd getFirstNonNullSpan and getLastNonNullSpan to TimeSpanMapIt is possible to get the first and last `Span` in a `TimeSpanMap`.
However, one classical use case for `TimeSpanMap` is to build it first with a `null` object covering the full time range from past infinity to future infinity, and then ...It is possible to get the first and last `Span` in a `TimeSpanMap`.
However, one classical use case for `TimeSpanMap` is to build it first with a `null` object covering the full time range from past infinity to future infinity, and then to add one or several objects with limited time ranges. In this case, the first and last span are not meaningful because they correspond to the out of range parts that extends to infinity.
It would be more user-friendly to be able to retrieve directly the first and last spans that have non-null data. Of course, an exception should be thrown if all spans have null data.12.1Luc MaisonobeLuc Maisonobehttps://gitlab.orekit.org/orekit/orekit/-/issues/1356Various issues in Rinex clock file header parsing for mixed systems2024-03-22T23:27:33ZLuc MaisonobeVarious issues in Rinex clock file header parsing for mixed systemsClock file [JAX0MGXFIN_20202430000_01D_30S_CLK.CLK.gz](https://cddis.nasa.gov/archive/gnss/products/2121/JAX0MGXFIN_20202430000_01D_30S_CLK.CLK.gz) has mixed content (satellite system set to 'M' in the first header line.
This triggers se...Clock file [JAX0MGXFIN_20202430000_01D_30S_CLK.CLK.gz](https://cddis.nasa.gov/archive/gnss/products/2121/JAX0MGXFIN_20202430000_01D_30S_CLK.CLK.gz) has mixed content (satellite system set to 'M' in the first header line.
This triggers several errors when attempting to parse the header:
- an exception is thrown when attemptinf to set up a first version of time scale while parsing line 1 (despite it will be overridden later when "TIME SYSTEM ID" will be parsed)
- line "SYS / DCBS APPLIED" as no satellite system, as no corrections are applied, this triggers another exception
- line "SYS / PCVS APPLIED" as no satellite system, as no corrections are applied, this triggers another exception12.1Luc MaisonobeLuc Maisonobe