Thread: Re: [Gpsbabel-misc] track,split does not work as expected
Brought to you by:
robertl
From: e-jel <eje...@gm...> - 2007-08-16 06:41:06
|
I am trying to split my GPX data into several tracks based on date. However, it turns out that there are more than one track created for some date. gpsbabel -t -i gpx -f in.gpx -x track,move+7h,pack,split,title="%Y%m%d" -o gpx -F out.gpx The move subcommand above is used to convert the time to my local time zone (GMT +7). The result file, out.gpx, however is as follows: -- out.gpx -- <trk> <name>20070620</name> <trkseg> <trkpt lat="13.719303000" lon="100.613513000"> <ele>-7.000000</ele> <time>2007-06-20T09:36:09Z</time> -- <trk> <name>20070622</name> <trkseg> <trkpt lat="13.742920000" lon="100.548873000"> <ele>-3.000000</ele> <time>2007-06-21T17:53:10Z</time> -- <trk> <name>20070708</name> <trkseg> <trkpt lat="13.717350000" lon="100.614110000"> <ele>7.000000</ele> <time>2007-07-08T05:43:19Z</time> -- <trk> <name>20070709</name> <trkseg> <trkpt lat="13.742845000" lon="100.529275000"> <ele>1.000000</ele> <time>2007-07-08T21:16:38Z</time> -- <trk> <name>20070728</name> <trkseg> <trkpt lat="13.717342000" lon="100.614220000"> <ele>-38.000000</ele> <time>2007-07-28T06:42:04Z</time> -- <trk> <name>20070729</name> <trkseg> <trkpt lat="13.610268000" lon="99.946232000"> <ele>6.000000</ele> <time>2007-07-28T17:19:09Z</time> -- end out.gpx -- These are things that not work as expected: 1. On some tracks, date in track name (which is datestamp) does not match its corresponding <time> value. For instance: <trk> <name>20070622</name> <trkseg> <trkpt lat="13.742920000" lon="100.548873000"> <ele>-3.000000</ele> <time>2007-06-21T17:53:10Z</time> 2. There are more than one track created on a certain date: <trk> <name>20070728</name> <trkseg> <trkpt lat="13.717342000" lon="100.614220000"> <ele>-38.000000</ele> <time>2007-07-28T06:42:04Z</time> -- <trk> <name>20070729</name> <trkseg> <trkpt lat="13.610268000" lon="99.946232000"> <ele>6.000000</ele> <time>2007-07-28T17:19:09Z</time> But since the date in <name> tag are different, I suppose this problem may also relate to the first issue. I guess the problem may related to timezone. Maybe <time> is still represents UTC time, not my local time, however, the split command perform by using local time instead? So in this case, what can I do? Preferably I would rather have the gpx file stores date in GMT+7 and all date-related operation would perform using the same timezone, too. |
From: Torsten C. <tc...@va...> - 2007-08-16 07:43:51
|
Is there any way to get create waypoints from pauses in a track with gpsbabel? Not moving for a few minutes should be more than enough to identify pauses and therefor possible waypoints one wants to track. cheers -- Torsten |
From: Olaf K. <o.b...@pr...> - 2007-08-16 08:11:08
|
Hi Torsten, > Is there any way to get create waypoints from pauses in a track with > gpsbabel? > Not moving for a few minutes should be more than enough to identify > pauses and therefor possible waypoints one wants to track. > you can use our track-, -simplify and transform filter to generate such waypoints. In first step you have to split the track on pauses. Here we use 5 minutes as parameter: ... -x track,pack,split=5m Then we use the simplify filter to reduce the number of points in a track. With count=2 you'll get only the start and the end point for each track: ... -x simplify,count=2 And now we have to convert the trackpoints to waypoints: ... -x transform,wpt=trk,del > gpsbabel -i gpx -f foo.gpx \ > -x track,pack,split=5m \ > -x simplify,count=2 \ > -x transform,wpt=trk,del > -o gpx -F result.gpx O.K. P.S. splitting by time is currently NOT supported in the Windows GUI |
From: Torsten C. <tc...@va...> - 2007-08-16 08:32:47
|
On 16.08.2007, at 10:10, Olaf Klein wrote: > Hi Torsten, > >> Is there any way to get create waypoints from pauses in a track with >> gpsbabel? >> Not moving for a few minutes should be more than enough to identify >> pauses and therefor possible waypoints one wants to track. >> > > you can use our track-, -simplify and transform filter to generate > such > waypoints. > > In first step you have to split the track on pauses. Here we use 5 > minutes as > parameter: > > ... -x track,pack,split=5m > > Then we use the simplify filter to reduce the number of points in a > track. > With count=2 you'll get only the start and the end point for each > track: > > ... -x simplify,count=2 > > And now we have to convert the trackpoints to waypoints: > > ... -x transform,wpt=trk,del > > >> gpsbabel -i gpx -f foo.gpx \ >> -x track,pack,split=5m \ >> -x simplify,count=2 \ >> -x transform,wpt=trk,del >> -o gpx -F result.gpx > > > O.K. Awesome!!! :-D > P.S. splitting by time is currently NOT supported in the Windows GUI Who needs a GUI ;) cheers -- Torsten |
From: e-jel <eje...@gm...> - 2007-09-19 17:14:31
|
It seems that the last time I sent the message it didn't get through. So here is the copy of my previous response again. On 8/16/07, e.jel 2.6 <e....@gm...> wrote: > Please let me clarify whether I understand this correctly. The split, > title, start and stop suboption use local time for calculation. This > means if the GPX timestamps are in UTC, it will be converted to local > time before performing the calculation. Is this correct? > > If this is the case, what would GPSBabel do if the timestamps are not > in UTC but instead in a local time zone. Does GPSBabel assume that GPX > timestamps always in UTC? > > Lastly, is it possible to have GPSBabel converts timestamps in GPX > files from UTC to a local timezone? I'm thinking that storing > timestamps in local timezone would be easier for me for later use. The > move subcommand does not seem appropriate because while it does shift > the time offset, it patches the time part with "Z" which makes it UTC > time still. > > On 8/16/07, Olaf Klein <o.b...@pr...> wrote: > > Hi, > > > > > I am trying to split my GPX data into several tracks based on date. > > > However, it turns out that there are more than one track created for > > > some date. > > > > > > gpsbabel -t -i gpx -f in.gpx -x > > > track,move+7h,pack,split,title="%Y%m%d" -o gpx -F out.gpx > > > > > > The move subcommand above is used to convert the time to my local time > > > zone (GMT +7). > > > > Before generating the title we convert the timestamp to localtime. That can > > produce non-matching titles in GPX (as in your case). But it works for most > > apps which converts and shows the timestamps in localtime. > > > > The problem is, that our trackfilter creates the trackname based on a > > time-stamp and doesn't know, how the following output module(s) handles the > > timestamps (local or GMT). > > > > Currently I don't see a workaround, but I'm thinking over a trackfilter > > option, which says "Titles GMT based, please". > > > > O.K. > > > |
From: Robert L. <rob...@gp...> - 2007-09-23 22:22:58
|
> It seems that the last time I sent the message it didn't get through. Olaf responded on Aug 16. You have indeed found a case that's hard to handle well. > > If this is the case, what would GPSBabel do if the timestamps are not > > in UTC but instead in a local time zone. Does GPSBabel assume that GPX > > timestamps always in UTC? Our GPX reader will correctly handle timezone specifiers. > > Lastly, is it possible to have GPSBabel converts timestamps in GPX > > files from UTC to a local timezone? I'm thinking that storing > > timestamps in local timezone would be easier for me for later use. The We always write UTC. RJL |
From: Olaf K. <o.b...@pr...> - 2007-08-16 07:55:39
|
Hi, > I am trying to split my GPX data into several tracks based on date. > However, it turns out that there are more than one track created for > some date. > > gpsbabel -t -i gpx -f in.gpx -x > track,move+7h,pack,split,title="%Y%m%d" -o gpx -F out.gpx > > The move subcommand above is used to convert the time to my local time > zone (GMT +7). Before generating the title we convert the timestamp to localtime. That can produce non-matching titles in GPX (as in your case). But it works for most apps which converts and shows the timestamps in localtime. The problem is, that our trackfilter creates the trackname based on a time-stamp and doesn't know, how the following output module(s) handles the timestamps (local or GMT). Currently I don't see a workaround, but I'm thinking over a trackfilter option, which says "Titles GMT based, please". O.K. |