Hello everyone,
First post here in the forum.
I am trying to generate bistatic (laser) ranges with BistaticRange objects and feeding them into a BatchLSEstimator to estimate the orbit. As both groundstations’ clocks might not be synchronized, a clock offset delta_t would add to the measured signal time of flight. To model and estimate this clock offset I tried using the ClockOffsetDriver of the Groundstation used to generate the bistatic ranges (I am using the Python wrapper):
...
delta_t = 10E-9
lon_zwd = radians(7.4652)
lat_zwd = radians(46.8772)
alt_zwd = 951.2
point_zwd = GeodeticPoint(lon_zwd, lat_zwd, alt_zwd)
frame_zwd = TopocentricFrame(earth, point_zwd, "Zimmerwald")
station_zwd = GroundStation(frame_zwd)
station_zwd.getClockOffsetDriver().setValue(delta_t)
station_zwd.getClockOffsetDriver().setSelected(True)
lon_grz = 15.493
lat_grz = 47.0671
alt_grz = 539.4
point_grz = GeodeticPoint(lon_grz, lat_grz, alt_grz)
frame_grz = TopocentricFrame(earth, point_grz, "Graz")
station_grz = GroundStation(frame_grz)
start_time = AbsoluteDate(2023, 7, 14, 0, 0, 0., UTC)
end_time = AbsoluteDate(2023, 7, 14, 3, 0, 0., UTC)
dt = 10.
bistatic_error = 10.
bistatic_weight = 0.8
sigma_range = 10.
seed = 42
noise_covariance_matrix = MatrixUtils.createRealDiagonalMatrix([sigma_range**2])
corr_noise = CorrelatedRandomVectorGenerator(noise_covariance_matrix, 1e-10,
GaussianRandomGenerator(MersenneTwister(seed)))
obs_sat_b = ObservableSatellite(0)
bs_generator = Generator()
bs_generator.addPropagator(propagator)
bs_range_builder = BistaticRangeBuilder(corr_noise, station_zwd, station_grz, bistatic_error, bistatic_weight, obs_sat_b)
bool_detector = BooleanDetector.andCombine([zwd_ele_detector, grz_ele_detector])
bs_scheduler = EventBasedScheduler(bs_range_builder,
FixedStepSelector(dt, UTC),
propagator, bool_detector,
SignSemantic.FEASIBLE_MEASUREMENT_WHEN_POSITIVE)
bs_generator.addScheduler(bs_scheduler)
...
For a time offset of 10 ns I would expect a shift in range of about 3 m. In practice, the measurements generated with and without the clock offset are identical.
Am I using the ClockOffsetDriver correctly? How could I model the station clock offset in Orekit in such a way it could also be estimated?
Cheers,
Pascal