From 30b68f054913c4c17a5591c7d896b9be73a4107b Mon Sep 17 00:00:00 2001 From: "Gary E. Miller" Date: Tue, 12 Apr 2016 19:28:40 -0700 Subject: Plot to %.3f meters. This is in preparation for cm-level accuracy. --- gpsprof | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'gpsprof') diff --git a/gpsprof b/gpsprof index d0aad600..1f1b29c0 100755 --- a/gpsprof +++ b/gpsprof @@ -196,7 +196,7 @@ class spaceplot(plotter): for i in range(len(self.recentered)): (lat, lon) = self.recentered[i][:2] (raw1, raw2, alt) = self.fixes[i] - res += "%f\t%f\t%f\t%f\t%f\n" % (lat, lon, raw1, raw2, alt) + res += "%.7f\t%.7f\t%.7f\t%.7f\t%.7f\n" % (lat, lon, raw1, raw2, alt) return res def plot(self): @@ -226,18 +226,20 @@ class spaceplot(plotter): alt_fixes.sort(key=lambda a: abs(alt_avg - a)) alt_ep = abs(alt_fixes[len(alt_fixes) // 2] - alt_avg) if self.centroid[0] < 0: - latstring = "%fS" % -self.centroid[0] + latstring = "%.7fS" % -self.centroid[0] elif self.centroid[0] == 0: latstring = "0" else: - latstring = "%fN" % self.centroid[0] + latstring = "%.7fN" % self.centroid[0] if self.centroid[1] < 0: - lonstring = "%fW" % -self.centroid[1] + lonstring = "%.7fW" % -self.centroid[1] elif self.centroid[1] == 0: lonstring = "0" else: - lonstring = "%fE" % self.centroid[1] + lonstring = "%.7fE" % self.centroid[1] fmt = "set autoscale\n" + fmt += "set format x \"%.3f\"\n" + fmt += "set format y \"%.3f\"\n" fmt += 'set key below\n' fmt += 'set key title "%s"\n' % gps.misc.isotime(int(time.time())) fmt += 'set size ratio -1\n' @@ -247,12 +249,13 @@ class spaceplot(plotter): fmt += 'set ylabel "Meters north from %s"\n' % latstring fmt += 'set border 15\n' if not gps.isnan(alt_avg): - fmt += 'set y2label "Meters Altitude from %f"\n' % alt_avg + fmt += 'set y2label "Meters Altitude from %.3f"\n' % alt_avg fmt += 'set ytics nomirror\n' fmt += 'set y2tics\n' - fmt += 'cep=%f\n' % self.d((0, 0), self.recentered[len(self.fixes) // 2]) - fmt += 'cep95=%f\n' % self.d((0, 0), self.recentered[int(len(self.fixes) * 0.95)]) - fmt += 'cep99=%f\n' % self.d((0, 0), self.recentered[int(len(self.fixes) * 0.99)]) + fmt += "set format y2 \"%.3f\"\n" + fmt += 'cep=%.7f\n' % self.d((0, 0), self.recentered[len(self.fixes) // 2]) + fmt += 'cep95=%.7f\n' % self.d((0, 0), self.recentered[int(len(self.fixes) * 0.95)]) + fmt += 'cep99=%.7f\n' % self.d((0, 0), self.recentered[int(len(self.fixes) * 0.99)]) fmt += 'set parametric\n' fmt += 'set trange [0:2*pi]\n' fmt += 'cx(t, r) = sin(t)*r\n' @@ -266,10 +269,10 @@ class spaceplot(plotter): plot_style = 'points' fmt += 'plot "-" using 1:2 with ' + plot_style + ' ls 3 title "%d GPS fixes" ' % (len(self.fixes)) if not gps.isnan(alt_avg): - fmt += ', "-" using ( %f ):($5 < 100000 ? $5 - %f : 1/0) axes x1y2 with %s ls 2 title " %d Altitude fixes, Average = %f, EP (50%%) = %f"' % (lon_max + 1, alt_avg, plot_style, alt_num, alt_avg, alt_ep) - fmt += ', cx(t, cep),cy(t, cep) ls 1 title "CEP (50%%) = %f meters"' % (cep_meters) - fmt += ', cx(t, cep95),cy(t, cep95) title "CEP (95%%) = %f meters"' % (cep95_meters) - fmt += ', cx(t, cep99),cy(t, cep99) title "CEP (99%%) = %f meters"' % (cep99_meters) + fmt += ', "-" using ( %.3f ):($5 < 100000 ? $5 - %.3f : 1/0) axes x1y2 with %s ls 2 title " %d Altitude fixes, Average = %.3f, EP (50%%) = %.3f"' % (lon_max + 1, alt_avg, plot_style, alt_num, alt_avg, alt_ep) + fmt += ', cx(t, cep),cy(t, cep) ls 1 title "CEP (50%%) = %.3f meters"' % (cep_meters) + fmt += ', cx(t, cep95),cy(t, cep95) title "CEP (95%%) = %.3f meters"' % (cep95_meters) + fmt += ', cx(t, cep99),cy(t, cep99) title "CEP (99%%) = %.3f meters"' % (cep99_meters) fmt += "\n" fmt += self.header() fmt += self.data() -- cgit v1.2.1