12

custom split time question (Read 1040 times)

Wing


Joggaholic

    I've been playing with my new Garmin 405 for about 2 months now, and I have been using the auto-lap function to record splits every mile. It is useful, but now I'm getting picky and wishing for more features. In addition to the mile laps, I wish I can also get the time at every 5k, and at the 13.1 mile mark. I don't think it can be done on the watch other than manually pressing the lap button at those distances, and I don't really want to pay attention to and fiddle with my watch while running. So I guess it comes down to what I can do with the gps data post-run. I can't seem to find a way to manipulate the data on the garmin connect site or on RA after uploading the tcx file. Since the gps records every 4 seconds or so, I assume it is possible to calculate these custom splits? Are there any existing tools online that can do this? Thanks.

     

    (I know I don't really need that much info from my runs, and I actually don't make use of them as a feedback to my training anyway. But as a data junkie I just want them for no real practical reason...)

      SportTracks does that.  But I'm not sure that the same utility exists on RA.

      "I want you to pray as if everything depends on it, but I want you to prepare yourself as if everything depends on you."

      -- Dick LeBeau

      AmoresPerros


      Options,Account, Forums

        If you find an answer, consider posting it here, because I've sometimes wished I could see split times for track workouts.

        It's a 5k. It hurt like hell...then I tried to pick it up. The end.

          Like the other poster said, SportTracks is a great utility for that. You can get custom splits based off of your gps data. It's software though, not a website. 

           

          Try out www.endomondo.com or www.strava.com if you just want your splits. I recommend RA way over those others for your tracker, but in terms of custom splits those other sites have the capability.

          Running my way to being a little less fat.

          AmoresPerros


          Options,Account, Forums

            It looks to me like it could be done by exporting the workout to gpx, then using a program to change how the trackpoint elements are grouped into tracksegment elements. But I don't know how to figure out how to re-group them. Given a series of trackpoints, what is the cumulative distance they represent? I think this is an algorithmic question -- do you add up the distance between each point, or use some sort of smoothing function?

            It's a 5k. It hurt like hell...then I tried to pick it up. The end.

              I hacked a little python script to do this. It works on garmin tcx files and I haven't looked at it for ages - but it certainly used to work!

               

              http://homepage.ntlworld.com/paul.rudin/splits/

               

              (You'll need to install python to use the script.)

              AmoresPerros


              Options,Account, Forums

                I hacked a little python script to do this. It works on garmin tcx files and I haven't looked at it for ages - but it certainly used to work!

                 

                http://homepage.ntlworld.com/paul.rudin/splits/

                 

                (You'll need to install python to use the script.)

                 

                What did you decide to do about that issue I mentioned about distance? What algorithm did you use?

                It's a 5k. It hurt like hell...then I tried to pick it up. The end.

                Wing


                Joggaholic

                  Thanks guys, I'll look into them.

                  Wing


                  Joggaholic

                    It looks to me like it could be done by exporting the workout to gpx, then using a program to change how the trackpoint elements are grouped into tracksegment elements. But I don't know how to figure out how to re-group them. Given a series of trackpoints, what is the cumulative distance they represent? I think this is an algorithmic question -- do you add up the distance between each point, or use some sort of smoothing function?

                     

                    Don't know about the gpx, but I looked at the tcx file and it appears to be tracking time and cumulative distance at each track point, so there's no need to deal with the gps coordinates (unless you want to plot them on a map). I don't know anything about python so I don't know what pr100's script is doing, but I'm tempted to parse the tcx with perl...

                      What did you decide to do about that issue I mentioned about distance? What algorithm did you use?

                       

                      I just iterate over all the trackpoints accumulating time/cumulative-distance pairs.

                       

                      Then to get the splits I just do linear interpolations between the two nearest time points. (There are other things you could do - but anything vaguely sensible will presumably produce very similar answers as the granularity of the distance between the trackpoints is fine compared with the size of the splits.)

                       

                      If I get my work done in good time today I'll wrap it up as a little web app so that people don't need to worry about installing python and so on to use it.

                        AmosPerros:

                        For the laps on a track a garmin 305 can be set to trigger a lap at a geographic location instead of a distance. You'd have to set it back, obviously.

                        Wing


                        Joggaholic

                          Like the other poster said, SportTracks is a great utility for that. You can get custom splits based off of your gps data. It's software though, not a website. 

                           

                          Try out www.endomondo.com or www.strava.com if you just want your splits. I recommend RA way over those others for your tracker, but in terms of custom splits those other sites have the capability.

                           

                          Thanks. I looked through them and they seem to do what I need. I'm not inclined to spread my data to yet another site though. I'm hoping for some utilities that can just spit out what I want so I can cut and paste them into my RA log's note section, thus maintaining everything in one place. pr100's post seem to be along that line Smile

                          Wing


                          Joggaholic

                            If I get my work done in good time today I'll wrap it up as a little web app so that people don't need to worry about installing python and so on to use it.

                             

                            Thanks pr100, looking forward to it!

                             

                            I also spent a little time last night and this morning crafting some really crude perl codes to parse my garmin tcx files. Nothing fancy at all, probably buggy for general consumption...

                             

                            Sample output after sucking in the tcx:

                             

                            =========================================================
                            Full distance pace at specific distances
                            =========================================================
                              5.0 km:    00:26:53    05:23/km    08:39/mi
                              5.0 mi:    00:41:44    05:11/km    08:21/mi
                             10.0 km:    00:50:52    05:05/km    08:11/mi
                             15.0 km:    01:17:33    05:10/km    08:19/mi
                             10.0 mi:    01:22:42    05:08/km    08:16/mi
                            =========================================================
                             16.1 km:    01:22:55    05:08/km    08:16/mi
                             10.0 mi:    01:22:55    05:08/km    08:16/mi
                            =========================================================
                            Split and pace per km
                            =========================================================
                              1.0 km:       06:07    06:07/km    09:50/mi
                              2.0 km:       05:30    05:30/km    08:52/mi
                              3.0 km:       05:16    05:16/km    08:28/mi
                              4.0 km:       05:00    05:00/km    08:03/mi
                              5.0 km:       05:01    05:01/km    08:04/mi
                              6.0 km:       04:56    04:56/km    07:57/mi
                              7.0 km:       04:53    04:53/km    07:52/mi
                              8.0 km:       04:48    04:48/km    07:44/mi
                              9.0 km:       04:42    04:42/km    07:33/mi
                             10.0 km:       04:39    04:39/km    07:29/mi
                             11.0 km:       05:36    05:36/km    09:01/mi
                             12.0 km:       05:27    05:27/km    08:46/mi
                             13.0 km:       05:28    05:28/km    08:48/mi
                             14.0 km:       05:18    05:18/km    08:32/mi
                             15.0 km:       04:52    04:52/km    07:49/mi
                             16.0 km:       04:43    04:43/km    07:36/mi
                             16.1 km:       00:38    04:40/km    07:31/mi
                            =========================================================
                            Split and pace per mile
                            =========================================================
                              1.0 mi:       09:29    05:54/km    09:29/mi
                              2.0 mi:       08:37    05:21/km    08:37/mi
                              3.0 mi:       07:57    04:56/km    07:57/mi
                              4.0 mi:       07:56    04:56/km    07:56/mi
                              5.0 mi:       07:46    04:49/km    07:46/mi
                              6.0 mi:       07:29    04:39/km    07:29/mi
                              7.0 mi:       08:44    05:25/km    08:44/mi
                              8.0 mi:       08:48    05:28/km    08:48/mi
                              9.0 mi:       08:19    05:10/km    08:19/mi
                             10.0 mi:       07:38    04:45/km    07:38/mi
                             10.0 mi:       00:13    05:02/km    08:06/mi
                            =========================================================

                             

                             

                            If you find an answer, consider posting it here, because I've sometimes wished I could see split times for track workouts.

                             

                            MTA:  I can post mine if I know where to upload it to...

                            AmoresPerros


                            Options,Account, Forums

                              AmosPerros:

                              For the laps on a track a garmin 305 can be set to trigger a lap at a geographic location instead of a distance. You'd have to set it back, obviously.

                               

                              I don't think you're understanding the poster's question -- it's about later reprocessing to get other splits.

                               

                               

                              The gpx export files I've produced from here did not have very many trackpoints in them - few enough that it made me wonder if it is important to use a reasonable interpolation algorithm. Maybe it matters whether the graph is on the default of every 10 points or not, when one hits the Export button. I'll check.

                               

                              I assume you ignore elevation -- I think it is sufficiently inaccurate in garmin records to be much better left out?

                               

                              I think Eric said he has an option to have the distance algorithm substitute in elevations from an external source, but I can't remember any more than that.

                              It's a 5k. It hurt like hell...then I tried to pick it up. The end.

                              AmoresPerros


                              Options,Account, Forums

                                Oh, and I found this on the internet (well, I had to add the tracksegment intermediate loop, b/c they were ignoring tracksegments, but that was trivial) -- it is just a way to pull a gps xml doc into anonymous structures in .net:

                                 

                                 

                                            var tracks = from track in gpxDoc.Descendants(gpx + "trk")
                                                 select new
                                                 {
                                                     Name = track.Element(gpx + "name") != null ?
                                                        track.Element(gpx + "name").Value : null,
                                                     Segs = (
                                                         from trackseg in track.Descendants(gpx + "trkseg")
                                                         select new
                                                         {
                                                             Points = (
                                                                 from trackpoint in trackseg.Descendants(gpx + "trkpt")
                                                                 select new
                                                                 {
                                                                     Latitude = trackpoint.Attribute("lat").Value,
                                                                     Longitude = trackpoint.Attribute("lon").Value,
                                                                     Elevation = trackpoint.Element(gpx + "ele") != null ?
                                                                     trackpoint.Element(gpx + "ele").Value : null,
                                                                     Time = trackpoint.Element(gpx + "time") != null ?
                                                                     trackpoint.Element(gpx + "time").Value : null
                                                                 }
                                                             )
                                                         }
                                                     )
                                                 };

                                It's a 5k. It hurt like hell...then I tried to pick it up. The end.

                                12