gpx_plot.py
author wim
Fri, 01 Sep 2017 15:23:33 +0200
changeset 12 1d6e37b3ebf2
parent 10 89108adbc468
child 13 b6ccd1aab66f
permissions -rwxr-xr-x
add -g option and some input sanity checks add links to win32 binaries in readme
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
     1
#!/usr/bin/env python
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
     2
# -*- coding: utf8 -*-
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
     3
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
     4
'''
10
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
     5
gpx_plot.py calls gnuplot to draw the gpx-tracks given as arguments.
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
     6
Copyright 2017 willem179
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
     7
Extracted from the code of "gpx_reduce.py"
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
     8
Copyright (C) 2011,2012,2013,2015,2016,2017 travelling_salesman on OpenStreetMap
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
     9
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    10
This program is free software: you can redistribute it and/or modify
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    11
it under the terms of the GNU General Public License as published by
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    12
the Free Software Foundation, either version 3 of the License, or
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    13
(at your option) any later version.
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    14
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    15
This program is distributed in the hope that it will be useful,
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    16
but WITHOUT ANY WARRANTY; without even the implied warranty of
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    17
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    18
GNU General Public License for more details.
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    19
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    20
You should have received a copy of the GNU General Public License
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    21
along with this program.  If not, see <http://www.gnu.org/licenses/>.
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    22
'''
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    23
12
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    24
import datetime, sys, os, time
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    25
from math import *
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    26
import xml.etree.ElementTree as etree
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    27
from optparse import OptionParser
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    28
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    29
parser = OptionParser('usage: %prog [options] input-file.gpx')
12
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    30
parser.add_option('-g', action='store', type='string', dest='gnuplot',
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    31
    default='/usr/bin/gnuplot', help='PATH to the gnuplot binary (or .exe)', metavar='PATH')
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    32
(options, args) = parser.parse_args()
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    33
12
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    34
# the path to the gnuplot binary
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    35
gnuPlotCmd = options.gnuplot
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    36
if not os.path.exists (gnuPlotCmd):
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    37
    print gnuPlotCmd, 'does not exist'
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    38
    parser.print_help ()
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    39
    sys.exit ()
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    40
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    41
if len(args) < 1:
12
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    42
    parser.print_help ()
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    43
    sys.exit ()
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    44
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    45
# use the WGS-84 ellipsoid
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    46
rE = 6356752.314245 # earth's radius
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    47
a = 6378137.0
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    48
b = 6356752.314245179
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    49
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    50
timeformat = '%Y-%m-%dT%H:%M:%SZ'
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    51
10
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
    52
# the linear algebra with lists
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
    53
norm = lambda p: sqrt (sum (a * a for a in p))
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
    54
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    55
def rotate(x, y, phi):
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    56
    return x*cos(phi) - y*sin(phi), x*sin(phi) + y*cos(phi)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    57
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    58
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    59
def project_to_meters(lat, lon, latm, lonm):
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    60
    # azimuthal map projection centered at average track coordinate
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    61
    lon -= lonm
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    62
    xyz = latlonele_to_xyz(lat, lon, 0.0)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    63
    zy = rotate(xyz[2], xyz[1], radians(90 - latm))
10
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
    64
    lat2 = atan2(zy[0], norm([zy[1], xyz[0]]))
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    65
    lon2 = atan2(xyz[0], -zy[1])
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    66
    x_meters = rE * sin(lon2) * (pi / 2.0 - lat2)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    67
    y_meters = -rE * cos(lon2) * (pi / 2.0 - lat2)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    68
    return x_meters, y_meters
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    69
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    70
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    71
def latlonele_to_xyz(lat, lon, ele):
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    72
    s = sin(radians(lat))
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    73
    c = cos(radians(lat))
10
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
    74
    r = ele + a * b / norm([s*a, c*b])
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    75
    lon = radians(lon)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    76
    return r * c * sin(lon), r * c * (-cos(lon)), r * s
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    77
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    78
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    79
def xyz_to_latlonele(x, y, z):
10
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
    80
    r = norm([x, y, z])
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    81
    if (r == 0):
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    82
        return 0.0, 0.0, 0.0
10
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
    83
    lat = degrees(atan2(z, norm([x, y])))
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    84
    lon = degrees(atan2(x, -y))
10
89108adbc468 gpx_plot: numpy verijderd uit gpx_plot
wim
parents: 4
diff changeset
    85
    ele = r * (1.0 - a * b / norm([a*z, b*x, b*y]))
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    86
    return lat, lon, ele
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    87
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    88
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    89
############################## main function #################################
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    90
tracks = []
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    91
npoints = []
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    92
for fname in args:
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    93
    # initialisations
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    94
    tracksegs = []
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    95
    sumx, sumy, sumz = 0.0, 0.0, 0.0
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    96
    ntot = 0    # total number of trackpoints (sum of segments)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    97
    
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
    98
    # import xml data from files
12
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
    99
    if not os.path.exists (fname):
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
   100
        print fname, 'does not exist'
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
   101
        continue
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   102
    print 'opening file', fname
12
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
   103
    infile = open (fname)
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   104
    tree = etree.parse(infile)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   105
    infile.close()
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   106
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   107
    gpx = tree.getroot()
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   108
    nsurl = gpx.tag.split ('}')[0][1:]  # == 'http://www.topografix.com/GPX/1/1'
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   109
    etree.register_namespace('', nsurl) # default namespace -> xmlns:.... in the output
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   110
    nsmap = '{' + nsurl + '}'           # prefix for all tags in the tree
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   111
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   112
    # extract data from xml
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   113
    for si, trkseg in enumerate (gpx.findall('.//' + nsmap + 'trkseg')):
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   114
        trkpts = trkseg.findall(nsmap + 'trkpt')
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   115
        n = len(trkpts)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   116
        
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   117
        # extract coordinate values
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   118
        lats = [float(trkpt.get('lat')) for trkpt in trkpts]
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   119
        lons = [float(trkpt.get('lon')) for trkpt in trkpts]
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   120
        eles = [float(trkpt.find(nsmap + 'ele').text) for trkpt in trkpts]
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   121
        try:
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   122
            times = [datetime.datetime.strptime(trkpt.find(nsmap + 'time'
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   123
                                       ).text, timeformat) for trkpt in trkpts]
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   124
        except Exception as e:
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   125
            print '-- trackpoint without time'
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   126
            times = None
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   127
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   128
        # save original trackseg for plotting
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   129
        tracksegs.append ([ (lats[i], lons[i], eles[i]) for i in range(n) ])
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   130
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   131
        # calculate projected points to work on
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   132
        for i in range(n):
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   133
            x, y, z = latlonele_to_xyz (lats[i], lons[i], eles[i])
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   134
            sumx += x
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   135
            sumy += y
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   136
            sumz += z
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   137
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   138
        print 'segment %d, with %d points:' % (si, n)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   139
        ntot += n
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   140
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   141
    tracks.append (tracksegs)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   142
    npoints.append ((fname.replace ('_','\_'), ntot))   # underscore -> subscripts in gnuplot
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   143
    print 'number of points in track %s = %d:' % (fname, ntot)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   144
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   145
latm, lonm, elesum = xyz_to_latlonele (sumx, sumy, sumz)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   146
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   147
data = []
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   148
xmin, xmax = ymin, ymax = float ('inf'), float ('-inf')
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   149
for tracksegs in tracks:
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   150
    for trkseg in tracksegs:
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   151
        for lat, lon, ele in trkseg:
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   152
            x, y = project_to_meters (lat, lon, latm, lonm)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   153
            data.append ('%f %f' % (x, y))
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   154
            xmin, ymin = min (xmin, x), min (ymin, y)   # determine the x range
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   155
            xmax, ymax = max (xmax, x), max (ymax, y)   # and the y range
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   156
    data.append ('e')
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   157
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   158
dx, dy = xmax - xmin, ymax - ymin   # make x and y ranges equal to the largest
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   159
if dx > dy:                         # and keep ranges centered
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   160
    dr = (dx - dy) / 2
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   161
    ymax += dr
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   162
    ymin -= dr
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   163
else:
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   164
    dr = (dy - dx) / 2
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   165
    xmax += dr
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   166
    xmin -= dr
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   167
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   168
from subprocess import Popen, PIPE
12
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
   169
try:
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
   170
    plot = Popen ([gnuPlotCmd], stdin=PIPE, stdout=PIPE, stderr=PIPE)
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
   171
except Exception as e:
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
   172
    print e, 'while executing', gnuPlotCmd
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
   173
    sys.exit ()
4
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   174
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   175
range = 'set xrange [%f:%f]\nset yrange [%f:%f]\n' % (xmin, xmax, ymin, ymax)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   176
plot.stdin.write (range)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   177
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   178
curves = ','.join ("'-' with linespoints ti '%s: %d punten'" % t for t in npoints)
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   179
plot.stdin.write ('plot ' + curves + '\n')
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   180
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   181
plot.stdin.write ("\n".join (data))
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   182
plot.stdin.write ('\n')
1b96bb9de1f3 - eerste versie van gpx_plot
wim
parents:
diff changeset
   183
plot.stdin.flush ()
12
1d6e37b3ebf2 add -g option and some input sanity checks
wim
parents: 10
diff changeset
   184
raw_input ('press enter to exit program')