@@ -2,6 +2,9 @@ use cggtts::prelude::{Epoch, CGGTTS};
2
2
use itertools:: Itertools ;
3
3
use plotly:: common:: Mode ;
4
4
use std:: collections:: HashMap ;
5
+ use std:: fs:: File ;
6
+ use std:: io:: Write ;
7
+ use std:: path:: Path ;
5
8
6
9
use crate :: plot:: {
7
10
//build_timedomain_plot,
@@ -180,7 +183,7 @@ pub fn single_clock(cggtts: &CGGTTS, ctx: &mut PlotContext) {
180
183
}
181
184
}
182
185
183
- pub fn clock_comparison ( pool : & Vec < CGGTTS > , ctx : & mut PlotContext ) {
186
+ pub fn clock_comparison ( workspace : & Path , pool : & Vec < CGGTTS > , ctx : & mut PlotContext ) {
184
187
let ref_clock = & pool[ 0 ] ;
185
188
info ! ( "{} is considered reference clock" , ref_clock. station) ;
186
189
@@ -241,4 +244,42 @@ pub fn clock_comparison(pool: &Vec<CGGTTS>, ctx: &mut PlotContext) {
241
244
}
242
245
}
243
246
}
247
+
248
+ let mut fd = File :: create ( workspace. join ( & pool[ 0 ] . station ) )
249
+ . expect ( "failed to create textfile: permission denied" ) ;
250
+
251
+ writeln ! ( fd, "{}" , "t, CLOCK(A), CLOCK(B), SV, (elev[°], azi[°]) @REF, (elev[°], azi[°]) @CLOCK, SIGNAL, CLOCK(A) - CLOCK(B) [s]" )
252
+ . expect ( "failed to generate textfile" ) ;
253
+
254
+ for trk in ref_clock. tracks ( ) {
255
+ let ref_t = trk. epoch ;
256
+ let ref_sv = trk. sv ;
257
+ let ( ref_elev, ref_azim) = ( trk. elevation , trk. azimuth ) ;
258
+ let ref_frc = & trk. frc ;
259
+ for i in 1 ..pool. len ( ) {
260
+ let track = pool[ i]
261
+ . tracks ( )
262
+ . filter ( |trk| trk. epoch == ref_t && trk. sv == ref_sv && trk. frc == * ref_frc)
263
+ . reduce ( |trk, _| trk) ;
264
+ if let Some ( b_trk) = track {
265
+ let ( b_elev, b_azim) = ( b_trk. elevation , b_trk. azimuth ) ;
266
+ let dt = b_trk. data . refsys - trk. data . refsys ;
267
+ writeln ! (
268
+ fd,
269
+ "{:?}, {}, {}, {}, ({:.2E}, {:.2E}), ({:.2E}, {:.2E}), {}, {:.3E}" ,
270
+ ref_t,
271
+ pool[ i] . station,
272
+ pool[ 0 ] . station,
273
+ ref_sv,
274
+ ref_elev,
275
+ ref_azim,
276
+ b_elev,
277
+ b_azim,
278
+ ref_frc,
279
+ dt
280
+ )
281
+ . expect ( "failed to generate textfile" ) ;
282
+ }
283
+ }
284
+ }
244
285
}
0 commit comments