Advise for using Cycle Analogger touring w/ offline netbook

voicecoils

1 MW
Joined
Sep 16, 2007
Messages
2,173
Location
Sydney, NSW, Australia
I'm preparing to ride Perth to Sydney (~5000km) this August by ebike & recently did a shakedown test of the bikes myself & Maurice at Glow Worm are getting ready to ride.

I've wired up one of ebike.ca / GrinTech's lovely Cycle Analogger w/ GPS which can record stats from the Cycle Analyst and GPS info from the built in GPS module.

I want to take this data and transform it into a digestible form each day with the following constraints:
* Limited internet access (assume unavailable)
* Limited computing power (1 Ghz dual core netbook with 2 GB memory, ~3hr runtime)
* Limited time (assume 1hr or less - we'll be tired at the end of each day and need to pitch a tent, cook food and organise charging)

Accepting these limitations, for each day I'd like to generate:
* An map image showing our route and progress for the day
* A graph showing speed, elevation and battery voltage over distance or time

I can already do some of the above but not completely nor totally offline.

Here are my current roadblocks:
* Dealing with the quantity of data: At 5Hz logging, the Analogger spits out 180,000 lines of data in 10 hours of riding. I have Excel and it's supposed to be able to handle over a million lines but becomes slow after several 10s of thousands of rows and won't graph beyond 32,000 data points. Computing speed and memory may be a limitation here. I tried a program designed to plot straight off a CSV file called LivePlot which is fast and easy to use, but does not seem to be able to let you use one of the data series to form the axis to graph the other series against (namely having distance as the x-axis and then plotting speed, voltage etc above it.

* The Analogger populates 2 text files, one in CSV logging the CA data and one using NEMA GPS sentences described here. I need to be able to extract the latitude, longitude, altitude and perhaps time, date and ground speed from these 'sentences' and transpose them into the first CSV file in some relatively automated way. This probably needs a bit of scripting or programming which I don't have the skills to whip up.

* Offline mapping that has reasonable resolution and can import and plot the route using the GPS data. I've become so used to the internet-connected Google Maps and Google Earth that I'm totally out of my depths with off line offerings. It's pretty straightforward to get a route map and elevation plot through http://www.gpsvisualizer.com/ but I don't know of an off-line equivalent.

If you haven't played with an Analogger before, a snippet of the files it outputs are contained at the end of this post.

I know there's a huge amount of knowledge and skill in the E-S collective and if anyone can help or guide me through these roadblocks I'd be stoked!

Cheers,
Abraham

Cycle Analyst V3 w/ Thun output
Code:
Ah,V,A,S,D,Deg,RPM,HW,Nm,ThI,ThO,Acc,Lims
0.3658,40.23,3.73,30.01,1.2394,0,75.4,161,17.8,0.865,2.701,-0.6,W
0.366,40.23,3.73,29.76,1.2406,0,74.2,161,17.7,0.864,2.675,-0.5,W
10786,0.3661,40.23,3.73,29.26,1.2418,0,74.6,161,18.4,0.864,2.693,-0.5,W
10787,0.3664,40.39,2.81,29.22,1.2442,0,72.6,138,18.2,0.864,2.668,0,W
10788,0.3665,40.39,2.81,28.84,1.2454,0,72.7,138,19.3,0.865,2.65,-0.8,W
10789,0.3667,40.39,2.81,28.61,1.2477,0,71.8,138,22.5,0.864,2.682,-0.4,W
10790,0.3669,40.23,3.82,28.28,1.2488,0,73.2,153,24.3,0.864,2.686,-0.4,W
10791,0.367,40.23,3.82,28.27,1.25,0,69.6,153,34.2,0.864,2.755,0,W
10792,0.3674,40.23,3.82,28.33,1.2523,0,71.7,153,35,0.865,2.748,0,W

NEMA sentences:
Code:
$GPGSA,A,3,29,18,21,26,16,15,,,,,,,3.1,1.6,2.6*35
$GPGSV,3,1,11,21,60,209,41,29,58,043,36,18,57,305,43,15,43,077,35*7B
$GPGSV,3,2,11,22,22,309,,26,22,124,28,16,20,233,34,06,09,222,*76
$GPGSV,3,3,11,25,05,355,,05,03,132,,27,,222,*49
$GPRMC,002527.000,A,3402.3784,S,15103.6867,E,26.83,242.78,280613,,,A*4F
$GPVTG,242.78,T,,M,26.83,N,49.7,K,A*03
$GPGGA,002528.000,3402.3818,S,15103.6786,E,1,06,1.6,65.2,M,20.8,M,,0000*78
$GPGLL,3402.3818,S,15103.6786,E,002528.000,A,A*47
$GPGSA,A,3,29,18,21,26,16,15,,,,,,,3.1,1.6,2.6*35
$GPGSV,3,1,11,21,60,209,41,29,58,043,36,18,57,305,43,15,43,077,35*7B
$GPGSV,3,2,11,22,22,309,,26,22,124,28,16,20,233,21,06,09,222,*72
$GPGSV,3,3,11,25,05,355,,05,03,132,,27,,222,*49
$GPRMC,002528.000,A,3402.3818,S,15103.6786,E,26.45,241.70,280613,,,A*4B
$GPVTG,241.70,T,,M,26.45,N,49.0,K,A*05
$GPGGA,002529.000,3402.3852,S,15103.6708,E,1,06,1.6,64.5,M,20.8,M,,0000*77
$GPGLL,3402.3852,S,15103.6708,E,002529.000,A,A*4E
$GPGSA,A,3,29,18,21,26,16,15,,,,,,,3.1,1.6,2.6*35
$GPGSV,3,1,11,21,60,209,40,29,58,043,37,18,57,305,43,15,43,077,35*7B
$GPGSV,3,2,11,22,22,309,,26,22,124,20,16,20,233,29,06,09,222,*72
$GPGSV,3,3,11,25,05,355,,05,03,132,,27,,222,*49
$GPRMC,002529.000,A,3402.3852,S,15103.6708,E,25.74,243.80,280613,,,A*4E
$GPVTG,243.80,T,,M,25.74,N,47.7,K,A*00
$GPGGA,002530.000,3402.3882,S,15103.6631,E,1,06,1.6,63.9,M,20.8,M,,0000*72
$GPGLL,3402.3882,S,15103.6631,E,002530.000,A,A*40
$GPGSA,A,3,29,18,21,26,16,15,,,,,,,3.1,1.6,2.6*35
$GPGSV,3,1,11,21,60,209,40,29,58,043,37,18,57,305,43,15,43,077,35*7B
$GPGSV,3,2,11,22,22,309,,26,22,124,25,16,20,233,32,06,09,222,*7D
$GPGSV,3,3,11,25,05,355,,05,03,132,,27,,222,*49
$GPRMC,002530.000,A,3402.3882,S,15103.6631,E,25.17,244.67,280613,,,A*4B
$GPVTG,244.67,T,,M,25.17,N,46.6,K,A*0B
$GPGGA,002531.000,3402.3911,S,15103.6553,E,1,06,1.6,64.0,M,20.8,M,,0000*71
$GPGLL,3402.3911,S,15103.6553,E,002531.000,A,A*4D
$GPGSA,A,3,29,18,21,26,16,15,,,,,,,3.1,1.6,2.6*35
$GPGSV,3,1,11,21,60,209,40,29,58,043,37,18,57,305,43,15,43,077,35*7B
$GPGSV,3,2,11,22,22,309,,26,22,124,31,16,20,233,33,06,09,222,*79
$GPGSV,3,3,11,25,05,355,,05,03,132,,27,,222,*49
$GPRMC,002531.000,A,3402.3911,S,15103.6553,E,24.95,245.26,280613,,,A*49
$GPVTG,245.26,T,,M,24.95,N,46.2,K,A*00
$GPGGA,002532.000,3402.3940,S,15103.6479,E,1,06,1.6,63.6,M,20.8,M,,0000*7E
$GPGLL,3402.3940,S,15103.6479,E,002532.000,A,A*43
$GPGSA,A,3,29,18,21,26,16,15,,,,,,,3.1,1.6,2.6*35
$GPGSV,3,1,11,21,60,209,40,29,58,043,37,18,57,305,43,15,43,077,35*7B
$GPGSV,3,2,11,22,22,309,,26,22,124,33,16,20,233,33,06,09,222,*7B
$GPGSV,3,3,11,25,05,355,,05,03,132,,27,,222,*49
$GPRMC,002532.000,A,3402.3940,S,15103.6479,E,24.13,244.44,280613,,,A*4C
$GPVTG,244.44,T,,M,24.13,N,44.7,K,A*0C
$GPGGA,002533.000,3402.3969,S,15103.6406,E,1,06,1.6,63.0,M,20.8,M,,0000*7A
$GPGLL,3402.3969,S,15103.6406,E,002533.000,A,A*41
$GPGSA,A,3,29,18,21,26,16,15,,,,,,,3.1,1.6,2.6*35
 
A little more info on the NEMA sentences from the preliminary Analogger from Grin Tech:

GPS Serial Data (NMEA 0183 format)
The GPS module (if included) writes log files using the NMEA 0183 protocol at 1Hz. The included sentences
are:
GGA – Fix data, 3D location and accuracy
GLL – Geographic latitude/longitude
GSA – Satellite data and dilution of precision
GSV – Satellites in view
RMC – Recommended minimum data
VTG – Velocity made good and ground speed
 
OK, starting to do a bit of RTFM and answering my own questions :D

Using this piece of software, I can take the NEMA sentences and create simultaneous output of both a CVS file (to combine with the CA output) and KML file (for some sort of Google Earth offline equivalent)

Here's what the output of the above sample sentences looks like, converted:

Code:
RCR,TIME,VALID,LATITUDE,LONGITUDE,HEIGHT,SPEED,HDOP,NSAT,TEMPERATURE,BAROMETER,PRESSURE ALTITUDE
T,2013/06/28 00:25:27.000,SPS,-34.0396400,151.0614450,,49.689,,,,,,
T,2013/06/28 00:25:28.000,SPS,-34.0396967,151.0613100,65.200,48.985,1.6,6,,,,
T,2013/06/28 00:25:29.000,SPS,-34.0397533,151.0611800,64.500,47.670,1.6,6,,,,
T,2013/06/28 00:25:30.000,SPS,-34.0398033,151.0610517,63.900,46.615,1.6,6,,,,
T,2013/06/28 00:25:31.000,SPS,-34.0398517,151.0609217,64.000,46.207,1.6,6,,,,
T,2013/06/28 00:25:32.000,SPS,-34.0399000,151.0607983,63.600,44.689,1.6,6,,,,
T,2013/06/28 00:25:33.000,SPS,-34.0399483,151.0606767,63.000,44.689,1.6,6,,,,

That gives me lat & longitude and height... but altitude listed separately at the end, is blank.

In other news, I think I will set the CA to output data at 1Hz instead of 5Hz. This will match the GPS module which logs at 1Hz according to the preliminary manual and make it easier to match the separate files up.
 
Back
Top