Two bugs in Orekit tutorials

I’ve found two bugs in Orekit tutorials. I have created two related issues. I am not sure if someone can see that?

The Velocity of sinex Station is in the unit of m/s, not m/y

The SatRangeBias(center-of-mass offset) should be minus for lageos2

PS: Is that proper to post this topic here?

Hi @lirw1984,

Yes we’ve seen the bugs on the forge, thank you for your contribution !
You can contribute the fix if you’re willing to :wink:
It is ok to post this here of course.

Hi @lirw1984 and @MaximeJ

I don’t think the first one is a bug in the tutorials. The values in the Sinex file for station velocity are given in m/y, so the conversion is needed. The bug is in the Orekit documentation. Two options are possible:

  1. Update the documentation to say that the return value is in m/y
  2. Don’t change the documentation and perform the conversion when parsing the Sinex file in Orekit.

Since 11.0, utility classes where developed to perform unit conversions. Therefore, I prefer the second option. In addition, we usually return SI-based values in Orekit.

Also, the analysis centers producing Lageos2’s orbit products generally not estimate the reflection coefficient. The value for Lageos2 is well known and equal to 1.13. The reason why we don’t active the solar radiation pressure for the Lageos2 tutorial is because it increases the computation a lot (i.e., ~16sec without SRP, ~69sec with SRP, and ~98sec with estimated SRP) without big improvements in the orbit solution.

For the second issue, do you have a reference?

Best regards,

In Orekit 11, the conversion is already done when parsing the Sinex file. So the documentation is right, too. It is sure in m/s.

Definitely, you are right that the velocity in Sinex is in m/y. While it is change to m/s in class SinexLoader.

// station X velocity (value is in m/y)
final double vx = parseDouble(line, 47, 22) / Constants.JULIAN_YEAR;
velocity = new Vector3D(vx, velocity.getY(), velocity.getZ());

For the second issue, about sat range bias of lageos2.

According to the modification application of Bias, the biasValue is added to the theoretical value. That is:

observedRange = range of centerOfMass + biasValue + othersModifiersValue

For lageos2, the center-of-mass offset should be minus from range-of-center-of-mass, since the CCR is on the surface.That is:

observedRange = range of centerOfMass - centerOfMassOffset + othersModifiersValue

I’m sorry… You’re right.
The transformation is indeed not necessary in the tutorials.