GaussianRandomGenerator sigma clipping

Hello,

I am using Orekit to simulate a network of ground stations, as a part of this I am creating fake observations using the Generator framework. I then perform OD on these observations to infer the performance of the network. I have a question about outliers within this framework.

As this is all synthetic data I would like to save some time during my OD process by not including outliers in the original distribution of noise added to my ranging data (as I will then have to iteratively filter for them later on). I would like add noise to my ranging data such that it is normally distrbuted but clipped at 3 sigma.

I have created a new class for doing this to replace GaussianRandomGenerator(Well19937a(seed)) but I get a NULL pointer exception when org.hipparchus.random.CorrelatedRandomVectorGenerator.nextVector(CorrelatedRandomVectorGenerator.java:176) tries to use my object. Am I approaching this in the correct manner? I was under the impression that I would only need to implement a single method for this class to work. My class definition is here:

class ClippedGuassianGenerator(NormalizedRandomGenerator):
def init(self):
pass
def nextNormalizedDouble(self):
while(1):
val = np.random.randn()
if val >= -3.0 and val <= 3.0:
return val

Thanks for any information!
/Paul

Hi @Paul1

We are very sorry for the late answer…

I think that’s a Python issue. To my mind, your ClippedGuassianGenerator class is not recognised. Did you tried to use the .cast_() method? Something like:

myGenerator = ClippedGuassianGenerator()
xx = XX(NormalizedRandomGenerator.cast_(myGenerator))

Bryan