Make Measurement data

Hi, I am using Orekit for OD. I want to make measurement data(GPS Pointing Solution, PV) and check this before OD to compare with other program with the same data.

Is it possible to make measurement data applied bias, noise and etc,.

Hi raycarter,

It is possible to generate measurement data with biases, noise, tropospheric effect and everything you want. You can have a look at the estimation documentation, there is a section about the measurement generation architecture with a complete (and complex) class diagram.

Basically, you set up a Generator and add to it as many Scheduler that you want, each one being able to generate measurements of one type with one specific scheduling. As an example generating Range measurements from one ground station requires the station to see the spacecraft whereas generating PV measurements can be done continuously at some user-defined rate. When a Scheduler is built, it relies on a MeasurementBuilder (RangeBuilder, PVBuilder…) and you can add as many EstimationModifier instances to it as you want (just as you would add them to an ObservedMeasurement prior to the orbit determination itself) so there effects are included in the generated measurements. So you can add consider a bias by just adding a Bias instance to your measurement builder.

Orekit does not yet provide a generic NoiseModifier in the same spirit as Bias but it would clearly be a good addition (an easy one to make). Could you open a feature request in our issue tracker so we don’t forget about it? You can also contribute one if you want.

Does this add a constant bias, or does the bias modifier draw from the random number generator provided to the measurement builder? It sounds like you’re saying a NoiseModifier is needed in order to have a random bias, such as an exponentially correlated random variable.

Hi @autumnsault,

The Bias modifier adds a constant bias.
The random noise addition exists in the measurement generation package, see the attribute CorrelatedRandomVectorGenerator noiseSource in class AbstractMeasurementBuilder.

I think what Luc is saying is that instead of having it as an attribute in the class we could have it as an EstimationModifier, in the same fashion as we have the Bias modifier.
I think it is more a question of improving the architecture and modularity of Orekit’s measurement package rather than adding a feature that doesn’t exist yet.
Am I right @luc ?


But white noise has different properties than a non-constant bias, typically. Is it possible to add both using a random generator?

I don’t think so.
If you want that you will have to write your own EstimationModifier object.

Yes, this is what I suggest.

The constructor for the CorrelatedRandomVectorGenerator that AbstractMeasurementBuilder expect can have a non-zero mean that you can use as a bias if you want to have both bias and noise implemented by the same object.