gpx_plot: numpy verijderd uit gpx_plot
authorwim
Wed, 30 Aug 2017 12:37:28 +0200
changeset 10 89108adbc468
parent 9 b379310ee21c
child 11 35951602f83e
gpx_plot: numpy verijderd uit gpx_plot gpx_reduce: changelog aangepast readme: verbeterd
README.md
gpx_plot.py
gpx_reduce.py
--- a/README.md	Wed Aug 30 09:26:39 2017 +0200
+++ b/README.md	Wed Aug 30 12:37:28 2017 +0200
@@ -1,24 +1,25 @@
 # gpx_reduce_light
 
-* gpx_reduce.py, a version of gpx_reduce with no dependencies (only the standard python libraries)
+* gpx_reduce.py, a version of gpx_reduce with no dependencies (only the standard python libraries)  
 Only the plot option has been removed.
 See [original version](https://github.com/Alezy80/gpx_reduce) for more info.
 
-Usage example:
-```
-> gpx_reduce.py -d 2 -t 30 your_track.gpx
+>Usage example:
+
+>>```
+$ gpx_reduce.py -d 2 -t 30 your_track.gpx
 ```
 
-* gpx_plot.py, a separate program to plot one or more tracks with "gnuplot".
+* gpx_plot.py, a separate program to plot one or more tracks with "gnuplot".  
 Gnuplot has to be installed and the path to the binary has to be changed in the code
 to reflect your installation:
 
-```python
-# the path to the gnuplot binary
+>>```
 gnuPlotCmd = 'path/to/gnuplot'
 ```
 
-Usage example that compares a reduced track with the original:
+>Usage example that compares a reduced track with the original:
+
+>>```
+gpx_plot.py your_track.gpx your_track_reduced.gpx
 ```
-> gpx_plot.py your_track.gpx your_track_reduced.gpx
-```
--- a/gpx_plot.py	Wed Aug 30 09:26:39 2017 +0200
+++ b/gpx_plot.py	Wed Aug 30 12:37:28 2017 +0200
@@ -2,6 +2,11 @@
 # -*- coding: utf8 -*-
 
 '''
+gpx_plot.py calls gnuplot to draw the gpx-tracks given as arguments.
+Copyright 2017 willem179
+Extracted from the code of "gpx_reduce.py"
+Copyright (C) 2011,2012,2013,2015,2016,2017 travelling_salesman on OpenStreetMap
+
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
@@ -19,12 +24,12 @@
 import datetime
 import sys
 import time
-import numpy as np
-import numpy.linalg as la
 from math import *
 import xml.etree.ElementTree as etree
 from optparse import OptionParser
 
+# the path to the gnuplot binary
+gnuPlotCmd = 'gnuplot'
 
 parser = OptionParser('usage: %prog [options] input-file.gpx')
 (options, args) = parser.parse_args()
@@ -42,6 +47,9 @@
 
 timeformat = '%Y-%m-%dT%H:%M:%SZ'
 
+# the linear algebra with lists
+norm = lambda p: sqrt (sum (a * a for a in p))
+
 def rotate(x, y, phi):
     return x*cos(phi) - y*sin(phi), x*sin(phi) + y*cos(phi)
 
@@ -51,7 +59,7 @@
     lon -= lonm
     xyz = latlonele_to_xyz(lat, lon, 0.0)
     zy = rotate(xyz[2], xyz[1], radians(90 - latm))
-    lat2 = atan2(zy[0], la.norm([zy[1], xyz[0]]))
+    lat2 = atan2(zy[0], norm([zy[1], xyz[0]]))
     lon2 = atan2(xyz[0], -zy[1])
     x_meters = rE * sin(lon2) * (pi / 2.0 - lat2)
     y_meters = -rE * cos(lon2) * (pi / 2.0 - lat2)
@@ -61,18 +69,18 @@
 def latlonele_to_xyz(lat, lon, ele):
     s = sin(radians(lat))
     c = cos(radians(lat))
-    r = ele + a * b / la.norm([s*a, c*b])
+    r = ele + a * b / norm([s*a, c*b])
     lon = radians(lon)
     return r * c * sin(lon), r * c * (-cos(lon)), r * s
 
 
 def xyz_to_latlonele(x, y, z):
-    r = la.norm([x, y, z])
+    r = norm([x, y, z])
     if (r == 0):
         return 0.0, 0.0, 0.0
-    lat = degrees(atan2(z, la.norm([x, y])))
+    lat = degrees(atan2(z, norm([x, y])))
     lon = degrees(atan2(x, -y))
-    ele = r * (1.0 - a * b / la.norm([a*z, b*x, b*y]))
+    ele = r * (1.0 - a * b / norm([a*z, b*x, b*y]))
     return lat, lon, ele
 
 
@@ -153,8 +161,7 @@
     xmin -= dr
 
 from subprocess import Popen, PIPE
-gnuPlotCmd = ['gnuplot']
-plot = Popen (gnuPlotCmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
+plot = Popen ([gnuPlotCmd], stdin=PIPE, stdout=PIPE, stderr=PIPE)
 
 range = 'set xrange [%f:%f]\nset yrange [%f:%f]\n' % (xmin, xmax, ymin, ymax)
 plot.stdin.write (range)
--- a/gpx_reduce.py	Wed Aug 30 09:26:39 2017 +0200
+++ b/gpx_reduce.py	Wed Aug 30 12:37:28 2017 +0200
@@ -6,14 +6,14 @@
 tries to keep introduced distortions to the track at a minimum.
 Copyright (C) 2011,2012,2013,2015,2016,2017 travelling_salesman on OpenStreetMap
 
-changelog: v1.3: removal of all dependencies (lxml, scipy, numpy, pylab)
-           v1.2: clarity refractoring + speedup for identical points
+changelog: v1.2: clarity refractoring + speedup for identical points
            v1.3: new track weighting functions, progress display
            v1.4: new track weighting function, restructuring for memory saving
            v1.5: algorithm speedup by roughly a factor of 2 by eliminating some cases.
            v1.6: presets for train etc.
            v1.7: introduced weighting function for elevation errors
            v1.8: speed-dependent distance limit
+           v1.9: removal of all dependencies (lxml, scipy, numpy, pylab)
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by