Skip to content

Commit a48fd72

Browse files
committed
Increase formated values to 15 digits (CSV export)
- for high precision timing apps - altough that may most likely be nonsense on range values and other observables, considering that RINEX only garantees 13 or 14 digits on observations Signed-off-by: Guillaume W. Bres <guillaume.bressaix@gmail.com>
1 parent cfb8426 commit a48fd72

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

src/fops/csv.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,15 @@ fn write_obs_rinex<P: AsRef<Path>>(rnx: &Rinex, path: P) -> Result<(), Error> {
9494
let flag = k.flag.to_string();
9595

9696
let clk = if let Some(clk) = v.clock {
97-
format!("{:.12}E", clk.offset_s)
97+
format!("{:.15}E", clk.offset_s)
9898
} else {
9999
"None".to_string()
100100
};
101101

102102
for signal in v.signals.iter() {
103103
let sv = signal.sv.to_string();
104104
let code = signal.observable.to_string();
105-
let value = format!("{:.12E}", signal.value);
105+
let value = format!("{:.15E}", signal.value);
106106

107107
let lli = if let Some(lli) = signal.lli {
108108
format!("{:?}", lli)
@@ -147,16 +147,16 @@ fn write_joint_nav_obs_rinex(brdc: &Rinex, obs: &Rinex, path: &Path) -> Result<(
147147
orbit_w.write_record(&[
148148
&t_str,
149149
&sv_str,
150-
&format!("{:.12E}", x_km),
151-
&format!("{:.12E}", y_km),
152-
&format!("{:.12E}", z_km),
150+
&format!("{:.15E}", x_km),
151+
&format!("{:.15E}", y_km),
152+
&format!("{:.15E}", z_km),
153153
])?;
154154

155155
if let Some(correction) = eph.clock_correction(toc, k.epoch, sv, 8) {
156156
clk_w.write_record(&[
157157
&t_str,
158158
&sv_str,
159-
&format!("{:.12E}", correction.to_seconds()),
159+
&format!("{:.15E}", correction.to_seconds()),
160160
])?;
161161
}
162162
}
@@ -186,9 +186,9 @@ fn write_raw_nav_rinex(brdc: &Rinex, path: &Path) -> Result<(), Error> {
186186
write!(fd, "{}, ", msgtype)?;
187187
write!(fd, "{}, ", frmtype)?;
188188

189-
write!(fd, "bias (s), {:.12E}, ", bias)?;
190-
write!(fd, "drift (s/s), {:.12E}, ", drift)?;
191-
write!(fd, "drift_r (s/s2), {:.12E}, ", drift_r)?;
189+
write!(fd, "bias (s), {:.15E}, ", bias)?;
190+
write!(fd, "drift (s/s), {:.15E}, ", drift)?;
191+
write!(fd, "drift_r (s/s2), {:.15E}, ", drift_r)?;
192192

193193
write!(fd, "healthy, {}, ", eph.sv_healthy())?;
194194

@@ -218,24 +218,24 @@ fn write_raw_nav_rinex(brdc: &Rinex, path: &Path) -> Result<(), Error> {
218218
} else if let Some(health) = orbit.as_bds_health_flag() {
219219
write!(fd, "{:?}", health)?;
220220
} else {
221-
write!(fd, "{:.14E}", orbit.as_f64())?;
221+
write!(fd, "{:.15E}", orbit.as_f64())?;
222222
}
223223
},
224224
"health2" => {
225225
if let Some(health) = orbit.as_glonass_health2_flag() {
226226
write!(fd, "{:?}", health)?;
227227
} else {
228-
write!(fd, "{:.14E}", orbit.as_f64())?;
228+
write!(fd, "{:.15E}", orbit.as_f64())?;
229229
}
230230
},
231231
"source" => {
232-
write!(fd, "{:.14E}", orbit.as_f64())?;
232+
write!(fd, "{:.15E}", orbit.as_f64())?;
233233
},
234234
"satType" => {
235235
if let Some(sat_type) = orbit.as_bds_satellite_type() {
236236
write!(fd, "{:?}", sat_type)?;
237237
} else {
238-
write!(fd, "{:.14E}", orbit.as_f64())?;
238+
write!(fd, "{:.15E}", orbit.as_f64())?;
239239
}
240240
},
241241
"integrity" => {
@@ -246,18 +246,18 @@ fn write_raw_nav_rinex(brdc: &Rinex, path: &Path) -> Result<(), Error> {
246246
} else if let Some(integrity) = orbit.as_bds_b2b_integrity() {
247247
write!(fd, "{:?}", integrity)?;
248248
} else {
249-
write!(fd, "{:.14E}", orbit.as_f64())?;
249+
write!(fd, "{:.15E}", orbit.as_f64())?;
250250
}
251251
},
252252
"status" => {
253253
if let Some(status) = orbit.as_glonass_status_mask() {
254254
write!(fd, "{:?}", status)?;
255255
} else {
256-
write!(fd, "{:.14E}", orbit.as_f64())?;
256+
write!(fd, "{:.15E}", orbit.as_f64())?;
257257
}
258258
},
259259
"tgd" => {},
260-
_ => write!(fd, "{:.14E}", orbit.as_f64())?,
260+
_ => write!(fd, "{:.15E}", orbit.as_f64())?,
261261
}
262262

263263
if num != num_orbits - 1 {

0 commit comments

Comments
 (0)