Skip to content

Commit f865ce9

Browse files
committed
minor py bin
1 parent b6a017c commit f865ce9

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

bin/plot_integration_results.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
"error_bar_alpha": 0.2,
101101
}
102102

103+
103104
def parse(source, sec2hr=False):
104105
t = []; lx1=[]; ly1=[]; lz1=[];
105106
lx2=[]; ly2=[]; lz2=[];
@@ -154,6 +155,7 @@ def match(t1, x1, t2, x2, matched_indexes = None):
154155
scale_vel = args.scale_vel
155156

156157
plotOptions = defaultPlotOptions
158+
primary_input = 'stdin' if not args.from_file else args.from_file
157159

158160
# read from file or stdin
159161
if args.from_file is not None:
@@ -206,6 +208,21 @@ def match(t1, x1, t2, x2, matched_indexes = None):
206208
axs[1,1].legend(loc='upper left')
207209
axs[2,1].legend(loc='upper left')
208210

211+
# Stats
212+
print(f'{primary_input:25s} {args.compare_to:16s}')
213+
print(f'X : {np.average([(z[0]-z[1]) for z in zip(lx1,lx2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lx1,lx2)]):.4f} [m]', end='')
214+
print(f' {np.average([(z[0]-z[1]) for z in zip(slx1,slx2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(slx1,slx2)]):.4f} [m]')
215+
print(f'Y : {np.average([(z[0]-z[1]) for z in zip(ly1,ly2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(ly1,ly2)]):.4f} [m]', end='')
216+
print(f' {np.average([(z[0]-z[1]) for z in zip(sly1,sly2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(sly1,sly2)]):.4f} [m]')
217+
print(f'Z : {np.average([(z[0]-z[1]) for z in zip(lz1,lz2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lz1,lz2)]):.4f} [m]', end='')
218+
print(f' {np.average([(z[0]-z[1]) for z in zip(slz1,slz2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(slz1,slz2)]):.4f} [m]')
219+
print(f'Vx: {np.average([(z[0]-z[1]) for z in zip(lvx1,lvx2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lvx1,lvx2)])*1e3:.4f} [mm/sec]', end='')
220+
print(f' {np.average([(z[0]-z[1]) for z in zip(slvx1,slvx2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(slvx1,slvx2)])*1e3:.4f} [mm/sec]')
221+
print(f'Vy: {np.average([(z[0]-z[1]) for z in zip(lvy1,lvy2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lvy1,lvy2)])*1e3:.4f} [mm/sec]', end='')
222+
print(f' {np.average([(z[0]-z[1]) for z in zip(slvy1,slvy2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(slvy1,slvy2)])*1e3:.4f} [mm/sec]')
223+
print(f'Vz: {np.average([(z[0]-z[1]) for z in zip(lvz1,lvz2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lvz1,lvz2)])*1e3:.4f} [mm/sec]', end='')
224+
print(f' {np.average([(z[0]-z[1]) for z in zip(slvz1,slvz2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(slvz1,slvz2)])*1e3:.4f} [mm/sec]')
225+
209226
## Plot state results (not differences)
210227
if (args.nodif or args.withdif) and not args.compare_to:
211228
print("Plotting state results ...")
@@ -246,7 +263,15 @@ def match(t1, x1, t2, x2, matched_indexes = None):
246263
# Add invisible axes for left and right column labels
247264
fig.text(0.04, 0.5, '[m]', va='center', rotation='vertical')
248265
fig.text(0.96, 0.5, '[mm/sec]', va='center', rotation='vertical')
249-
266+
267+
# Stats
268+
print(f'X : {np.average([(z[0]-z[1]) for z in zip(lx1,lx2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lx1,lx2)]):.4f} [m]')
269+
print(f'Y : {np.average([(z[0]-z[1]) for z in zip(ly1,ly2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(ly1,ly2)]):.4f} [m]')
270+
print(f'Z : {np.average([(z[0]-z[1]) for z in zip(lz1,lz2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lz1,lz2)]):.4f} [m]')
271+
print(f'Vx: {np.average([(z[0]-z[1]) for z in zip(lvx1,lvx2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lvx1,lvx2)])*1e3:.4f} [mm/sec]')
272+
print(f'Vy: {np.average([(z[0]-z[1]) for z in zip(lvy1,lvy2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lvy1,lvy2)])*1e3:.4f} [mm/sec]')
273+
print(f'Vz: {np.average([(z[0]-z[1]) for z in zip(lvz1,lvz2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lvz1,lvz2)])*1e3:.4f} [mm/sec]')
274+
250275
## Plot differences per component
251276
if (args.withdif or (not args.nodif)) and not args.compare_to:
252277
print("Plotting state diffs ...")
@@ -271,6 +296,14 @@ def match(t1, x1, t2, x2, matched_indexes = None):
271296
axs[1,1].text(.01,.99,r'$V_{Y_{ref}}-V_{Y}$',transform=axs[1,1].transAxes,verticalalignment='top', horizontalalignment='left',fontsize=10,clip_on=True)
272297
axs[2,1].text(.01,.99,r'$V_{Z_{ref}}-V_{Z}$',transform=axs[2,1].transAxes,verticalalignment='top', horizontalalignment='left',fontsize=10,clip_on=True)
273298

299+
# Stats
300+
print(f'X : {np.average([(z[0]-z[1]) for z in zip(lx1,lx2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lx1,lx2)]):.4f} [m]')
301+
print(f'Y : {np.average([(z[0]-z[1]) for z in zip(ly1,ly2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(ly1,ly2)]):.4f} [m]')
302+
print(f'Z : {np.average([(z[0]-z[1]) for z in zip(lz1,lz2)]):+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lz1,lz2)]):.4f} [m]')
303+
print(f'Vx: {np.average([(z[0]-z[1]) for z in zip(lvx1,lvx2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lvx1,lvx2)])*1e3:.4f} [mm/sec]')
304+
print(f'Vy: {np.average([(z[0]-z[1]) for z in zip(lvy1,lvy2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lvy1,lvy2)])*1e3:.4f} [mm/sec]')
305+
print(f'Vz: {np.average([(z[0]-z[1]) for z in zip(lvz1,lvz2)])*1e3:+.4f} +- {np.std([(z[0]-z[1]) for z in zip(lvz1,lvz2)])*1e3:.4f} [mm/sec]')
306+
274307
# Add invisible axes for left and right column labels
275308
fig.text(0.04, 0.5, '[m]', va='center', rotation='vertical')
276309
fig.text(0.96, 0.5, '[mm/sec]', va='center', rotation='vertical')

0 commit comments

Comments
 (0)