Wolfram Blog
Andrew Steinacher

Data Science at Home: Leverage Wolfram’s Device Integration to Analyze Your Vehicle’s Performance

December 31, 2020 — Andrew Steinacher, Lead Developer, Wolfram|Alpha Scientific Content

Data Science at Home: Leverage Wolfram's Device Integration to Analyze Your Vehicle's Performance

Cars are getting smarter and more connected, yet how much have you explored the technology that helps run our vehicles? I was curious to see how I could connect to my vehicle’s communication center and what kind of interface I could create in Wolfram Notebooks to report on the data gathered.

I started my data science side project by connecting a microcontroller to my car’s Controller Area Network (CAN) bus, and I gathered a fire hose of information by simply recording messages that were sent over the CAN bus. This massive amount of data has given me a large dataset (over 25 GB) from thousands of car trips—including time series for engine temperatures, steering angles, fuel flow and more. Using the Wolfram Language, it was easy to build a user interface for interactively analyzing and processing this CAN data, as well as an EntityStore to more programmatically analyze the data on longer timescales with EntityValue syntax. These tools have allowed me to analyze engine warmup times and my fuel usage trends, and after some alignment to GPS location data, revealed at which intersections I wait the longest.

Let’s explore how any of you could do this yourselves, along with the directions I’ve considered to take this even further.

Graduating from Web Forms

I wrote a post in 2017 on how to create an app to track and analyze gas mileage in the Wolfram Cloud. This was an immediate option for gathering some basic data by punching numbers (e.g. fuel volume, fuel costs, mileage) into a FormFunction, storing it in a Databin and setting up an automated report (through a template notebook)—complete with 2D and 3D graphs plus GeoHistogram visualizations.

This method gave some interesting data correlation, linking things like worsening gas mileage to colder weather and uncovering fuel price drops, such as the one I observed at the beginning of 2019:

Row
&#10005

Row[{DateListPlot[{TemporalData[TimeSeries, {{
QuantityArray[
StructuredArray`StructuredData[{
         149}, {{27.9, 28.2, 24.3, 32.4, 34.5, 30.9, 32.4, 31.8, 30.,
           32.1, 31.2, 28.2, 33.3, 32.1, 34.2, 26.1, 28.5, 33.3, 31.2,
            33.3, 31.2, 33.6, 29.1, 23.7, 30.6, 27.9, 29.4, 24., 25.2,
            28.5, 29.7, 30.3, 19.8, 20.4, 30.3, 31.5, 25.5, 27.6,
           31.8, 31.2, 27, 32.1, 32.1, 34.2, 28.8, 31.5, 31.5, 29.4,
           32.7, 30.6, 25.2, 30.6, 34.5, 24.6, 33., 36.3, 32.1, 28.5,
           32.1, 30.6, 29.4, 30.3, 32.1, 31.5, 27.6, 32.7, 29.4, 27.6,
            23.4, 28.5, 32.1, 32.7, 27.3, 29.1, 29.1, 31.5, 29.7,
           31.2, 31.8, 30, 31.2, 30.9, 33., 32.4, 30.6, 31.2, 31.2,
           31.5, 33.6, 29.1, 26.1, 32.7, 25.5, 27.9, 27.3, 32.1, 32.4,
            30.9, 32.1, 34.5, 35.1, 36.6, 36., 32.7, 31.8, 33.9, 30.9,
            31.8, 32.7, 33.9, 30.9, 31.5, 28.2, 30.9, 31.8, 29.4,
           30.6, 23.7, 23.7, 26.1, 23.1, 22.5, 26.1, 31.2, 33., 32.7,
           30.9, 32.4, 29.4, 35.7, 36.6, 33.3, 28.8, 33.3, 33.3, 33.,
           27.9, 32.1, 32.4, 31.8, 30.3, 36.9, 30.6, 35.1, 35.1, 28.8,
            33.3, 35.4, 33.6}, "Gallons"^(-1) "Miles", {{
          1}}}]]}, CompressedData["
1:eJwt0gtIU1EcBvBr0kAz5swe5nxhFpjVghCkzEZCEGSZmo/5iJUami9ckWZ6
LSvSMmNlSqus5ZIlpo5ypmkt13xULl1lL1nqRrUlPjMDqfz+Xbj8+L4/Z+fu
cLzEGXsTbRmGsfn/XmHw6B3CLMJ/ZooioOBuFNxzJxo67oqBYxMiaNTGQn1F
HNz2OAGWjeyn+SIx9OQcpLltokVYW6LL1iZZhEHPgwP0SbQPP3Velm1MQz7S
n468VZSJPNqQBW9LstEbqyXIYU+O0ncF5qDviclFfmeXB9c3QlYUW4DcNk7O
+bIwnCnE3M77FLyWcQZ9XsA5+p7NxciDxZBd4leKXLfzEjydJUXvryMvS8vR
7+BcRR4XQ6Y3vgK5JVIGk5XXYfHam7BpsApqym/Bi2o5lI0osL45oga5+j1p
y6+j80wnf+beRz8jqad1skb08gsq5FbHB8i7HR5Cp6Im9Idr1MjdsmbybQuM
H2il8+1ro/PTtyMHBD+lffI08M0HyAwHPqN1yR3oq4xkoVGLXrNOh3xW2Ym8
/UQXtNh001zSAye6X9Dv/ngJY6Wv6DxdeuEkT4++6NBrmFLWh56b2w/5AgN6
fv4AnZfHR/QdpZ+gcmgQffPCL8gpMcPIccdNcF+4Gf3yaVLj+hVG+X7DPCGS
dPOwoHfWWqEhaBSK7ccwN5shc8N/HHk2egI57fMk9KmdglLFNN3X0Bm6J/Jf
cKNyFusapsh29W/I+Q6ZfNUcLO+ErLfwD93b+gVWWMCBwlR7GMJzmJdVuCxG
FtVANsdC2X0DFw758dCLQiFjPkm5U+GELFE4U9+1FFb2QFauXgZ11hXoDedd
IM+0kvYzuWJ+r8QN5gvc4ZZNnrD0GGS4Ki+o6l2FPkTjQ/9Dtxr50YE1VuFf
GfG+cg==
"], 1, {"Continuous", 1}, {"Discrete", 1}, 1, {
      ResamplingMethod -> {
        "Interpolation", InterpolationOrder -> 1}}}, True, 12.],
    TemporalData[TimeSeries, {{
QuantityArray[
StructuredArray`StructuredData[{148}, {CompressedData["
1:eJw9kms0lHkAxschNUJuw9KU7Uwhp7Vqmdv7vv/3GdGNlkknju2+FSO7tZUd
Eeu4JLRowtRSHCfX0VB2Kae2VNZK5XJWIpTqbBmRS7PN7qrd+dSH5/y+PR+e
37Nk94FNe004HE6+Med1C3/4640U6uSCfvXnUrhEK7wGjomAfKvmsEEGKnli
0IwbYBfgz6NXs5iKbtCpughuOU5x1nwgoN15dqYLaNTW9nEPNLPIWhWfVTvB
YH3voJJ+IIVHcn9u500Wdc4+8w5PE5hypx+L8oBSc70ixFUMkx1zGitsKThu
yG1a28Licv76es0kA7+cUcMpCnCyCL7BaWbgmuYbaykA3FZUVVnESBGc9Ev+
xCIR/PKbNF2RNHhmPn3v1FKolkU6lt6icUdey0+4IsRoyfZszyQhrhz9dtZs
mkLiufe95Xk0Rkr0wsXzGJzUSjqtl67CIwFjfYf3BYqzHKmfpmlkXn9b2VhP
0KZkPfJaRYiorPyu9JUUJbk5rySFBHUSz5bLLxgIJqusxxZJICgQZL7lsagW
/9i8fYDFpQh1iI0B2LetZlefFQXqgPh0bQED7/F/2iycWJR5xsYu6aBxv0Jg
WzOPxaOzRU5KEYOUpdvaClaK0V3fIQyrp1HdsEtSJ5bBbk95v8JGiJbze0Oj
5CwCvI5sHCYy9GoVJsVVBOPa/vCnfBo+p/ZocvQE2ftLpJqHNJzJznSTBgrv
3JWjI1wGYrnnjbIuBunyrtwzGoLI/+bcCVNJMeUkuZ0SyOLrvjjlwns0Otlj
Td6mFBym9ebpx3zhnvLYumyEAjNhszP7AoOhcv2vAdVAeWEkP+gPCYoaN/95
yItG+Fmy0sSOgqa150T/W4LEZ4vdO+JovHphntxm3Fu7Y3nImJrA73nL68E6
GhYVEdkh8wlOD5W36+IZ3A0vFHU7ADGsoCGonaB9urssN4Ng6yF5RmsOjbVp
19f0jLJo3XRN+cksA4OWb9BaAhnH7z+n6ylcVOxJq3KTIKntQZaVg9GDPXXJ
vkgE/fhw0nGu8ee3k7gMkaLHO/h1WD6DuC1HLU8OEzQ4Hlk3WEHACVdtdo0n
8Mh4WOjRB8S78C/qogHT5cl5gmAZKg/eXDc7IUMPjxOTtpvBw5mxKf4TGnWB
nq6/vScYC23RhZoQ2HjCWehPYz+3nSs0YxEp153R8ow95pkbj2hpnNp41PJy
AgOzb3ztD4VLMV+vSE1MILgXaJ7alcniiYG7emZAikCrpszNccKP1AckZa1I
EGNnSdFnjg98sTRb6+Kt8MHQqEv1smdiBDuFFlOxDOQuzLkctfFn8jyXOIbF
lwaZ+O9JAv/oka1v5ATXZhIWnL5KwX/u91GacD84vN7X68wHItwYgWov0Gw5
8umFDAp3uzfsvmWPj3zJJ4cbtxC8j7Id3l4jhWEudTDDj0VnsaojdZagNDso
iKqgseqDRR8zQCN97cs5T8NkSAk+P79jpdH7SIdy2TiwPOow9Sgd+D0wteyr
GgpBP5O0fz+wqLzvZW2pluFqEU+tm2TxP85j+o0=
"],
          "Gallons"^(-1) "Miles", {{1}}}]]}, CompressedData["
1:eJwt0gtIU1EcBvBrkqAZOrOHOV+YBWZlEMIos5EQBFmm5mM+YqWG5gtXpJle
y4pmmTExo1XWcskS041yS9NarumsXGplr7F8jGJLfGYGUvn9u3D58X1/zs7d
4fgJc/an2jMMY/f/rWLwGJ2jrPx/5gpiYPC9OLjvbjx03ZMAxycF0KxLhMaa
JLjjSQqsHDlI8yVC6OtwmOb2qVZ+Q7k+X5dm5Ye9COcZ02gfbuaCLKvMQj7W
n428XZCLPNacB++I8tGb60TIUU+P03eFFqDvSShEfu9YBDcqIStILEFunyDn
A1kYzZRi7uh/Bl7POYe+iHeBvmerGNkkhuyyoArkxt1X4Nk8CfoQPVklqUa/
y+Eq8oQQMr3JNcitsVKYrrgBxetvwRZTLdRW34aX1TIoHZFjvSamHrnuA2nP
baTzzCZ/Fj5APytqonVSJXrZJRVym+tD5L3Oj6BbWQv6o/VqZINUQ75rhcmD
bXS+fe10fsYOZF74M9qnSAvffoTMcOhzWpfeib7WTJaadei1G/TI5xVdyDtP
dUOrnYHmoh44aXhJv/vjFUyUvKbz9OiFUxwj+rIjb2BGZR96l8J+yA0eQM8t
HqTz8vmEvrPiM1QMmdBrFn9FzkgYRk46OQoPRFvQr5whtZ7fYFzgd8xTYkkv
Hyt6d50NDoSNQaHTOOYWC2Ruhkwgz8VPImd9mYIBDdNQIp+h+xo5S/dE9gtu
VsxhXfM02aH+jb5YNQ+ruyDrz/9D97VpkQ2WOEB+phOM4DgvyMo9liIL6iFb
YKXsvckFDgVx0AsiIWM5TblL7oYskrtT370cXuuBrEy9Auptq9APXPSAnNHV
tN+oJ+b3y71gcbA33LbFF1acgIyLyg+qetegj9AG0P/Qr0V+fGidjf8XN3G6
2w==
"], 1, {"Continuous", 1}, {"Discrete", 1}, 1, {
      ValueDimensions -> 1, DateFunction -> Automatic,
       ResamplingMethod -> {
        "Interpolation", InterpolationOrder -> 1}}}, False, 12.]}, {
   PlotTheme -> "Detailed", FrameLabel -> {"", "MPG"}, Epilog -> {{
RGBColor[0, 0, 1],
Thickness[Tiny],
Dashing[{Small, Small}],
Tooltip[
Line[{{
DateObject[{2016, 3, 20, 0, 0, 0.}, "Instant", "Gregorian", -5.],
           30.52751677852349}, {
DateObject[{2019, 9, 29, 12, 11, 0.}, "Instant", "Gregorian", -5.],
           30.52751677852349}}],
Quantity[30.52751677852349, "Gallons"^(-1) "Miles"]]}, {
RGBColor[
Rational[2, 3], 0.33333333333333337`, 0],
Thickness[Tiny],
Dashing[{Small, Small}],
Tooltip[
Line[{{
DateObject[{2016, 3, 20, 0, 0, 0.}, "Instant", "Gregorian", -5.],
           29.141265923348783`}, {
DateObject[{2019, 9, 29, 12, 11, 0.}, "Instant", "Gregorian", -5.],
           29.141265923348783`}}],
Quantity[29.141265923348783`, "Gallons"^(-1) "Miles"]]}},
    PlotLabel -> Row[{"Lifetime Average: ", 29.1, " MPG"}],
    PlotRange -> {Automatic, {15, 40}}, ImageSize -> 240, Mesh -> All,
     Filling -> {1 -> {2}}, LabelStyle -> 10, GridLines -> None}],
  Spacer[10],
  DateListPlot[TemporalData[TimeSeries, {{
StructuredArray[QuantityArray, {149},
StructuredArray`StructuredData[QuantityArray, CompressedData["
1:eJw9U3tQlFUU/x77fQgoT8GAYQAfiFHBBihP72FjE5IVgzKCIBLWJy+LcRcb
VGQSA9dUEnLLYBcYBBGUN0qTPDLegzwcCDEUW15hsDCIsLtf9y9nzp0zc8+d
8/ud3+9ch4NJoWKSIIhr+FS84G88d1yLkved0W9kOSQyT9npodOg4+eUHeN1
BMT6l34+KSRBPZ6TOrVIwLpFAw87cwqsWtfaMptJOEofutE+SEO+euCv57k0
qBrCswIXKWjvfP2LMoJDfrtMusS2JNjIsl8VdxHgrbI4fDNWhz7cFJXyCPeV
rvwpDdUjobuwxXOZT0JjWo8kXcuh0uUd3hFxBNSHnN1wL4+Eb5WWjKmYgI9D
BQVmgxy652YiEHZo0NZ8bdKWdg16z3qiqMtLhyIuVaSUe+hQQYagyi+VAEpP
uV5xk0Nzf+SIXgeQID9pccp5hgTx/iKUG0vBlmOU6VeYR3OsKKZ9lUNLk/vL
F2sJ6A9rzylUEiBv6P+NxLgbGgyO/OhIwQzXFPdIS8LBsJdZ87kkGGRUJZ7H
POWRxkbUAIe+FiqKHW9xqDdmSdCI8Uo9d89txjqm9KzYXPfUIf9kCf/5AQ5J
d9puHHqK+R3L12uWUUCXS2VFpRxSPntgX3CWQzJrha4mkYRM9ruRGKxf86dE
06wpBaJ45NZkTkClf6HXIq6fTvA2jI+jgL9MXZb7UKAxrBrQ8GkICvF1Se7k
QUKLh7EO+6MTelpaRNJwav1HpsH1FNiftt8cOYh1MAt02S6loOblDKvEethF
X7oqcOTB0wr34q1JNAS6C4KFD2jwXbBi5bhf1d3YNZUrDRPrSvyatvOgzThA
PltCww7D3tn7+D40bVPQ0RAKLhaeNzEbouEh9+tndtM0CD+oLHPB+J2OP8dX
dVCgQmOzki4KEutmqSupmKfzuOetKRqKwgNq5stoyI4bOXI1gAGbF2JK4c3C
arknwV/HgPOhcOXIEAMuRlGR0UIGVmzEr2zELFhV5Of11LFg6zXcJgth4XH5
tpOFChbumvvg4MGz60bZY+UMmBEWoyJHFu6HSSP+wf3fLbhxMbmWByN+S+n7
IxmwjqqUqHF9OKG/ZF6L8bl9lVl8BqKDG2WMLwv9o8GFDnEsJI5Y/ffFIg9c
5JndUzIelOl8O9q8eaBSO+LgQcjDiUpnPHdJXO0n7WoKsu/k0W4KCookbj3V
MgJaAh/vUWzH/2SmgWDwfq1dCLP4UkoAW3tNHTWtRQvG3+s3p2iQavDfq5ZO
GhRWcEIaPKp7k7vfaqBbqnWItvvGfA77Pj1xiqLwnDvORbVsxD7NuaPeTDMW
BGrb4GZXPbhef7u+zYcFxWTfk9+3sXB4Jozfi+t7hlsnD2Cdthb0lREZDATp
RYn2Yl1UCxcWTLDeqxecKhxu0ZB+WUJadlJvcqDJrp+GXRnI0IpKJ7FvUwE+
LTFYx6Yr48UG2IfAY6sDEtz3tvc7Z37AvLzU+WNFCTTccb3Z16fkwcW34eju
EB78HZSW9gTvXXz4XhvT92mYv9HqlGXLgEI5X3UCv3fi/Kr18b7+Dy0C+Zw=

"], "Gallons"^(-1) "USDollars", {{1}}]]}, CompressedData["
1:eJwt0gtIU1EcBvBr0kAz5swe5nxhFpjVghCkzEZCEGSZmo/5iJUami9ckWZ6
LSvSMmNlSqus5ZIlpo5ypmkt13xULl1lL1nqRrUlPjMDqfz+Xbj8+L4/Z+fu
cLzEGXsTbRmGsfn/XmHw6B3CLMJ/ZooioOBuFNxzJxo67oqBYxMiaNTGQn1F
HNz2OAGWjeyn+SIx9OQcpLltokVYW6LL1iZZhEHPgwP0SbQPP3Velm1MQz7S
n468VZSJPNqQBW9LstEbqyXIYU+O0ncF5qDviclFfmeXB9c3QlYUW4DcNk7O
+bIwnCnE3M77FLyWcQZ9XsA5+p7NxciDxZBd4leKXLfzEjydJUXvryMvS8vR
7+BcRR4XQ6Y3vgK5JVIGk5XXYfHam7BpsApqym/Bi2o5lI0osL45oga5+j1p
y6+j80wnf+beRz8jqad1skb08gsq5FbHB8i7HR5Cp6Im9Idr1MjdsmbybQuM
H2il8+1ro/PTtyMHBD+lffI08M0HyAwHPqN1yR3oq4xkoVGLXrNOh3xW2Ym8
/UQXtNh001zSAye6X9Dv/ngJY6Wv6DxdeuEkT4++6NBrmFLWh56b2w/5AgN6
fv4AnZfHR/QdpZ+gcmgQffPCL8gpMcPIccdNcF+4Gf3yaVLj+hVG+X7DPCGS
dPOwoHfWWqEhaBSK7ccwN5shc8N/HHk2egI57fMk9KmdglLFNN3X0Bm6J/Jf
cKNyFusapsh29W/I+Q6ZfNUcLO+ErLfwD93b+gVWWMCBwlR7GMJzmJdVuCxG
FtVANsdC2X0DFw758dCLQiFjPkm5U+GELFE4U9+1FFb2QFauXgZ11hXoDedd
IM+0kvYzuWJ+r8QN5gvc4ZZNnrD0GGS4Ki+o6l2FPkTjQ/9Dtxr50YE1VuFf
GfG+cg==
"], 1, {"Continuous", 1}, {"Discrete", 1}, 1, {
     ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}},
     True, 12.], {
   PlotTheme -> "Detailed", FrameLabel -> {"", "$/gal"},
    ImageSize -> 240, Mesh -> All, LabelStyle -> 10,
    PlotLabel -> "Price Per Gallon", GridLines -> None}]}]

Like all manual data collection, this process was tedious, and I really wanted to take it further. From watching the display in my car that shows instantaneous gas mileage and other averages, I knew that more data than I could collect by hand was being generated in order to populate the display. It was then that I began to wonder how I could gain access to this data, to the point I was inspired to research the on-board diagnostics standard (OBD-II) and CAN bus sniffing.

CAN Bus Sniffing

Most modern cars have a small port under the dashboard that can be used to communicate with all of the car’s electronic systems, such as the engine, the body, the radio, etc. This port, defined by the OBD-II standard, is typically used for gathering emissions history and troubleshooting engine problems. But this is where all the car’s systems communicate with each other in an organized cacophony—on a set of two wires connecting lots of devices in the car, called the CAN bus. A CAN bus is a standard bus system frequently used in automotive vehicles, about as established as Mathematica itself. I had to learn quite a bit to not only connect to this communication center, but also to boil down the data that comes through it. All messages sent over the bus, such as engine temperatures, steering wheel angles and individual wheel speeds, have IDs that represent what they’re for.

Message Structure

One of the first things to understand is the structure of a single CAN message. There are roughly 12 bytes of really important information: about four bytes for the message’s ID, plus up to eight bytes of message data. Lower IDs are prioritized over higher IDs, and devices on the network acknowledge (ACK) when a message has been correctly received. Here’s a visualization of the parts of a CAN message (from CSS Electronics):

CAN message

Physical Assembly

If you want to follow along with this too, you’ll need some hardware: a microcontroller of some kind, a way to interface with the CAN bus itself and a way to store collected data. Here’s what I used:

Physical assembly

Of course, you’ll also need a cable to connect the OBD-II port in your vehicle to your microcontroller, and another to provide power.

Before moving on to the software, there are a couple of other hardware considerations to keep in mind. For speed reasons, I connected a jumper wire from the square wave output of my RTC to an interrupt pin so I could keep track of time (more on that later!), and I’ve also removed some optional termination resistors. CAN typically has termination resistors at both ends of the two-wire bus (to avoid standing waves). The car’s CAN bus already has termination resistors, so if I connect my Arduino with another termination resistor, the overall resistance could change—and I don’t want to risk side effects from that.

Data Format

At first, I fought with the format of data and how to store it. My original, naive idea was to store the present hour, minute and second along with the bus information (CAN message ID plus the message’s data) in a plain text string with commas as delimiters. But this turned out to be really slow and large—generating around 40 bytes per CAN message (which you may recall has only about 12 “interesting” bytes):

StringLength
&#10005

StringLength["12:31:25,00D0,FF,FF,FF,FF,FF,FF,FF,FF\n"]

With a little work, I was able to optimize my code to store only the bare minimum to keep up with the large amount of traffic being sent over the bus. Using an interrupt connected to the RTC, I could quickly and efficiently count the number of seconds since the car was started, store the CAN ID and message content in a data structure, and write this data in binary. This conserves space and is overall more efficient, generating only 14 bytes per message:

// Store CAN data in a struct for fast binary writing
&#10005

// Store CAN data in a struct for fast binary writing
          volatile struct CANMessage {     unsigned int t;
   unsigned long int id;     unsigned char data[8];   } m;

Data Samples and Visualization

Once the raw data is stored in files, I can read it into the Wolfram Language for analysis. You can try this yourself—just download and extract the code and a portion of the data from the Wolfram Cloud:

zip = URLDownload
&#10005

zip = URLDownload["https://wolfr.am/CANGUI-zip"];ExtractArchive[zip];

Then browse to the extracted directory:

SetDirectory
&#10005

SetDirectory["CANGUI_STANDALONE"];

To read the files, I need to tell the Wolfram Language what kind of format to expect (based on the previously shown structure):

binaryFileFormat = Flatten
&#10005

binaryFileFormat = Flatten[
   {
    "UnsignedInteger16",(* Seconds since start *)

    "UnsignedInteger32",(* CAN ID (decimal) *)

    ConstantArray["UnsignedInteger8", {8}] (* Data *)
    }
   ];

Then I can use BinaryReadList with that spec to import data from individual files. Each file name includes a standardized start date and time. For instance, this imports the data for a specific car trip dated March 18, 2019:

data = BinaryReadList
&#10005

data = BinaryReadList["DataFiles/19031818.58B", binaryFileFormat];
data // Length

As you can see, it consists of more than half a million points—pretty intense for a 10-minute car trip. Here’s a sample of what is stored, where the first column is the number of seconds that have elapsed, the second column is the CAN message ID in decimal and the remaining columns give the actual message data:

Grid
&#10005

Grid[data[[;; 2000 ;; 150]], Sequence[Dividers -> {{2 -> Directive[
Thickness[Large]], 3 -> Directive[
Thickness[Tiny]]}}]]

This is basically all I had when I got started, with no manual for reverse-engineering the data. After a lot of experimentation I started to piece together which IDs belonged to which system, and I began to extract useful information from this seemingly cryptic data. First, let’s make a function to translate some of this into a TimeSeries:

toMessageTimeSeries
&#10005

toMessageTimeSeries[data : {__List}] := With[
   {times = data[[All, 1]]},
   TimeSeries[#, {times}] & /@ Transpose[data[[All, 2 ;;]]]
   ];

Now we will look at pieces of data from different IDs:

idToByteTimeSeries = KeySort@GroupBy
&#10005

idToByteTimeSeries =
  KeySort@GroupBy[data, #[[2]] &, toMessageTimeSeries];

idToByteTimeSeries
&#10005

idToByteTimeSeries[[;; 2, ;; 2]]

And here’s a visualization of the engine coolant temperature data (ID: 0x360, Byte #4), using DateListPlot:

DateListPlot
&#10005

DateListPlot[idToByteTimeSeries[864][[4]], {PlotRange -> {45, 110}}]

CANGUI

Manually working with files like this can be tedious, especially when exploring many trips. Creating a GUI will make it faster and easier to explore and plot data. I’ve already set up an interactive Wolfram Language GUI, called CANGUI, for processing and visualizing CAN bus messages recorded in my data format. This point-and-click interface and message space view was a quick and dirty attempt at using DynamicModule to browse data ranges, explore IDs of data within those ranges and plot those TimeSeries. It has worked pretty well for me so far!

You can evaluate the following function to bring up the full interface:

Get
Full interface
&#10005

Get["CANGUI/CANGUI.wl"];CANGUI[]

On the left you can select a day, and then available trips based on their start and end times. In the middle gray-background area, you will see a number of message parts either fully identified or only suspected. Unfortunately, there is not freely available, complete documentation for which messages contain what data and in what units, so some are a guess. Since this is hard to keep track of, I’ve put the known IDs into a message space grid, which you can look at here:

Message space grid

Back to the GUI: on the right side, you will see a table of all IDs captured within the selected trips, along with a plot of the single ID selected from the gray-background area. From here you can use the Copy button to put that TimeSeries on your clipboard for further exploration:

DateListPlot
&#10005

DateListPlot[
TemporalData[TimeSeries, {{
StructuredArray[QuantityArray, {8888},
StructuredArray`StructuredData[QuantityArray, CompressedData["
1:eJzt201IVFEUwPHXpqJahFEgYfRBQpgrbaG4mE2urMyPHE3H75kCS2KCiAoG
hVZWkEXoosJCXEgUFha0cKUtdBGGYCv7skVLaWFu0nMnBgvTeb7xvjv3fzc/
nswMM+/dd85951wPNLWXtW5yHOf1Qcfp7VkaJQFMb52lETuBqNWwjJOIaJAT
44uj5BR6rOTnzFL0qXKdutAvyjrCOY2GmZ+3OKK4mpJuZzFZJV5Xl+EGKfF4
HN1a1X7x+9495So+BsxX4teQ+Uo8ya7AdarqjuYo9+WOSmuV+zhmjy93Pust
+lap7vs5NF2JO+Ez6HMl3k5jutnW+DmrLr8qXtdMXyV/jOBK5skIokvHCmtD
HUXBQGQpXPZjsqq6fTWmSFWHx7UqcdGpwRWUsBfFVCvxcRbXqqpzn8UNUtXF
0a3F9z9uv7qtVsXVALpV4uWQvUr8y65DnytxswdTZfTJr/PBhbp4fySEG6TE
4RiiO4tufdnqjIRUPptDr5S8E67HFCv5Zzr9lJ+X3YBxJV41oO2q9SamStkf
Mommm/Wg6uc9pzH+nIC2KXmzGL1W8lAMbfdDe9/E8eFGlTffoF9U+1vRVCV/
HW1CS5U8G0bbPfJiYPBGZ5PKt48R/6+qmyL6U1nf7GpGNEJZj5UgeqMs624i
Iqa/8lwygojp4NctnZ+eTzWr57l5RETUZZ6MFkRERNSo1HnbEBGTV/6frz95
dX9vv+n2PB66XdPx6o779yMiol3ODEdCC6Mtqk8yk/j7n2NEREQvlP5PZivi
Mn9MFhY8zGjVPj9tVff1R3SjtC/KERHRVqV/0oWIXqr7viaOICL6S+kTjq7f
Y8P1AxlPV//c63dzct91J45T9X1wuVIfdMKIiGi5uvMR+Q69UPpHBYiI6Del
HhtFRERERFOUvswgIiIiIqJdSl9xFk1V2oX7I4iIiIiIiLhGZV9PtX3mPJq8
ErwWUX2x7n/ty52vuHwp8fqVXmebuq8b6lX3/GOeI/MY0Q7f5lwoPjwQUX2b
cfPVfT5t9e/zr3se+H1+6D4PiIiIiIiIiIiIaJ6yf3/zOURERPSB5GdElH3h
AURERDsde1+6e2pf4ph8i4iIiIiIiIiIiIiItvkbuj678Q==
"],
      "DegreesFahrenheit", {{1}}]]}, {{3.79212528*^9,
   3.79212750175*^9, 0.25}}, 1, {"Continuous", 1}, {"Discrete", 1},
   1, {ResamplingMethod -> {
     "Interpolation", InterpolationOrder -> 1}}}, False, 12.]]

You can also use the Details drop-down menu at the bottom of the middle column to enhance the visualization in whatever way you’d like, or even add new entries:

Details drop-down

Additionally, by selecting multiple trips on the far left, you can compare the time series data for all of the trips within a single plot, like this one for the odometer:

Odometer

With this interface you can punch in IDs, give names and change the Wolfram Language code used to generate the TimeSeries, as well as add other options to aid in understanding and extracting useful data.

Individual Trip Analysis

Although the GUI was helpful in initially exploring the data and understanding the message content, it quickly became too cumbersome for extracting information on timescales longer than a few trips. Additionally, I was interested in tying in other data, such as my existing form-based gas mileage information or even GPS data from my smartphone. After some thought on a good way to approach these issues, I set out to build an EntityStore.

Using this code, I can create and register the EntityStore and align it to the GPS data in my databin—again, only a small part of the total data. First, I import the entity store code and create an EntityStore:

Get
store = CreateTripEntityStore
&#10005

Get["CANGUI/TripEntityStore.wl"];store = CreateTripEntityStore["DataFiles", "PlotChoices",
  Databin["Fbuwpsdi"]]

Then I register the EntityStore:

EntityRegister
&#10005

EntityRegister[store]

This system is really nice for a few reasons. I can search and filter the trips with implicit EntityClass syntax. Plus, each trip entity only loads the core metadata based on file names and then keeps a reference to the file where the rest of the information can be extracted as needed (it’s really inefficient to load all the data at once). Here is a quick look at the kind of simple metadata that is gathered for each trip entity:

Entity
&#10005

Entity["Trip", "2019-03-22:2"][{EntityProperty["Trip", "Date"],
  EntityProperty["Trip", "Duration"],
  EntityProperty["Trip", "StartPosition"],
  EntityProperty["Trip", "EndPosition"],
  EntityProperty["Trip", "StartTime"],
  EntityProperty["Trip", "EndTime"], EntityProperty["Trip", "File"],
  EntityProperty["Trip", "Label"],
  EntityProperty["Trip", "TripNumber"]}]

Of course, extracting the information that I gathered from the GUI can be done by creating properties to programmatically produce a TimeSeries in much the same way. For example, now I can easily extract time series for the brake and accelerator pedals for a given trip:

accAndBrake = Entity
&#10005

accAndBrake = Entity["Trip", "2019-03-21:1"][{
EntityProperty["Trip", "BrakePedalTimeSeries"],
EntityProperty["Trip", "AcceleratorPedalTimeSeries"]},
  "PropertyAssociation"]

Here is a plot of the time series for both pedals during the trip:

DateListPlot
&#10005

DateListPlot[accAndBrake, Sequence[
 PlotRange -> Full, Filling -> Axis,
  PlotLegends -> Placed["Expressions", Below]]]

Deep Diving into Fuel Economy

The ease of use with this system allows me to compare data in extremely useful ways when it comes to interpreting my car’s fuel economy. For example, I found the fuel flow rate with the help of the GUI:

fuelFlow = Entity
&#10005

fuelFlow =
 Entity["Trip", "2019-03-21:1"][
  EntityProperty["Trip", "FuelFlowTimeSeries"]]

With a little work, one can integrate this TimeSeries to compute an estimate for the total fuel used for the entire trip:

timeSeriesTotalIntegral
&#10005

timeSeriesTotalIntegral[td_TemporalData] :=
 Total[td] Quantity[MinimumTimeIncrement[td], "Seconds"]

timeSeriesTotalIntegral
&#10005

timeSeriesTotalIntegral[fuelFlow]

To check the accuracy of this, I tried comparing the total for a week’s worth of trips from my full dataset to the numbers I had entered separately with my web form. The computed fuel usage from my CAN data is about 12 gallons:

EntityValue
&#10005

EntityValue[
 EntityClass["Trip",
  "Date" ->
   Between[{DateObject[{2019, 6, 14}, "Day", "Gregorian", -5.`],
     DateObject[{2019, 6, 20}, "Day", "Gregorian", -5.`]}]],
 EntityProperty["Trip", "FuelFlowTimeSeries"],
 Map[timeSeriesTotalIntegral] /* Total]

This looks decent at a glance, since my car’s fuel tank holds about 14 gallons of fuel. And if we compare to the "FuelUsed" data that I recorded manually, the result is pretty close:

KeyTake
&#10005

KeyTake[
 Select[Dataset[{
Association[
    "AverageSpeed" -> Quantity[18, "Hours"^(-1) "Miles"],
     "GasStation" -> "Haymaker's", "Address" -> Missing["NoInput"],
     "TripDistance" -> Quantity[244.4, "Miles"],
     "EstimatedMPG" -> Quantity[22.5, "Gallons"^(-1) "Miles"],
     "City" -> Entity[
      "City", {"Champaign", "Illinois", "UnitedStates"}],
     "FuelUsed" -> Quantity[11.974, "Gallons"],
     "TotalPrice" -> Quantity[30.28, "USDollars"],
     "OdometerMiles" -> Quantity[36090, "Miles"],
     "Location" -> GeoPosition[{40.1084, -88.2419}],
     "Timestamp" -> DateObject[{2019, 3, 13, 23, 0, 0.}, "Instant",
       "Gregorian", -4.],
     "PreviousTime" -> DateObject[{2019, 2, 18, 20, 20, 0.},
       "Instant", "Gregorian", -4.],
     "MeasuredFuelUsed" -> Quantity[11.024033349921012`, "Gallons"]], 

Association[
    "AverageSpeed" -> Quantity[22, "Hours"^(-1) "Miles"],
     "GasStation" -> "Thornton's", "Address" -> Missing["NoInput"],
     "TripDistance" -> Quantity[277.4, "Miles"],
     "EstimatedMPG" -> Quantity[26.1, "Gallons"^(-1) "Miles"],
     "City" -> Entity["City", {"Savoy", "Illinois", "UnitedStates"}],
     "FuelUsed" -> Quantity[11.148, "Gallons"],
     "TotalPrice" -> Quantity[28.97, "USDollars"],
     "OdometerMiles" -> Quantity[36368, "Miles"],
     "Location" -> GeoPosition[{40.1084, -88.2419}],
     "Timestamp" -> DateObject[{2019, 4, 6, 18, 2, 0.}, "Instant",
       "Gregorian", -4.],
     "PreviousTime" -> DateObject[{2019, 3, 13, 23, 0, 0.}, "Instant",
        "Gregorian", -4.],
     "MeasuredFuelUsed" -> Quantity[10.256680703564907`, "Gallons"]], 

Association[
    "AverageSpeed" -> Quantity[36, "Hours"^(-1) "Miles"],
     "GasStation" -> "Speedway", "Address" -> Missing["NoInput"],
     "TripDistance" -> Quantity[373.5, "Miles"],
     "EstimatedMPG" -> Quantity[33., "Gallons"^(-1) "Miles"],
     "City" -> Entity[
      "City", {"FortWayne", "Indiana", "UnitedStates"}],
     "FuelUsed" -> Quantity[12.311, "Gallons"],
     "TotalPrice" -> Quantity[32.61, "USDollars"],
     "OdometerMiles" -> Quantity[40166, "Miles"],
     "Location" -> GeoPosition[{40.1084, -88.2419}],
     "Timestamp" -> DateObject[{2019, 6, 20, 9, 41, 0.}, "Instant",
       "Gregorian", -4.],
     "PreviousTime" -> DateObject[{2019, 6, 14, 17, 52, 0.},
       "Instant", "Gregorian", -4.],
     "MeasuredFuelUsed" -> Quantity[11.201536561814645`, "Gallons"]]},
TypeSystem`Vector[
TypeSystem`Struct[{
     "AverageSpeed", "GasStation", "Address", "TripDistance",
      "EstimatedMPG", "City", "FuelUsed", "TotalPrice",
      "OdometerMiles", "Location", "Timestamp", "PreviousTime",
      "MeasuredFuelUsed"}, {
TypeSystem`Atom[
Quantity[1, "Hours"^(-1) "Miles"]],
TypeSystem`Atom[String], TypeSystem`UnknownType,
TypeSystem`Atom[
Quantity[1, "Miles"]],
TypeSystem`Atom[
Quantity[1, "Gallons"^(-1) "Miles"]],
TypeSystem`Atom[
Entity["City"]],
TypeSystem`Atom[
Quantity[1, "Gallons"]],
TypeSystem`Atom[
Quantity[1, "USDollars"]],
TypeSystem`Atom[
Quantity[1, "Miles"]],
TypeSystem`Atom[GeoPosition],
TypeSystem`Atom[DateObject],
TypeSystem`Atom[DateObject],
TypeSystem`Atom[
Quantity[1, "Gallons"]]}], 3],
Association["ID" -> 29974795818702]],
  DayRound[#Timestamp] ==
    DateObject[{2019, 6, 20}, "Day", "Gregorian", -5.`] &],
 {"FuelUsed", "PreviousTime"}
 ]

And that’s just one data point. If I take all of the data I’ve collected with the web form and compare it to what I’ve measured with my new CAN sniffing system, I can see how well the results match with a scatter plot:

fuelUsedData = Cases
&#10005

fuelUsedData = Cases[Dataset[{
Association[
      "EstimatedMPG" -> Quantity[28.2, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[920, "Miles"],
       "TripDistance" -> Quantity[314.1, "Miles"],
       "TotalPrice" -> Quantity[23.26, "USDollars"],
       "FuelUsed" -> Quantity[
        11.9949999999999992185`5.07890025230385, "Gallons"],
       "Timestamp" -> DateObject[{2016, 4, 3, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 3, 20, 1, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[24.3, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[1181, "Miles"],
       "TripDistance" -> Quantity[261.7, "Miles"],
       "TotalPrice" -> Quantity[20.19, "USDollars"],
       "FuelUsed" -> Quantity[
        11.14199999999999946`5.046863154123424, "Gallons"],
       "Timestamp" -> DateObject[{2016, 4, 23, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 4, 3, 1, 0, 0.}, "Instant",
          "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[32.4, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[1338, "Miles"],
       "TripDistance" -> Quantity[156.5, "Miles"],
       "TotalPrice" -> Quantity[10.95, "USDollars"],
       "FuelUsed" -> Quantity[5.241, "Gallons"],
       "Timestamp" -> DateObject[{2016, 4, 29, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 4, 23, 1, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[34.5, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[1690, "Miles"],
       "TripDistance" -> Quantity[351.6, "Miles"],
       "TotalPrice" -> Quantity[23.5, "USDollars"],
       "FuelUsed" -> Quantity[
        10.8840000000000003411`5.03668853310772, "Gallons"],
       "Timestamp" -> DateObject[{2016, 5, 3, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 4, 29, 1, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[30.9, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[2030, "Miles"],
       "TripDistance" -> Quantity[340.2, "Miles"],
       "TotalPrice" -> Quantity[23.06, "USDollars"],
       "FuelUsed" -> Quantity[
        10.881999999999999673`5.036608721569886, "Gallons"],
       "Timestamp" -> DateObject[{2016, 5, 13, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 5, 3, 1, 0, 0.}, "Instant",
          "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[32.4, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[2280, "Miles"],
       "TripDistance" -> Quantity[250, "Miles"],
       "TotalPrice" -> Quantity[18.33, "USDollars"],
       "FuelUsed" -> Quantity[8.113, "Gallons"],
       "Timestamp" -> DateObject[{2016, 5, 18, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 5, 13, 1, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[31.8, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[2584, "Miles"],
       "TripDistance" -> Quantity[303.3, "Miles"],
       "TotalPrice" -> Quantity[21.72, "USDollars"],
       "FuelUsed" -> Quantity[9.786, "Gallons"],
       "Timestamp" -> DateObject[{2016, 5, 23, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 5, 18, 1, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[30., "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[2900, "Miles"],
       "TripDistance" -> Quantity[315.8, "Miles"],
       "TotalPrice" -> Quantity[27.9, "USDollars"],
       "FuelUsed" -> Quantity[
        11.2550000000000007817`5.051245499336538, "Gallons"],
       "Timestamp" -> DateObject[{2016, 6, 5, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 5, 23, 1, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[3240, "Miles"],
       "TripDistance" -> Quantity[340, "Miles"],
       "TotalPrice" -> Quantity[26.24, "USDollars"],
       "FuelUsed" -> Quantity[
        10.7159999999999993038`5.029932704936171, "Gallons"],
       "Timestamp" -> DateObject[{2016, 6, 12, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 6, 5, 1, 0, 0.}, "Instant",
          "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[31.2, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[3474, "Miles"],
       "TripDistance" -> Quantity[234.4, "Miles"],
       "TotalPrice" -> Quantity[18.55, "USDollars"],
       "FuelUsed" -> Quantity[7.831, "Gallons"],
       "Timestamp" -> DateObject[{2016, 6, 19, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 6, 12, 1, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[28.2, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[3679, "Miles"],
       "TripDistance" -> Quantity[204.5, "Miles"],
       "TotalPrice" -> Quantity[14.95, "USDollars"],
       "FuelUsed" -> Quantity[7.629, "Gallons"],
       "Timestamp" -> DateObject[{2016, 7, 1, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 6, 19, 1, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[33.3, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[3990, "Miles"],
       "TripDistance" -> Quantity[310.8, "Miles"],
       "TotalPrice" -> Quantity[20.94, "USDollars"],
       "FuelUsed" -> Quantity[9.788, "Gallons"],
       "Timestamp" -> DateObject[{2016, 7, 7, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 7, 1, 1, 0, 0.}, "Instant",
          "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[26.1, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[4865, "Miles"],
       "TripDistance" -> Quantity[261.1, "Miles"],
       "TotalPrice" -> Quantity[23.37, "USDollars"],
       "FuelUsed" -> Quantity[10.824, "Gallons"],
       "Timestamp" -> DateObject[{2016, 8, 13, 1, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 7, 7, 1, 0, 0.}, "Instant",
          "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[28.5, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[5167, "Miles"],
       "TripDistance" -> Quantity[301.9, "Miles"],
       "TotalPrice" -> Quantity[23.74, "USDollars"],
       "FuelUsed" -> Quantity[11.153, "Gallons"],
       "Timestamp" -> DateObject[{2016, 8, 28, 17, 47, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 8, 13, 1, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[33.3, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[5449, "Miles"],
       "TripDistance" -> Quantity[281, "Miles"],
       "TotalPrice" -> Quantity[19.02, "USDollars"],
       "FuelUsed" -> Quantity[8.849, "Gallons"],
       "Timestamp" -> DateObject[{2016, 9, 4, 14, 10, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 8, 28, 17, 47, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[31.2, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[5744, "Miles"],
       "TripDistance" -> Quantity[295, "Miles"],
       "TotalPrice" -> Quantity[19.7, "USDollars"],
       "FuelUsed" -> Quantity[9.853, "Gallons"],
       "Timestamp" -> DateObject[{2016, 9, 13, 21, 3, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 9, 4, 14, 10, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[33.3, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[6039, "Miles"],
       "TripDistance" -> Quantity[295.5, "Miles"],
       "TotalPrice" -> Quantity[18.65, "USDollars"],
       "FuelUsed" -> Quantity[9.102, "Gallons"],
       "Timestamp" -> DateObject[{2016, 9, 22, 0, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 9, 13, 21, 3, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[31.2, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[6345, "Miles"],
       "TripDistance" -> Quantity[305.5, "Miles"],
       "TotalPrice" -> Quantity[22.6, "USDollars"],
       "FuelUsed" -> Quantity[10.277, "Gallons"],
       "Timestamp" -> DateObject[{2016, 10, 2, 16, 24, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 9, 22, 0, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[33.6, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[6722, "Miles"],
       "TripDistance" -> Quantity[376.7, "Miles"],
       "TotalPrice" -> Quantity[23.92, "USDollars"],
       "FuelUsed" -> Quantity[11.672, "Gallons"],
       "Timestamp" -> DateObject[{2016, 10, 9, 22, 3, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 10, 2, 16, 24, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[29.1, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[6973, "Miles"],
       "TripDistance" -> Quantity[251.3, "Miles"],
       "TotalPrice" -> Quantity[18.92, "USDollars"],
       "FuelUsed" -> Quantity[9.511, "Gallons"],
       "Timestamp" -> DateObject[{2016, 10, 22, 16, 22, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 10, 9, 22, 3, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[23.7, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[7129, "Miles"],
       "TripDistance" -> Quantity[155.6, "Miles"],
       "TotalPrice" -> Quantity[12.11, "USDollars"],
       "FuelUsed" -> Quantity[6.731, "Gallons"],
       "Timestamp" -> DateObject[{2016, 11, 6, 18, 36, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 10, 22, 16, 22, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[30.6, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[7373, "Miles"],
       "TripDistance" -> Quantity[244.6, "Miles"],
       "TotalPrice" -> Quantity[15.49, "USDollars"],
       "FuelUsed" -> Quantity[8.611, "Gallons"],
       "Timestamp" -> DateObject[{2016, 11, 13, 13, 9, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 11, 6, 18, 36, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[27.9, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[7614, "Miles"],
       "TripDistance" -> Quantity[240.3, "Miles"],
       "TotalPrice" -> Quantity[17.07, "USDollars"],
       "FuelUsed" -> Quantity[9.036, "Gallons"],
       "Timestamp" -> DateObject[{2016, 11, 23, 18, 22, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 11, 13, 13, 9, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[29.4, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[7866, "Miles"],
       "TripDistance" -> Quantity[252.4, "Miles"],
       "TotalPrice" -> Quantity[16.57, "USDollars"],
       "FuelUsed" -> Quantity[8.776, "Gallons"],
       "Timestamp" -> DateObject[{2016, 11, 27, 18, 8, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 11, 23, 18, 22, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[24., "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[8115, "Miles"],
       "TripDistance" -> Quantity[248.7, "Miles"],
       "TotalPrice" -> Quantity[22.54, "USDollars"],
       "FuelUsed" -> Quantity[10.946, "Gallons"],
       "Timestamp" -> DateObject[{2016, 12, 13, 22, 13, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 11, 27, 18, 8, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[25.2, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[8256, "Miles"],
       "TripDistance" -> Quantity[141.3, "Miles"],
       "TotalPrice" -> Quantity[12.43, "USDollars"],
       "FuelUsed" -> Quantity[6.282, "Gallons"],
       "Timestamp" -> DateObject[{2016, 12, 17, 11, 12, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 12, 13, 22, 13, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[28.5, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[8549, "Miles"],
       "TripDistance" -> Quantity[292.7, "Miles"],
       "TotalPrice" -> Quantity[22.61, "USDollars"],
       "FuelUsed" -> Quantity[10.474, "Gallons"],
       "Timestamp" -> DateObject[{2016, 12, 18, 19, 46, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 12, 17, 11, 12, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[29.7, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[8868, "Miles"],
       "TripDistance" -> Quantity[318.9, "Miles"],
       "TotalPrice" -> Quantity[25., "USDollars"],
       "FuelUsed" -> Quantity[11.164, "Gallons"],
       "Timestamp" -> DateObject[{2016, 12, 23, 21, 8, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 12, 18, 19, 46, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[30.3, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[9210, "Miles"],
       "TripDistance" -> Quantity[342.4, "Miles"],
       "TotalPrice" -> Quantity[27.11, "USDollars"],
       "FuelUsed" -> Quantity[11.794, "Gallons"],
       "Timestamp" -> DateObject[{2017, 1, 5, 20, 9, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2016, 12, 23, 21, 8, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[19.8, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[14, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[9384, "Miles"],
       "TripDistance" -> Quantity[173.1, "Miles"],
       "TotalPrice" -> Quantity[20.6, "USDollars"],
       "FuelUsed" -> Quantity[9.542, "Gallons"],
       "Timestamp" -> DateObject[{2017, 1, 25, 20, 37, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 1, 5, 20, 9, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[20.4, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[14, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[9563, "Miles"],
       "TripDistance" -> Quantity[179.8, "Miles"],
       "TotalPrice" -> Quantity[18.83, "USDollars"],
       "FuelUsed" -> Quantity[9.421, "Gallons"],
       "Timestamp" -> DateObject[{2017, 2, 11, 18, 44, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 1, 25, 20, 37, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[30.3, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[37, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[9820, "Miles"],
       "TripDistance" -> Quantity[256.1, "Miles"],
       "TotalPrice" -> Quantity[18.48, "USDollars"],
       "FuelUsed" -> Quantity[8.847, "Gallons"],
       "Timestamp" -> DateObject[{2017, 2, 17, 21, 31, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 2, 11, 18, 44, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[0.4338764429650753, "Gallons"]],
Association[
      "EstimatedMPG" -> Quantity[31.5, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[57, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[10071, "Miles"],
       "TripDistance" -> Quantity[251.2, "Miles"],
       "TotalPrice" -> Quantity[17.02, "USDollars"],
       "FuelUsed" -> Quantity[8.185, "Gallons"],
       "Timestamp" -> DateObject[{2017, 2, 19, 18, 40, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 2, 17, 21, 31, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        0.11957259231694725`, "Gallons"]],
Association[
      "EstimatedMPG" -> Quantity[25.5, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[21, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[10323, "Miles"],
       "TripDistance" -> Quantity[251.6, "Miles"],
       "TotalPrice" -> Quantity[21.69, "USDollars"],
       "FuelUsed" -> Quantity[10.584, "Gallons"],
       "Timestamp" -> DateObject[{2017, 3, 13, 19, 17, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 2, 19, 18, 40, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[8.226586769668069, "Gallons"]], 

Association[
      "EstimatedMPG" -> Quantity[27.6, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[28, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[10467, "Miles"],
       "TripDistance" -> Quantity[323.9, "Miles"],
       "TotalPrice" -> Quantity[27.31, "USDollars"],
       "FuelUsed" -> Quantity[12.037, "Gallons"],
       "Timestamp" -> DateObject[{2017, 4, 1, 17, 36, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 3, 13, 19, 17, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[31.8, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[36, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[10926, "Miles"],
       "TripDistance" -> Quantity[279.9, "Miles"],
       "TotalPrice" -> Quantity[20.58, "USDollars"],
       "FuelUsed" -> Quantity[9.151, "Gallons"],
       "Timestamp" -> DateObject[{2017, 4, 14, 18, 58, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 4, 1, 17, 36, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
         8.275536596152786, "Gallons"] + 6 timeSeriesTotalIntegral[
Missing["NotAvailable"]]],
Association[
      "EstimatedMPG" -> Quantity[31.2, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[62, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[11299, "Miles"],
       "TripDistance" -> Quantity[372.8, "Miles"],
       "TotalPrice" -> Quantity[27.42, "USDollars"],
       "FuelUsed" -> Quantity[12.471, "Gallons"],
       "Timestamp" -> DateObject[{2017, 4, 16, 19, 43, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 4, 14, 18, 58, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
         11.970666623782034`, "Gallons"] + 2 timeSeriesTotalIntegral[
Missing["NotAvailable"]]],
Association[
      "EstimatedMPG" -> Quantity[27, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[24, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[11557, "Miles"],
       "TripDistance" -> Quantity[257.9, "Miles"],
       "TotalPrice" -> Quantity[21.04, "USDollars"],
       "FuelUsed" -> Quantity[10.268, "Gallons"],
       "Timestamp" -> DateObject[{2017, 5, 3, 19, 15, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 4, 16, 19, 43, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
         6.582597593562095, "Gallons"] + timeSeriesTotalIntegral[
Missing["NotAvailable"]]],
Association[
      "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[39, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[11925, "Miles"],
       "TripDistance" -> Quantity[367.9, "Miles"],
       "TotalPrice" -> Quantity[23.54, "USDollars"],
       "FuelUsed" -> Quantity[11.835, "Gallons"],
       "Timestamp" -> DateObject[{2017, 5, 6, 12, 30, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 5, 3, 19, 15, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        11.387183735781385`, "Gallons"]],
Association[
      "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[43, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[12150, "Miles"],
       "TripDistance" -> Quantity[224.5, "Miles"],
       "TotalPrice" -> Quantity[13.95, "USDollars"],
       "FuelUsed" -> Quantity[7.048, "Gallons"],
       "Timestamp" -> DateObject[{2017, 5, 8, 17, 13, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 5, 6, 12, 30, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[6.87396516806532, "Gallons"]],
Association[
      "EstimatedMPG" -> Quantity[34.2, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[51, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[12503, "Miles"],
       "TripDistance" -> Quantity[353.6, "Miles"],
       "TotalPrice" -> Quantity[22.49, "USDollars"],
       "FuelUsed" -> Quantity[10.419, "Gallons"],
       "Timestamp" -> DateObject[{2017, 5, 14, 16, 30, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 5, 8, 17, 13, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
         5.4092169276133895`, "Gallons"] + 7 timeSeriesTotalIntegral[
Missing["NotAvailable"]]],
Association[
      "EstimatedMPG" -> Quantity[28.8, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[22, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[12772, "Miles"],
       "TripDistance" -> Quantity[267.7, "Miles"],
       "TotalPrice" -> Quantity[20.67, "USDollars"],
       "FuelUsed" -> Quantity[9.895, "Gallons"],
       "Timestamp" -> DateObject[{2017, 6, 7, 19, 1, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 5, 14, 16, 30, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        37.202815845622155`, "Gallons"]],
Association[
      "EstimatedMPG" -> Quantity[31.5, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[34, "Hours"^(-1) "Miles"],
       "Odometer" -> Quantity[13003, "Miles"],
       "TripDistance" -> Quantity[231.5, "Miles"],
       "TotalPrice" -> Quantity[14.78, "USDollars"],
       "FuelUsed" -> Quantity[7.825, "Gallons"],
       "Timestamp" -> DateObject[{2017, 6, 15, 19, 41, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 6, 7, 19, 1, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[7.468142731390621, "Gallons"]], 

Association[
      "EstimatedMPG" -> Quantity[31.5, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[38, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[376.5, "Miles"],
       "Odometer" -> Quantity[13380, "Miles"],
       "FuelUsed" -> Quantity[12.11, "Gallons"],
       "TotalPrice" -> Quantity[23.72, "USDollars"],
       "DateTime" -> DateObject[{2017, 6, 24, 21, 47}, "Minute",
         "Gregorian", -5.],
       "Timestamp" -> DateObject[{2017, 6, 24, 22, 47, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 6, 15, 19, 41, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        11.912580340823496`, "Gallons"]],
Association[
      "EstimatedMPG" -> Quantity[29.4, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[36, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[303.8, "Miles"],
       "Odometer" -> Quantity[13683, "Miles"],
       "FuelUsed" -> Quantity[10.551, "Gallons"],
       "TotalPrice" -> Quantity[22.25, "USDollars"],
       "DateTime" -> DateObject[{2017, 7, 5, 11, 21}, "Minute",
         "Gregorian", 1.],
       "Timestamp" -> DateObject[{2017, 7, 5, 6, 21, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 6, 24, 22, 47, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        11.894378886416021`, "Gallons"]],
Association[
      "EstimatedMPG" -> Quantity[32.7, "Gallons"^(-1) "Miles"],
       "AverageSpeed" -> Quantity[47, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[335.6, "Miles"],
       "Odometer" -> Quantity[14019, "Miles"],
       "FuelUsed" -> Quantity[10.814, "Gallons"],
       "TotalPrice" -> Quantity[25.08, "USDollars"],
       "DateTime" -> DateObject[{2017, 7, 9, 15, 3}, "Minute",
         "Gregorian", -4.],
       "Timestamp" -> DateObject[{2017, 7, 9, 15, 3, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 7, 5, 6, 21, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[39.81773334068534, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[34, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[340.9, "Miles"],
       "DateTime" -> DateObject[{2017, 7, 22, 12, 33}, "Minute",
         "Gregorian", -5.],
       "EstimatedMPG" -> Quantity[30.6, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[23.09, "USDollars"],
       "Odometer" -> Quantity[14360, "Miles"],
       "FuelUsed" -> Quantity[11.668, "Gallons"],
       "Timestamp" -> DateObject[{2017, 7, 22, 13, 33, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 7, 9, 15, 3, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        10.743282850202064`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[19, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[272.3, "Miles"],
       "DateTime" -> DateObject[{2017, 8, 10, 18, 31}, "Minute",
         "Gregorian", -5.],
       "EstimatedMPG" -> Quantity[25.2, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[22.16, "USDollars"],
       "Odometer" -> Quantity[14632, "Miles"],
       "FuelUsed" -> Quantity[11.255, "Gallons"],
       "Timestamp" -> DateObject[{2017, 8, 10, 19, 31, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 7, 22, 13, 33, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        10.598824458036823`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[35, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[230.4, "Miles"],
       "DateTime" -> DateObject[{2017, 8, 19, 12, 30}, "Minute",
         "Gregorian", -5.],
       "EstimatedMPG" -> Quantity[30.6, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[17.5, "USDollars"],
       "Odometer" -> Quantity[14864, "Miles"],
       "FuelUsed" -> Quantity[8.031, "Gallons"],
       "Timestamp" -> DateObject[{2017, 8, 19, 13, 30, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 8, 10, 19, 31, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[0.6858793436883326, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[61, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[455.3, "Miles"],
       "DateTime" -> DateObject[{2017, 8, 22, 14, 33}, "Minute",
         "Gregorian", -6.],
       "EstimatedMPG" -> Quantity[34.5, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[28.28, "USDollars"],
       "Odometer" -> Quantity[15319, "Miles"],
       "FuelUsed" -> Quantity[13.219, "Gallons"],
       "Timestamp" -> DateObject[{2017, 8, 22, 16, 33, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 8, 19, 13, 30, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[5.248428475859576, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[18, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[269.8, "Miles"],
       "DateTime" -> DateObject[{2017, 9, 23, 12, 29}, "Minute",
         "Gregorian", -6.],
       "EstimatedMPG" -> Quantity[24.6, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[27.62, "USDollars"],
       "Odometer" -> Quantity[15589, "Miles"],
       "FuelUsed" -> Quantity[12.228, "Gallons"],
       "Timestamp" -> DateObject[{2017, 9, 23, 14, 29, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 8, 22, 16, 33, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        3.3161502542625363`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[47, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[201.5, "Miles"],
       "DateTime" -> DateObject[{2017, 9, 25, 13, 16}, "Minute",
         "Gregorian", -4.],
       "EstimatedMPG" -> Quantity[33., "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[12.93, "USDollars"],
       "Odometer" -> Quantity[15790, "Miles"],
       "FuelUsed" -> Quantity[6.434, "Gallons"],
       "Timestamp" -> DateObject[{2017, 9, 25, 13, 16, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 9, 23, 14, 29, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[49, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[438.9, "Miles"],
       "DateTime" -> DateObject[{2017, 10, 1, 20, 8}, "Minute",
         "Gregorian", -6.],
       "EstimatedMPG" -> Quantity[36.3, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[27.73, "USDollars"],
       "Odometer" -> Quantity[16229, "Miles"],
       "FuelUsed" -> Quantity[12.725, "Gallons"],
       "Timestamp" -> DateObject[{2017, 10, 1, 22, 8, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 9, 25, 13, 16, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[48, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[422.2, "Miles"],
       "DateTime" -> DateObject[{2017, 10, 7, 16, 21, 32.}, "Instant",
          "Gregorian", -8.],
       "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[31.66, "USDollars"],
       "Odometer" -> Quantity[16652, "Miles"],
       "FuelUsed" -> Quantity[13.771, "Gallons"],
       "Timestamp" -> DateObject[{2017, 10, 7, 20, 21, 32.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 10, 1, 22, 8, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[26, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[194.4, "Miles"],
       "DateTime" -> DateObject[{2017, 10, 20, 20, 11}, "Minute",
         "Gregorian", -6.],
       "EstimatedMPG" -> Quantity[28.5, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[15.76, "USDollars"],
       "Odometer" -> Quantity[16846, "Miles"],
       "FuelUsed" -> Quantity[6.915, "Gallons"],
       "Timestamp" -> DateObject[{2017, 10, 20, 22, 11, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 10, 7, 20, 21, 32.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[50, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[334.7, "Miles"],
       "DateTime" -> DateObject[{2017, 10, 26, 13, 18}, "Minute",
         "Gregorian", -6.],
       "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[25.94, "USDollars"],
       "Odometer" -> Quantity[17181, "Miles"],
       "FuelUsed" -> Quantity[10.811, "Gallons"],
       "Timestamp" -> DateObject[{2017, 10, 26, 15, 18, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 10, 20, 22, 11, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[41, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[350.1, "Miles"],
       "DateTime" -> DateObject[{2017, 11, 4, 18, 31}, "Minute",
         "Gregorian", -5.],
       "EstimatedMPG" -> Quantity[30.6, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[31.55, "USDollars"],
       "Odometer" -> Quantity[17531, "Miles"],
       "FuelUsed" -> Quantity[12.14, "Gallons"],
       "Timestamp" -> DateObject[{2017, 11, 4, 19, 31, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 10, 26, 15, 18, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[37, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[270.4, "Miles"],
       "DateTime" -> DateObject[{2017, 11, 10, 17, 38}, "Minute",
         "Gregorian", -5.],
       "EstimatedMPG" -> Quantity[29.4, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[24.2, "USDollars"],
       "Odometer" -> Quantity[17801, "Miles"],
       "FuelUsed" -> Quantity[9.762, "Gallons"],
       "Timestamp" -> DateObject[{2017, 11, 10, 18, 38, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 11, 4, 19, 31, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[33, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[236.2, "Miles"],
       "DateTime" -> DateObject[{2017, 11, 19, 15, 24}, "Minute",
         "Gregorian", -5.],
       "EstimatedMPG" -> Quantity[30.3, "Gallons"^(-1) "Miles"],
       "TotalPrice" -> Quantity[19.68, "USDollars"],
       "Odometer" -> Quantity[18038, "Miles"],
       "FuelUsed" -> Quantity[8.134, "Gallons"],
       "Timestamp" -> DateObject[{2017, 11, 19, 16, 24, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 11, 10, 18, 38, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[4336, "Miles"],
       "TripDistance" -> Quantity[346.7, "Miles"],
       "TotalPrice" -> Quantity[23.52, "USDollars"],
       "FuelUsed" -> Quantity[11.203, "Gallons"],
       "Timestamp" -> DateObject[{
         2016, 7, 17, 17, 6, 54.23579978942871}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 11, 19, 16, 24, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "EstimatedMPG" -> Quantity[34.2, "Gallons"^(-1) "Miles"],
       "Odometer" -> Quantity[4604, "Miles"],
       "TripDistance" -> Quantity[267.2, "Miles"],
       "TotalPrice" -> Quantity[15.32, "USDollars"],
       "FuelUsed" -> Quantity[8.066, "Gallons"],
       "Timestamp" -> DateObject[{
         2016, 7, 17, 23, 14, 34.14919996261597}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{
         2016, 7, 17, 17, 6, 54.23579978942871}, "Instant",
         "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[35, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[294.9, "Miles"],
       "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.891, "Gallons"],
       "TotalPrice" -> Quantity[23.14, "USDollars"],
       "OdometerMiles" -> Quantity[18333, "Miles"],
       "Timestamp" -> DateObject[{2017, 11, 26, 14, 43, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{
         2016, 7, 17, 23, 14, 34.14919996261597}, "Instant",
         "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
         238.49024201695676`, "Gallons"] + 16 timeSeriesTotalIntegral[

Missing["NotAvailable"]]],
Association[
      "AverageSpeed" -> Quantity[45, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[326.7, "Miles"],
       "EstimatedMPG" -> Quantity[31.5, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.652, "Gallons"],
       "TotalPrice" -> Quantity[23.74, "USDollars"],
       "OdometerMiles" -> Quantity[18660, "Miles"],
       "Timestamp" -> DateObject[{2017, 12, 2, 9, 44, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 11, 26, 14, 43, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[29, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[272.2, "Miles"],
       "EstimatedMPG" -> Quantity[27.6, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.244, "Gallons"],
       "TotalPrice" -> Quantity[23.65, "USDollars"],
       "OdometerMiles" -> Quantity[18932, "Miles"],
       "Timestamp" -> DateObject[{2017, 12, 15, 22, 0, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 12, 2, 9, 44, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[53, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[356.7, "Miles"],
       "EstimatedMPG" -> Quantity[32.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.398, "Gallons"],
       "TotalPrice" -> Quantity[26.2, "USDollars"],
       "OdometerMiles" -> Quantity[19289, "Miles"],
       "Timestamp" -> DateObject[{2017, 12, 22, 0, 32, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 12, 15, 22, 0, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[46, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[366.1, "Miles"],
       "EstimatedMPG" -> Quantity[29.4, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.713, "Gallons"],
       "TotalPrice" -> Quantity[32.02, "USDollars"],
       "OdometerMiles" -> Quantity[19655, "Miles"],
       "Timestamp" -> DateObject[{2018, 1, 3, 0, 22, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2017, 12, 22, 0, 32, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[43, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[320.8, "Miles"],
       "EstimatedMPG" -> Quantity[27.6, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.876, "Gallons"],
       "TotalPrice" -> Quantity[28.85, "USDollars"],
       "OdometerMiles" -> Quantity[19976, "Miles"],
       "Timestamp" -> DateObject[{2018, 1, 9, 0, 53, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 1, 3, 0, 22, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[29, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[177.8, "Miles"],
       "EstimatedMPG" -> Quantity[23.4, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[8.275, "Gallons"],
       "TotalPrice" -> Quantity[20.43, "USDollars"],
       "OdometerMiles" -> Quantity[20153, "Miles"],
       "Timestamp" -> DateObject[{2018, 1, 17, 20, 26, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 1, 9, 0, 53, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[40, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[306.5, "Miles"],
       "EstimatedMPG" -> Quantity[28.5, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.993, "Gallons"],
       "TotalPrice" -> Quantity[28.57, "USDollars"],
       "OdometerMiles" -> Quantity[20460, "Miles"],
       "Timestamp" -> DateObject[{2018, 1, 25, 6, 21, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 1, 17, 20, 26, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[52, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[200.8, "Miles"],
       "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[6.774, "Gallons"],
       "TotalPrice" -> Quantity[16.25, "USDollars"],
       "OdometerMiles" -> Quantity[20661, "Miles"],
       "Timestamp" -> DateObject[{2018, 1, 27, 11, 45, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 1, 25, 6, 21, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[50, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[407.9, "Miles"],
       "EstimatedMPG" -> Quantity[32.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.241, "Gallons"],
       "TotalPrice" -> Quantity[30.84, "USDollars"],
       "OdometerMiles" -> Quantity[21069, "Miles"],
       "Timestamp" -> DateObject[{2018, 1, 29, 20, 6, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 1, 27, 11, 45, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[40, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[313.8, "Miles"],
       "EstimatedMPG" -> Quantity[27.3, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.149, "Gallons"],
       "TotalPrice" -> Quantity[29.85, "USDollars"],
       "OdometerMiles" -> Quantity[21383, "Miles"],
       "Timestamp" -> DateObject[{2018, 2, 5, 21, 20, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 1, 29, 20, 6, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[49, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[271.5, "Miles"],
       "EstimatedMPG" -> Quantity[29.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.634, "Gallons"],
       "TotalPrice" -> Quantity[23.11, "USDollars"],
       "OdometerMiles" -> Quantity[21654, "Miles"],
       "Timestamp" -> DateObject[{2018, 2, 8, 18, 19, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 2, 5, 21, 20, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[43, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[290.6, "Miles"],
       "EstimatedMPG" -> Quantity[29.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.735, "Gallons"],
       "TotalPrice" -> Quantity[24.57, "USDollars"],
       "OdometerMiles" -> Quantity[21945, "Miles"],
       "Timestamp" -> DateObject[{2018, 2, 14, 19, 53, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 2, 8, 18, 19, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[46, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[417.2, "Miles"],
       "EstimatedMPG" -> Quantity[31.5, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[13.477, "Gallons"],
       "TotalPrice" -> Quantity[33.41, "USDollars"],
       "OdometerMiles" -> Quantity[22362, "Miles"],
       "Timestamp" -> DateObject[{2018, 2, 22, 17, 28, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 2, 14, 19, 53, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[39, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[318.6, "Miles"],
       "EstimatedMPG" -> Quantity[29.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.19, "Gallons"],
       "TotalPrice" -> Quantity[27.85, "USDollars"],
       "OdometerMiles" -> Quantity[22681, "Miles"],
       "Timestamp" -> DateObject[{2018, 3, 3, 18, 5, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 2, 22, 17, 28, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        10.201032332391556`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[49, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[276, "Miles"],
       "EstimatedMPG" -> Quantity[31.2, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.506, "Gallons"],
       "TotalPrice" -> Quantity[23., "USDollars"],
       "OdometerMiles" -> Quantity[22957, "Miles"],
       "Timestamp" -> DateObject[{2018, 3, 8, 17, 58, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 3, 3, 18, 5, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[7.061881381832778, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[38, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[242.3, "Miles"],
       "EstimatedMPG" -> Quantity[31.8, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[7.92, "Gallons"],
       "TotalPrice" -> Quantity[18.6, "USDollars"],
       "OdometerMiles" -> Quantity[23199, "Miles"],
       "Timestamp" -> DateObject[{2018, 3, 11, 21, 26, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 3, 8, 17, 58, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        12.298056831430841`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[39, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[361.8, "Miles"],
       "EstimatedMPG" -> Quantity[30, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.612, "Gallons"],
       "TotalPrice" -> Quantity[29.63, "USDollars"],
       "OdometerMiles" -> Quantity[23561, "Miles"],
       "Timestamp" -> DateObject[{2018, 3, 20, 16, 24, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 3, 28, 19, 4, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[42, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[292.3, "Miles"],
       "EstimatedMPG" -> Quantity[31.2, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.729, "Gallons"],
       "TotalPrice" -> Quantity[24.9, "USDollars"],
       "OdometerMiles" -> Quantity[23854, "Miles"],
       "Timestamp" -> DateObject[{2018, 3, 28, 19, 4, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 3, 20, 16, 24, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[9.308991401924583, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[38, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[317., "Miles"],
       "EstimatedMPG" -> Quantity[30.9, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.753, "Gallons"],
       "TotalPrice" -> Quantity[26.76, "USDollars"],
       "OdometerMiles" -> Quantity[24171, "Miles"],
       "Timestamp" -> DateObject[{2018, 4, 4, 16, 33, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 3, 20, 16, 24, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[19.7561723842301, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[33, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[220.7, "Miles"],
       "EstimatedMPG" -> Quantity[33., "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[6.862, "Gallons"],
       "TotalPrice" -> Quantity[16.87, "USDollars"],
       "OdometerMiles" -> Quantity[24392, "Miles"],
       "Timestamp" -> DateObject[{2018, 4, 8, 14, 43, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 4, 4, 16, 33, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[6.620818930699456, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[52, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[290.9, "Miles"],
       "EstimatedMPG" -> Quantity[32.4, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.449, "Gallons"],
       "TotalPrice" -> Quantity[25.12, "USDollars"],
       "OdometerMiles" -> Quantity[24683, "Miles"],
       "Timestamp" -> DateObject[{2018, 4, 11, 18, 54, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 4, 8, 14, 43, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[8.865459602531844, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[37, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[319.4, "Miles"],
       "EstimatedMPG" -> Quantity[30.6, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.462, "Gallons"],
       "TotalPrice" -> Quantity[29.07, "USDollars"],
       "OdometerMiles" -> Quantity[25002, "Miles"],
       "Timestamp" -> DateObject[{2018, 4, 17, 16, 22, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 6, 20, 9, 41, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[43, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[297.2, "Miles"],
       "EstimatedMPG" -> Quantity[31.2, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.407, "Gallons"],
       "TotalPrice" -> Quantity[27.36, "USDollars"],
       "OdometerMiles" -> Quantity[25299, "Miles"],
       "Timestamp" -> DateObject[{2018, 4, 25, 19, 15, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 4, 17, 16, 22, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[9.400993215696083, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[39, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[310.9, "Miles"],
       "EstimatedMPG" -> Quantity[31.2, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.742, "Gallons"],
       "TotalPrice" -> Quantity[26.59, "USDollars"],
       "OdometerMiles" -> Quantity[25610, "Miles"],
       "Timestamp" -> DateObject[{2018, 5, 2, 19, 35, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 4, 25, 19, 15, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[9.827915593554883, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[43, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[294.9, "Miles"],
       "EstimatedMPG" -> Quantity[31.5, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.835, "Gallons"],
       "TotalPrice" -> Quantity[26.15, "USDollars"],
       "OdometerMiles" -> Quantity[25905, "Miles"],
       "Timestamp" -> DateObject[{2018, 5, 8, 8, 30, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 5, 2, 19, 35, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[5.639203003019976, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[50, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[366.7, "Miles"],
       "EstimatedMPG" -> Quantity[33.6, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.424, "Gallons"],
       "TotalPrice" -> Quantity[31.98, "USDollars"],
       "OdometerMiles" -> Quantity[26272, "Miles"],
       "Timestamp" -> DateObject[{2018, 5, 12, 16, 4, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 5, 8, 8, 30, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        14.335951964162852`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[26, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[318.5, "Miles"],
       "EstimatedMPG" -> Quantity[29.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.503, "Gallons"],
       "TotalPrice" -> Quantity[32.66, "USDollars"],
       "OdometerMiles" -> Quantity[27243, "Miles"],
       "Timestamp" -> DateObject[{2018, 6, 7, 18, 59, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 5, 12, 16, 4, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        30.997493587344948`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[19, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[195.7, "Miles"],
       "EstimatedMPG" -> Quantity[26.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[7.781, "Gallons"],
       "TotalPrice" -> Quantity[21.7, "USDollars"],
       "OdometerMiles" -> Quantity[27439, "Miles"],
       "Timestamp" -> DateObject[{2018, 6, 23, 18, 9, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 6, 7, 18, 59, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[7.44556566319391, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[34, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[366.6, "Miles"],
       "EstimatedMPG" -> Quantity[32.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.796, "Gallons"],
       "TotalPrice" -> Quantity[33.37, "USDollars"],
       "OdometerMiles" -> Quantity[27806, "Miles"],
       "Timestamp" -> DateObject[{2018, 7, 2, 11, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 6, 23, 18, 9, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        11.127439537235826`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[18, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[245.5, "Miles"],
       "EstimatedMPG" -> Quantity[25.5, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.4, "Gallons"],
       "TotalPrice" -> Quantity[26.3, "USDollars"],
       "OdometerMiles" -> Quantity[28051, "Miles"],
       "Timestamp" -> DateObject[{2018, 7, 16, 14, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 7, 2, 11, 0, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[9.246367303536667, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[20, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[298.1, "Miles"],
       "EstimatedMPG" -> Quantity[27.9, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.449, "Gallons"],
       "TotalPrice" -> Quantity[31.02, "USDollars"],
       "OdometerMiles" -> Quantity[28349, "Miles"],
       "Timestamp" -> DateObject[{2018, 7, 29, 13, 13, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 7, 16, 14, 0, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[8.062616299500588, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[22, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[290.8, "Miles"],
       "EstimatedMPG" -> Quantity[27.3, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.081, "Gallons"],
       "TotalPrice" -> Quantity[30.68, "USDollars"],
       "OdometerMiles" -> Quantity[28640, "Miles"],
       "Timestamp" -> DateObject[{2018, 8, 12, 16, 40, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 7, 29, 13, 13, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[10.48446180089347, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[28, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[353.8, "Miles"],
       "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.961, "Gallons"],
       "TotalPrice" -> Quantity[31.8, "USDollars"],
       "OdometerMiles" -> Quantity[28994, "Miles"],
       "Timestamp" -> DateObject[{2018, 8, 25, 14, 41, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 8, 12, 16, 40, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        10.952022624125693`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[31, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[223., "Miles"],
       "EstimatedMPG" -> Quantity[32.4, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[7.224, "Gallons"],
       "TotalPrice" -> Quantity[18.7, "USDollars"],
       "OdometerMiles" -> Quantity[29217, "Miles"],
       "Timestamp" -> DateObject[{2018, 8, 30, 18, 7, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 8, 25, 14, 41, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[6.647793406879721, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[44, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[230.9, "Miles"],
       "EstimatedMPG" -> Quantity[30.9, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[7.533, "Gallons"],
       "TotalPrice" -> Quantity[20.11, "USDollars"],
       "OdometerMiles" -> Quantity[29448, "Miles"],
       "Timestamp" -> DateObject[{2018, 9, 3, 13, 34, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 8, 30, 18, 7, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[6.764249627538012, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[41, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[307.3, "Miles"],
       "EstimatedMPG" -> Quantity[32.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.083, "Gallons"],
       "TotalPrice" -> Quantity[27.92, "USDollars"],
       "OdometerMiles" -> Quantity[29755, "Miles"],
       "Timestamp" -> DateObject[{2018, 9, 10, 13, 12, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 9, 3, 13, 34, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[9.43460039168093, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[37, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[410.2, "Miles"],
       "EstimatedMPG" -> Quantity[34.5, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.179, "Gallons"],
       "TotalPrice" -> Quantity[33.48, "USDollars"],
       "OdometerMiles" -> Quantity[30165, "Miles"],
       "Timestamp" -> DateObject[{2018, 9, 16, 23, 8, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 9, 10, 13, 12, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[18.79818202362314, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[57, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[367., "Miles"],
       "EstimatedMPG" -> Quantity[35.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.177, "Gallons"],
       "TotalPrice" -> Quantity[29.61, "USDollars"],
       "OdometerMiles" -> Quantity[30532, "Miles"],
       "Timestamp" -> DateObject[{2018, 9, 18, 0, 45, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 9, 16, 23, 8, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[3.824864592327269, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[33, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[414.9, "Miles"],
       "EstimatedMPG" -> Quantity[36.6, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.985, "Gallons"],
       "TotalPrice" -> Quantity[33.31, "USDollars"],
       "OdometerMiles" -> Quantity[30947, "Miles"],
       "Timestamp" -> DateObject[{2018, 9, 28, 20, 1, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 9, 18, 0, 45, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[7.958862593850899, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[35, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[375.6, "Miles"],
       "EstimatedMPG" -> Quantity[36., "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.472, "Gallons"],
       "TotalPrice" -> Quantity[29.31, "USDollars"],
       "OdometerMiles" -> Quantity[31323, "Miles"],
       "Timestamp" -> DateObject[{2018, 10, 8, 20, 4, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 9, 28, 20, 1, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        10.426323674169657`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[34, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[353., "Miles"],
       "EstimatedMPG" -> Quantity[32.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.013, "Gallons"],
       "TotalPrice" -> Quantity[31.46, "USDollars"],
       "OdometerMiles" -> Quantity[31676, "Miles"],
       "Timestamp" -> DateObject[{2018, 10, 17, 19, 32, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 10, 8, 20, 4, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        10.661086442583972`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[27, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[262.5, "Miles"],
       "EstimatedMPG" -> Quantity[31.8, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.092, "Gallons"],
       "TotalPrice" -> Quantity[23.36, "USDollars"],
       "OdometerMiles" -> Quantity[31939, "Miles"],
       "Timestamp" -> DateObject[{2018, 10, 28, 16, 24, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 10, 17, 19, 32, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[8.193582500349716, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[30, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[178.2, "Miles"],
       "EstimatedMPG" -> Quantity[33.9, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[5.75, "Gallons"],
       "TotalPrice" -> Quantity[14.54, "USDollars"],
       "OdometerMiles" -> Quantity[32117, "Miles"],
       "Timestamp" -> DateObject[{2018, 11, 2, 21, 51, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 10, 28, 16, 24, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[5.312390143391597, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[49, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[347.1, "Miles"],
       "EstimatedMPG" -> Quantity[30.9, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.568, "Gallons"],
       "TotalPrice" -> Quantity[29.14, "USDollars"],
       "OdometerMiles" -> Quantity[32464, "Miles"],
       "Timestamp" -> DateObject[{2018, 11, 4, 19, 12, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 11, 2, 21, 51, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[2.075199066374545, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[28, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[209.2, "Miles"],
       "EstimatedMPG" -> Quantity[31.8, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[7.401, "Gallons"],
       "TotalPrice" -> Quantity[18.42, "USDollars"],
       "OdometerMiles" -> Quantity[32673, "Miles"],
       "Timestamp" -> DateObject[{2018, 11, 11, 16, 57, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 11, 4, 19, 12, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[6.231548202947106, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[32, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[326.2, "Miles"],
       "EstimatedMPG" -> Quantity[32.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.517, "Gallons"],
       "TotalPrice" -> Quantity[24.91, "USDollars"],
       "OdometerMiles" -> Quantity[33000, "Miles"],
       "Timestamp" -> DateObject[{2018, 11, 20, 21, 22, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 11, 11, 16, 57, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[9.787959108334618, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[54, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[389.7, "Miles"],
       "EstimatedMPG" -> Quantity[33.9, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.114, "Gallons"],
       "TotalPrice" -> Quantity[28.21, "USDollars"],
       "OdometerMiles" -> Quantity[33389, "Miles"],
       "Timestamp" -> DateObject[{2018, 11, 25, 18, 58, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 11, 20, 21, 22, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        11.524096185357045`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[29, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[219.7, "Miles"],
       "EstimatedMPG" -> Quantity[30.9, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[7.66, "Gallons"],
       "TotalPrice" -> Quantity[15.85, "USDollars"],
       "OdometerMiles" -> Quantity[33609, "Miles"],
       "Timestamp" -> DateObject[{2018, 12, 1, 17, 26, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 11, 25, 18, 58, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
         6.9093048504125445`, "Gallons"] + timeSeriesTotalIntegral[
Missing["NotAvailable"]]],
Association[
      "AverageSpeed" -> Quantity[28, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[369.1, "Miles"],
       "EstimatedMPG" -> Quantity[31.5, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.519, "Gallons"],
       "TotalPrice" -> Quantity[28.41, "USDollars"],
       "OdometerMiles" -> Quantity[33978, "Miles"],
       "Timestamp" -> DateObject[{2018, 12, 11, 20, 30, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 12, 1, 17, 26, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[10.8471704910823, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[31, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[252.1, "Miles"],
       "EstimatedMPG" -> Quantity[28.2, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.569, "Gallons"],
       "TotalPrice" -> Quantity[19.61, "USDollars"],
       "OdometerMiles" -> Quantity[34230, "Miles"],
       "Timestamp" -> DateObject[{2018, 12, 19, 20, 46, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 12, 11, 20, 30, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[8.821163166749418, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[47, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[370.3, "Miles"],
       "EstimatedMPG" -> Quantity[30.9, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.148, "Gallons"],
       "TotalPrice" -> Quantity[25.01, "USDollars"],
       "OdometerMiles" -> Quantity[34601, "Miles"],
       "Timestamp" -> DateObject[{2018, 12, 26, 2, 2, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 12, 19, 20, 46, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[11.75774962928049, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[58, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[196.2, "Miles"],
       "EstimatedMPG" -> Quantity[31.8, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[6.221, "Gallons"],
       "TotalPrice" -> Quantity[11.63, "USDollars"],
       "OdometerMiles" -> Quantity[34797, "Miles"],
       "Timestamp" -> DateObject[{2018, 12, 27, 20, 25, 0.},
         "Instant", "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 12, 26, 2, 2, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[6.323759240984072, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[38, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[188.9, "Miles"],
       "EstimatedMPG" -> Quantity[29.4, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[7.034, "Gallons"],
       "TotalPrice" -> Quantity[12.51, "USDollars"],
       "OdometerMiles" -> Quantity[34986, "Miles"],
       "Timestamp" -> DateObject[{2019, 1, 1, 11, 57, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2018, 12, 27, 20, 25, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[6.296012061550661, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[56, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[35137, "Miles"],
       "EstimatedMPG" -> Quantity[30.6, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[5.262, "Gallons"],
       "TotalPrice" -> Quantity[9.26, "USDollars"],
       "OdometerMiles" -> Quantity[151., "Miles"],
       "Timestamp" -> DateObject[{2019, 1, 2, 15, 59, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 1, 1, 11, 57, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[4.896727835092511, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[20, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[202.5, "Miles"],
       "EstimatedMPG" -> Quantity[23.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.012, "Gallons"],
       "TotalPrice" -> Quantity[17.38, "USDollars"],
       "OdometerMiles" -> Quantity[35340, "Miles"],
       "Timestamp" -> DateObject[{2019, 1, 20, 1, 52, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 1, 2, 15, 59, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[8.365363349331192, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[20, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[202.5, "Miles"],
       "EstimatedMPG" -> Quantity[23.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.012, "Gallons"],
       "TotalPrice" -> Quantity[17.38, "USDollars"],
       "OdometerMiles" -> Quantity[35340, "Miles"],
       "Timestamp" -> DateObject[{2019, 1, 19, 13, 52, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 1, 20, 1, 52, 0.},
         "Instant", "Gregorian", -4.], "MeasuredFuelUsed" -> 0],
Association[
      "AverageSpeed" -> Quantity[35, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[283.1, "Miles"],
       "EstimatedMPG" -> Quantity[26.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.564, "Gallons"],
       "TotalPrice" -> Quantity[22.19, "USDollars"],
       "OdometerMiles" -> Quantity[35623, "Miles"],
       "Timestamp" -> DateObject[{2019, 1, 29, 0, 5, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 1, 19, 13, 52, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        10.859035712770952`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[19, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[223., "Miles"],
       "EstimatedMPG" -> Quantity[23.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[10.227, "Gallons"],
       "TotalPrice" -> Quantity[23.31, "USDollars"],
       "OdometerMiles" -> Quantity[35846, "Miles"],
       "Timestamp" -> DateObject[{2019, 2, 18, 20, 20, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 1, 29, 0, 5, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[9.200440331804073, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[18, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[244.4, "Miles"],
       "EstimatedMPG" -> Quantity[22.5, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.974, "Gallons"],
       "TotalPrice" -> Quantity[30.28, "USDollars"],
       "OdometerMiles" -> Quantity[36090, "Miles"],
       "Timestamp" -> DateObject[{2019, 3, 13, 23, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 2, 18, 20, 20, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        11.024033349921012`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[22, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[277.4, "Miles"],
       "EstimatedMPG" -> Quantity[26.1, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.148, "Gallons"],
       "TotalPrice" -> Quantity[28.97, "USDollars"],
       "OdometerMiles" -> Quantity[36368, "Miles"],
       "Timestamp" -> DateObject[{2019, 4, 6, 18, 2, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 3, 13, 23, 0, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        10.256680703564907`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[42, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[356.5, "Miles"],
       "EstimatedMPG" -> Quantity[31.2, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.102, "Gallons"],
       "TotalPrice" -> Quantity[33.39, "USDollars"],
       "OdometerMiles" -> Quantity[36724, "Miles"],
       "Timestamp" -> DateObject[{2019, 4, 16, 18, 8, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 4, 6, 18, 2, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[11.39635644986939, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[40, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[394.3, "Miles"],
       "EstimatedMPG" -> Quantity[33., "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.481, "Gallons"],
       "TotalPrice" -> Quantity[36.18, "USDollars"],
       "OdometerMiles" -> Quantity[37119, "Miles"],
       "Timestamp" -> DateObject[{2019, 4, 23, 0, 31, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 4, 16, 18, 8, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        11.718930074530565`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[44, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[395., "Miles"],
       "EstimatedMPG" -> Quantity[32.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.644, "Gallons"],
       "TotalPrice" -> Quantity[35.14, "USDollars"],
       "OdometerMiles" -> Quantity[37514, "Miles"],
       "Timestamp" -> DateObject[{2019, 4, 26, 9, 42, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 4, 23, 0, 31, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        5.8957129431285145`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[48, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[172.9, "Miles"],
       "EstimatedMPG" -> Quantity[30.9, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[5.588, "Gallons"],
       "TotalPrice" -> Quantity[15.47, "USDollars"],
       "OdometerMiles" -> Quantity[37687, "Miles"],
       "Timestamp" -> DateObject[{2019, 4, 27, 23, 53, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 4, 26, 9, 42, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[12.93090957947945, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[34, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[372.3, "Miles"],
       "EstimatedMPG" -> Quantity[32.4, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.279, "Gallons"],
       "TotalPrice" -> Quantity[33.88, "USDollars"],
       "OdometerMiles" -> Quantity[38059, "Miles"],
       "Timestamp" -> DateObject[{2019, 5, 5, 16, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 4, 27, 23, 53, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[4.184271792291753, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[20, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[270.9, "Miles"],
       "EstimatedMPG" -> Quantity[29.4, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.771, "Gallons"],
       "TotalPrice" -> Quantity[27.64, "USDollars"],
       "OdometerMiles" -> Quantity[38330, "Miles"],
       "Timestamp" -> DateObject[{2019, 5, 17, 18, 0, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 5, 5, 16, 0, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[9.170570463886948, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[47, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[253.4, "Miles"],
       "EstimatedMPG" -> Quantity[35.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[6.906, "Gallons"],
       "TotalPrice" -> Quantity[18.57, "USDollars"],
       "OdometerMiles" -> Quantity[38583, "Miles"],
       "Timestamp" -> DateObject[{2019, 5, 18, 14, 45, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 5, 17, 18, 0, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        7.0794012063021565`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[48, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[240.1, "Miles"],
       "EstimatedMPG" -> Quantity[36.6, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[7.452, "Gallons"],
       "TotalPrice" -> Quantity[19.81, "USDollars"],
       "OdometerMiles" -> Quantity[38823, "Miles"],
       "Timestamp" -> DateObject[{2019, 5, 19, 18, 56, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 5, 18, 14, 45, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[6.544011566906456, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[31, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[372.6, "Miles"],
       "EstimatedMPG" -> Quantity[33.3, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.362, "Gallons"],
       "TotalPrice" -> Quantity[29.87, "USDollars"],
       "OdometerMiles" -> Quantity[39196, "Miles"],
       "Timestamp" -> DateObject[{2019, 5, 26, 16, 59, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 5, 19, 18, 56, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        11.134289782725524`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[20, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[237.5, "Miles"],
       "EstimatedMPG" -> Quantity[28.8, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[8.627, "Gallons"],
       "TotalPrice" -> Quantity[21.21, "USDollars"],
       "OdometerMiles" -> Quantity[39434, "Miles"],
       "Timestamp" -> DateObject[{2019, 6, 7, 20, 4, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 5, 26, 16, 59, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[8.154012961143147, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[35, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[359.1, "Miles"],
       "EstimatedMPG" -> Quantity[33.3, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[11.168, "Gallons"],
       "TotalPrice" -> Quantity[26.23, "USDollars"],
       "OdometerMiles" -> Quantity[39793, "Miles"],
       "Timestamp" -> DateObject[{2019, 6, 14, 17, 52, 0.}, "Instant",
          "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 6, 7, 20, 4, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[7.811062293137301, "Gallons"]], 

Association[
      "AverageSpeed" -> Quantity[36, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[373.5, "Miles"],
       "EstimatedMPG" -> Quantity[33., "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[12.311, "Gallons"],
       "TotalPrice" -> Quantity[32.61, "USDollars"],
       "OdometerMiles" -> Quantity[40166, "Miles"],
       "Timestamp" -> DateObject[{2019, 6, 20, 9, 41, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 6, 14, 17, 52, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[
        11.201536561814645`, "Gallons"]],
Association[
      "AverageSpeed" -> Quantity[20, "Hours"^(-1) "Miles"],
       "TripDistance" -> Quantity[202.5, "Miles"],
       "EstimatedMPG" -> Quantity[23.7, "Gallons"^(-1) "Miles"],
       "FuelUsed" -> Quantity[9.012, "Gallons"],
       "TotalPrice" -> Quantity[17.38, "USDollars"],
       "OdometerMiles" -> Quantity[35340, "Miles"],
       "Timestamp" -> DateObject[{2019, 1, 20, 1, 52, 0.}, "Instant",
         "Gregorian", -4.],
       "PreviousTime" -> DateObject[{2019, 1, 2, 15, 59, 0.},
         "Instant", "Gregorian", -4.],
       "MeasuredFuelUsed" -> Quantity[8.336690312897277, "Gallons"]]},
TypeSystem`Vector[
TypeSystem`Struct[{
       "EstimatedMPG", "Odometer", "TripDistance", "TotalPrice",
        "FuelUsed", "Timestamp", "PreviousTime", "MeasuredFuelUsed",
        "AverageSpeed", "OdometerMiles"}, {
TypeSystem`Atom[
Quantity[1, "Gallons"^(-1) "Miles"]],
TypeSystem`Atom[
Quantity[1, "Miles"]],
TypeSystem`Atom[
Quantity[1, "Miles"]],
TypeSystem`Atom[
Quantity[1, "USDollars"]],
TypeSystem`Atom[
Quantity[1, "Gallons"]],
TypeSystem`Atom[DateObject],
TypeSystem`Atom[DateObject], TypeSystem`AnyType,
TypeSystem`Atom[
Quantity[1, "Hours"^(-1) "Miles"]],
TypeSystem`Atom[
Quantity[1, "Miles"]]}], 135],
Association["ID" -> 30030630393753]][
    All, {#FuelUsed, #MeasuredFuelUsed} &], {_Quantity, _Quantity}];

comparisonPlot = ListPlot
&#10005

comparisonPlot = ListPlot[fuelUsedData, {PlotRange -> {{
Quantity[4, "Gallons"],
Quantity[14, "Gallons"]}, {
Quantity[4, "Gallons"],
Quantity[14, "Gallons"]}},
   FrameLabel -> {
    "Receipt Fuel Purchased (gal)", "CAN Fuel Flow Sum (gal)"},
   PlotTheme -> "Detailed", ImageSize -> 500, Epilog -> {
Dashing[{Small, Small}],
GrayLevel[0],
InfiniteLine[{{0, 0}, {1, 1}}]}, PlotStyle -> RGBColor[1, 0, 0],
   LabelStyle -> 24}]

Notice that most points lie near the dashed y = x line. To verify this result, I can compute a fit for the data:

fit = Fit
&#10005

fit = Fit[QuantityMagnitude[Normal@fuelUsedData, "Gallons"], x, x]

Here is the same plot shown previously, but with that (solid blue) trend line included:

Show
&#10005

Show[comparisonPlot, Plot[fit, {x, 4, 14}]]

Notice that the results are pretty well correlated, so the methods agree for the most part, though there are some outliers (e.g. I don’t use the CAN sniffing system for some trips).

Of course, this means that I can compute my fuel use on a per-trip basis accurately! Then I can do more interesting things, such as compare my fuel economy distribution by month. To do that, I first aggregate data from all trips (which is too large to share) and compute the median values:

fuelEconomyMedians = EntityValue
&#10005

fuelEconomyMedians = EntityValue["Trip",
    EntityProperty["Trip",
     "FuelEconomyTimeSeries", {"AggregationFunction" -> Median}],
    "EntityAssociation"] // Normal;

Then I group the data by month and sort it appropriately:

monthlyMPGDistribution = KeySortBy
&#10005

monthlyMPGDistribution = KeySortBy[
   GroupBy[fuelEconomyMedians,
    First[#]["StartTime"]["MonthName"] & -> Last],
   Interpreter["Date"]];

From here I can plot my monthly fuel economy distribution with BoxWhiskerChart (note that your results using the reduced dataset will differ slightly from what’s shown here):

BoxWhiskerChart
&#10005

BoxWhiskerChart[monthlyMPGDistribution, {
 ImageSize -> Large, PlotTheme -> "Detailed",
  ChartLabels -> Automatic, FrameLabel -> {None,
Quantity[None, "Gallons"^(-1) "Miles"]}, LabelStyle -> 18,
  PlotLabel -> "Fuel Economy by Month"}]

Incorporating GPS Data

After incorporating my manually tracked MPG data, I wanted to incorporate GPS information as well. So I began looking into using my smartphone to collect this data automatically.

Rather than build an Android app from scratch to do this myself, I found it much easier to use an automation app. I used MacroDroid, but just about any automation app should be up to the task. Here’s a quick screenshot of the configuration I used if you want to follow along:

Automation app

With this in place, my smartphone’s GPS data is retrieved and uploaded to a Databin every 10 seconds—but only as long as I’m connected to my car’s Bluetooth (to conserve phone battery and data). The data available includes GPS position, speed, accuracy, time and whether I’m starting, ending or in transit.

As an example, consider this map of a short trip I made from Wolfram HQ up to a busier area of Champaign, Illinois (blue circles are simply for location positions, and red dots indicate accuracy):

GPSPlot
&#10005

GPSPlot[Entity["Trip", "2019-03-22:2"]["GPSTimeSeries"], {
 ImageSize -> 800, GeoCenter -> GeoPosition[{40.10614, -88.254242}],
  GeoRange -> Quantity[0.75, "Miles"]}]

As you can see in this plot, the red accuracy indicators are much wider than the lanes of the roads, which means this data is probably not good enough for lane-level accuracy (e.g. detecting the right vs. the left lane). And to know which direction I was facing, I have to use context compared to the previously recorded point.

The plot includes tooltips that give all the details on the position, speed, time and accuracy:

Tooltips

Trip Date/Time Distributions

As of March 2020, I’d been collecting GPS data for about a year’s worth of trips, and I’ve accumulated over 70K points in my Databin. Here’s a quick Manipulate to see a DateHistogram of these trips at various timescales (ignoring several gaps in data recording due to technical difficulties):

Manipulate
&#10005

Manipulate[DateHistogram[{
DateObject[{2018, 7, 18, 18, 52, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 7, 4, 16, 28, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 6, 2, 10, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 31, 12, 22, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 31, 13, 18, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 30, 12, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 30, 18, 34, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 30, 19, 48, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 30, 20, 28, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 29, 16, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 29, 19, 6, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 27, 12, 48, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 27, 15, 34, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 27, 18, 55, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 27, 19, 17, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 27, 19, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 27, 19, 29, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 26, 12, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 26, 13, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 26, 13, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 26, 13, 14, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 26, 16, 48, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 26, 16, 54, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 22, 14, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 22, 16, 27, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 22, 18, 26, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 21, 12, 15, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 21, 12, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 21, 12, 42, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 21, 14, 53, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 21, 15, 30, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 21, 17, 40, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 21, 21, 31, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 20, 19, 9, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 20, 19, 30, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 20, 20, 34, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 19, 18, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 19, 19, 34, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 19, 19, 43, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 19, 19, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 19, 20, 48, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 18, 19, 37, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 18, 20, 28, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 18, 21, 8, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 18, 21, 23, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 16, 8, 57, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 16, 9, 10, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 16, 9, 56, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 16, 13, 4, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 16, 14, 30, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 16, 17, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 16, 20, 12, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 16, 20, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 15, 15, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 15, 18, 2, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 15, 19, 29, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 15, 20, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 14, 10, 12, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 14, 17, 29, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 14, 17, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 13, 10, 32, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 13, 20, 27, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 12, 10, 41, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 12, 19, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 11, 10, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 11, 19, 17, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 11, 19, 28, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 11, 19, 35, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 12, 9, 14, 22, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 9, 15, 41, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 9, 16, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 9, 16, 54, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 9, 17, 13, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 8, 16, 6, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 8, 16, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 8, 17, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 6, 10, 57, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 6, 16, 37, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 5, 10, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 5, 19, 14, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 5, 19, 36, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 4, 19, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 3, 15, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 3, 20, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 2, 15, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 2, 16, 7, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 2, 16, 35, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 2, 17, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 1, 13, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 1, 15, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 1, 15, 49, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 1, 16, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 12, 1, 16, 29, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 30, 11, 40, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 30, 19, 13, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 29, 11, 6, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 28, 19, 24, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 28, 20, 9, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 28, 21, 26, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 28, 21, 41, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 27, 10, 59, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 27, 20, 48, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 26, 10, 20, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 26, 10, 43, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 26, 18, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 26, 19, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 25, 14, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 25, 17, 14, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 25, 17, 32, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 25, 18, 9, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 25, 18, 20, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 21, 12, 51, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 21, 13, 8, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 21, 13, 28, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 21, 16, 28, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 20, 11, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 20, 20, 26, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 20, 20, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 19, 15, 24, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 18, 15, 46, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 18, 17, 33, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 18, 18, 3, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 17, 14, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 17, 15, 4, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 16, 10, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 16, 19, 58, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 15, 11, 0, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 15, 19, 48, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 15, 21, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 14, 10, 29, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 14, 19, 34, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 13, 11, 9, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 13, 21, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 12, 20, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 11, 15, 34, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 11, 15, 57, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 11, 16, 14, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 11, 16, 54, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 10, 14, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 10, 16, 47, 30.}, "Instant", "Gregorian", -5.], 

DateObject[{2018, 11, 9, 11, 17, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 9, 18, 53, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 9, 20, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 9, 21, 34, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 8, 11, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 8, 20, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 7, 11, 22, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 7, 20, 54, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 6, 11, 35, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 6, 20, 34, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 6, 20, 54, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 5, 15, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 5, 19, 56, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 2, 10, 4, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 2, 18, 36, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 2, 20, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 2, 20, 34, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 2, 21, 4, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 2, 21, 7, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 1, 10, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2018, 11, 1, 18, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 28, 10, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 28, 20, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 27, 11, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 27, 19, 0, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 27, 19, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 27, 21, 17, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 27, 21, 37, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 26, 11, 15, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 26, 19, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 25, 10, 47, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 25, 20, 17, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 24, 19, 28, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 24, 19, 48, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 23, 13, 34, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 23, 16, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 23, 16, 30, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 23, 17, 31, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 22, 10, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 22, 19, 30, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 21, 16, 41, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 21, 19, 9, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 21, 19, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 20, 10, 46, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 20, 20, 14, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 19, 11, 35, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 19, 20, 37, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 18, 11, 1, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 18, 19, 6, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 18, 19, 18, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 18, 19, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 18, 19, 36, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 17, 15, 52, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 17, 16, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 17, 16, 36, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 17, 17, 14, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 16, 14, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 16, 16, 7, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 15, 11, 12, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 15, 19, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 14, 10, 57, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 14, 19, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 13, 11, 6, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 13, 20, 10, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 12, 11, 16, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 12, 20, 22, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 12, 20, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 11, 11, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 11, 19, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 10, 16, 54, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 10, 17, 4, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 10, 17, 18, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 10, 17, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 10, 18, 13, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 9, 19, 58, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 8, 10, 57, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 8, 18, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 7, 11, 11, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 7, 20, 20, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 6, 10, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 6, 19, 32, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 5, 11, 28, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 5, 19, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 4, 10, 46, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 4, 18, 41, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 3, 14, 56, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 3, 15, 25, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 3, 15, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 3, 16, 30, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 2, 13, 1, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 2, 15, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 2, 20, 57, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 1, 10, 44, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 2, 1, 19, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 28, 10, 54, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 28, 11, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 28, 11, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 28, 19, 3, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 27, 15, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 27, 16, 15, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 27, 16, 32, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 27, 17, 17, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 26, 10, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 26, 14, 49, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 26, 15, 22, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 26, 16, 40, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 25, 15, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 25, 17, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 24, 11, 17, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 24, 20, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 23, 10, 50, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 23, 20, 19, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 22, 10, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 22, 18, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 21, 11, 20, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 21, 20, 3, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 19, 11, 13, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 19, 11, 42, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 19, 12, 43, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 19, 13, 41, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 18, 11, 1, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 18, 15, 1, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 18, 16, 7, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 18, 17, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 18, 20, 26, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 17, 10, 41, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 17, 19, 58, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 16, 11, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 16, 19, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 14, 11, 29, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 14, 20, 32, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 13, 20, 35, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 13, 21, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 11, 11, 2, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 11, 18, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 11, 19, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 10, 11, 6, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 10, 20, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 9, 10, 46, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 9, 19, 35, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 8, 12, 26, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 8, 19, 38, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 7, 10, 53, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 7, 18, 34, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 6, 18, 32, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 6, 20, 32, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 6, 21, 10, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 5, 15, 16, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 5, 16, 24, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 5, 16, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 5, 17, 27, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 5, 17, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 4, 10, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 4, 19, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 3, 10, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 3, 20, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 2, 14, 30, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 2, 14, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 2, 14, 56, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 2, 14, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 2, 15, 18, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 2, 15, 34, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 1, 8, 40, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 1, 10, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 1, 10, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 1, 10, 54, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 1, 10, 57, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 1, 1, 14, 59, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 31, 7, 34, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 31, 12, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 31, 13, 47, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 30, 6, 57, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 30, 17, 41, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 29, 7, 36, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 29, 16, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 28, 7, 34, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 28, 15, 44, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 27, 12, 10, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 27, 12, 54, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 26, 15, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 26, 15, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 26, 15, 55, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 26, 16, 0, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 26, 16, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 25, 9, 51, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 25, 10, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 25, 12, 28, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 25, 14, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 25, 16, 11, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 25, 18, 17, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 24, 7, 31, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 24, 11, 34, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 24, 13, 11, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 24, 16, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 22, 7, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 22, 16, 15, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 22, 16, 36, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 22, 16, 38, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 21, 17, 17, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 20, 7, 29, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 19, 10, 42, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 19, 10, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 19, 12, 46, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 19, 15, 53, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 19, 17, 14, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 19, 17, 42, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 19, 17, 56, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 19, 18, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 9, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 10, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 12, 11, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 12, 32, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 12, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 13, 8, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 13, 31, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 13, 37, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 13, 44, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 13, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 13, 57, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 20, 11, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 18, 20, 18, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 17, 7, 45, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 17, 16, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 17, 16, 53, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 17, 17, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 17, 17, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 17, 17, 13, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 17, 21, 13, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 16, 7, 25, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 16, 15, 39, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 15, 7, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 15, 16, 9, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 14, 6, 54, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 14, 15, 38, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 13, 7, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 13, 18, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 12, 16, 16, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 12, 18, 40, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 12, 19, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 11, 9, 28, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 11, 10, 27, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 11, 10, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 10, 7, 42, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 10, 16, 22, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 9, 6, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 9, 13, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 9, 14, 1, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 9, 16, 26, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 8, 7, 43, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 8, 12, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 8, 14, 11, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 8, 16, 20, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 7, 7, 38, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 7, 16, 18, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 6, 5, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 6, 6, 9, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 6, 7, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 6, 13, 54, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 6, 18, 9, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 5, 14, 2, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 5, 14, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 5, 15, 0, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 5, 15, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 4, 14, 54, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 4, 15, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 4, 18, 31, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 3, 7, 17, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 3, 16, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 2, 7, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 2, 15, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 2, 16, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 2, 16, 54, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 1, 8, 7, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 1, 16, 10, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 1, 18, 1, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 1, 18, 38, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 5, 1, 19, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 29, 12, 17, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 29, 13, 10, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 29, 14, 9, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 29, 14, 26, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 29, 18, 31, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 29, 18, 48, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 29, 19, 53, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 28, 9, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 28, 10, 6, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 28, 10, 54, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 28, 11, 26, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 28, 12, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 28, 12, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 28, 13, 13, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 28, 13, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 10, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 10, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 10, 57, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 11, 1, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 11, 24, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 11, 38, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 14, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 15, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 18, 4, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 19, 21, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 27, 20, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 26, 8, 29, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 26, 8, 41, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 26, 8, 57, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 26, 11, 47, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 26, 15, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 26, 16, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 26, 16, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 26, 16, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 26, 17, 25, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 25, 15, 33, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 25, 18, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 25, 19, 25, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 24, 10, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 24, 11, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 24, 13, 4, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 24, 17, 53, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 25, 4, 1, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 24, 21, 55, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 23, 18, 42, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 23, 18, 59, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 23, 21, 49, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 21, 9, 1, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 21, 10, 54, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 21, 12, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 21, 15, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 20, 13, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 20, 15, 7, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 20, 17, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 20, 19, 28, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 20, 22, 38, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 19, 10, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 19, 12, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 18, 12, 53, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 18, 14, 36, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 17, 10, 26, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 17, 11, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 17, 17, 7, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 17, 21, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 17, 21, 18, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 16, 14, 41, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 16, 16, 8, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 16, 16, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 16, 16, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 16, 17, 7, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 16, 17, 14, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 16, 18, 2, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 16, 20, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 14, 14, 27, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 14, 16, 31, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 14, 17, 50, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 14, 18, 2, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 14, 18, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 12, 10, 17, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 12, 18, 41, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 11, 10, 31, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 11, 18, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 10, 10, 34, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 10, 18, 42, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 9, 10, 1, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 9, 18, 56, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 8, 10, 22, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 8, 18, 28, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 7, 15, 38, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 7, 16, 20, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 7, 16, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 7, 17, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 7, 17, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 6, 16, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 6, 17, 0, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 6, 17, 3, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 6, 17, 27, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 5, 10, 28, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 5, 17, 48, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 4, 9, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 4, 18, 42, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 3, 12, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 3, 13, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 3, 14, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 1, 10, 20, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 4, 1, 18, 7, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 9, 26, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 10, 55, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 12, 26, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 13, 4, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 14, 9, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 14, 48, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 15, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 16, 15, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 17, 1, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 18, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 26, 20, 26, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 25, 18, 51, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 25, 19, 6, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 25, 19, 16, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 25, 19, 20, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 25, 19, 34, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 25, 19, 57, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 22, 13, 35, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 22, 13, 48, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 22, 14, 44, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 21, 16, 42, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 21, 16, 50, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 21, 16, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 20, 15, 47, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 20, 15, 58, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 19, 12, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 19, 14, 13, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 19, 14, 27, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 19, 14, 41, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 19, 14, 48, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 19, 14, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 19, 18, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 18, 12, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 18, 12, 36, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 17, 17, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 17, 17, 29, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 17, 17, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 15, 9, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 15, 11, 2, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 15, 12, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 15, 15, 14, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 15, 15, 32, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 15, 18, 13, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 15, 19, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 15, 19, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 14, 10, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 14, 10, 31, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 14, 11, 8, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 14, 12, 27, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 14, 15, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 14, 17, 56, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 14, 21, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 14, 21, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 13, 16, 38, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 13, 18, 15, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 13, 20, 7, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 13, 20, 40, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 13, 20, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 13, 20, 49, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 11, 12, 59, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 11, 13, 15, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 8, 9, 16, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 8, 12, 16, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 8, 12, 55, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 8, 13, 42, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 7, 13, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 7, 13, 37, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 5, 12, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 5, 14, 22, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 5, 14, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 5, 14, 52, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 5, 15, 27, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 5, 16, 16, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 5, 16, 46, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 2, 12, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 2, 13, 1, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 2, 13, 57, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 1, 12, 10, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 1, 13, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 1, 13, 36, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 1, 15, 58, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 1, 18, 43, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 1, 19, 59, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 9, 1, 20, 8, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 31, 11, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 31, 12, 15, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 31, 13, 41, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 31, 17, 56, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 31, 18, 9, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 28, 17, 17, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 28, 18, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 28, 18, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 26, 13, 54, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 26, 14, 34, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 25, 8, 10, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 25, 8, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 25, 9, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 25, 11, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 25, 11, 33, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 25, 11, 38, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 25, 11, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 25, 13, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 25, 13, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 24, 11, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 24, 12, 6, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 24, 12, 33, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 24, 12, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 19, 12, 56, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 19, 13, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 18, 12, 21, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 18, 12, 30, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 18, 14, 38, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 18, 17, 4, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 18, 18, 37, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 18, 20, 29, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 17, 9, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 17, 14, 35, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 17, 18, 41, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 16, 17, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 16, 19, 31, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 16, 21, 13, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 16, 21, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 16, 21, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 16, 21, 50, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 15, 13, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 15, 13, 22, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 15, 14, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 11, 8, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 11, 10, 8, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 11, 13, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 11, 14, 0, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 11, 14, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 10, 7, 22, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 10, 7, 31, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 10, 7, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 10, 13, 6, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 10, 13, 52, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 10, 15, 33, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 10, 19, 21, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 10, 19, 32, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 8, 7, 47, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 8, 8, 9, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 7, 15, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 7, 16, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 7, 17, 45, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 5, 6, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 5, 10, 28, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 5, 10, 42, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 4, 14, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 4, 14, 53, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 4, 15, 20, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 4, 16, 15, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 4, 16, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 3, 9, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 3, 10, 17, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 3, 10, 33, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 3, 14, 48, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 3, 16, 18, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 2, 6, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 2, 18, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 1, 6, 13, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 8, 1, 17, 15, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 31, 6, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 31, 15, 11, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 31, 18, 9, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 31, 18, 24, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 31, 18, 37, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 30, 15, 51, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 29, 7, 3, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 29, 8, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 29, 10, 31, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 29, 10, 36, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 29, 10, 49, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 28, 13, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 28, 13, 44, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 28, 15, 3, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 27, 8, 54, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 27, 10, 8, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 27, 10, 58, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 27, 11, 21, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 27, 11, 41, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 26, 5, 58, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 25, 6, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 25, 18, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 24, 6, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 24, 16, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 23, 15, 19, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 22, 16, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 21, 16, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 21, 17, 24, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 21, 17, 41, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 21, 17, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 21, 18, 7, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 21, 18, 20, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 21, 18, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 20, 7, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 20, 9, 22, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 20, 18, 12, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 19, 18, 46, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 18, 6, 11, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 18, 12, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 18, 13, 40, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 18, 15, 44, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 18, 16, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 17, 6, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 17, 16, 37, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 17, 17, 1, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 16, 7, 14, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 16, 9, 21, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 16, 13, 41, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 16, 14, 42, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 16, 15, 26, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 16, 15, 38, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 15, 18, 36, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 15, 19, 52, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 14, 8, 24, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 14, 15, 45, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 15, 2, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 9, 44, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 11, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 11, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 11, 25, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 12, 31, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 13, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 14, 8, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 14, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 20, 3, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 13, 20, 21, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 12, 18, 48, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 11, 7, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 11, 16, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 10, 6, 7, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 10, 16, 42, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 9, 7, 26, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 9, 20, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 8, 7, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 8, 16, 29, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 7, 9, 31, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 7, 11, 39, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 7, 11, 58, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 7, 12, 36, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 7, 12, 41, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 7, 12, 46, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 6, 9, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 6, 11, 15, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 6, 11, 47, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 6, 12, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 6, 15, 21, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 6, 15, 53, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 5, 7, 1, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 5, 13, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 5, 13, 42, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 5, 18, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 4, 6, 45, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 4, 6, 53, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 4, 8, 59, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 4, 11, 21, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 4, 12, 29, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 4, 14, 38, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 4, 16, 53, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 4, 17, 28, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 3, 6, 7, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 3, 16, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 3, 16, 41, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 2, 6, 56, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 2, 18, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 1, 6, 59, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 1, 13, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 1, 15, 31, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 1, 17, 14, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 1, 18, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 1, 19, 24, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 7, 1, 19, 28, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 30, 10, 57, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 30, 11, 43, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 30, 12, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 30, 12, 35, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 30, 13, 20, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 29, 10, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 29, 11, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 29, 18, 6, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 28, 7, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 28, 19, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 27, 7, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 27, 16, 31, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 26, 7, 22, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 26, 7, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 26, 13, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 25, 7, 43, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 25, 15, 57, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 24, 7, 47, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 24, 16, 4, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 23, 8, 32, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 23, 9, 2, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 23, 11, 33, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 23, 11, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 23, 12, 15, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 23, 13, 4, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 22, 8, 34, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 22, 8, 51, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 22, 15, 22, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 22, 16, 27, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 21, 7, 22, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 20, 13, 21, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 20, 17, 0, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 20, 17, 12, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 19, 7, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 19, 17, 1, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 18, 7, 35, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 18, 17, 19, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 17, 7, 49, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 17, 19, 12, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 16, 12, 2, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 16, 12, 57, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 6, 36, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 6, 46, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 7, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 9, 57, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 11, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 12, 26, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 13, 40, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 14, 33, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 17, 9, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 19, 1, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 15, 20, 58, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 14, 16, 46, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 14, 16, 52, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 14, 20, 29, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 13, 7, 57, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 13, 16, 16, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 12, 7, 55, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 12, 17, 15, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 11, 7, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 11, 16, 12, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 10, 8, 3, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 10, 16, 11, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 9, 9, 25, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 9, 11, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 9, 11, 44, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 9, 12, 45, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 8, 9, 55, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 8, 12, 23, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 8, 13, 5, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 8, 16, 17, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 8, 17, 8, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 8, 17, 40, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 7, 7, 38, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 7, 16, 12, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 7, 18, 55, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 7, 19, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 7, 19, 59, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 6, 7, 27, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 6, 12, 2, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 6, 13, 36, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 6, 17, 7, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 5, 7, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 5, 16, 28, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 4, 7, 25, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 3, 7, 7, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 3, 15, 50, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 2, 15, 31, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 2, 16, 23, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 2, 17, 5, 0.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 1, 16, 39, 30.}, "Instant", "Gregorian", -5.],
DateObject[{2019, 6, 1, 16, 48, 30.}, "Instant", "Gregorian", -5.]}, {
  PlotTheme -> "Detailed", PlotRange -> All,
   DateReduction -> reduction, ImageSize -> 450, LabelStyle -> 24}],
 {reduction, {None, "Year", "Week", "Day"}}, Sequence[
 LabelStyle -> 24, SaveDefinitions -> True]]

One noticeable trend is my tendency to drive more on weekends.

Single-City Speed Analysis

Let’s look at a GeoHistogram of all of the points recorded in Champaign (somewhat anonymized, of course!). The colors correlate to how many points there are in each bin:

champaignGeoPositionsTravel = Import
&#10005

champaignGeoPositionsTravel = Import["https://wolfr.am/R9FmQ8N1"]

GeoHistogram
&#10005

GeoHistogram[champaignGeoPositionsTravel, {"Rectangle",
  Quantity[0.125, "Miles"]}, Sequence[PlotStyle -> {
Opacity[0.5],
EdgeForm[{
Thickness[Large],
GrayLevel[0.5]}]}, ImageSize -> 440, ColorFunction -> (Blend[{
RGBColor[1., 0.8, 0.5, 0.6],
RGBColor[1., 0.48322448979591837`, 0.10204081632653061`,
      0.6612857142857144],
RGBColor[0.3, 0.37, 1., 0.8]}, #]& ), PlotLegends -> Automatic]]

As you can see, I spend a lot of time at specific places. We can look at only speeds under 15 miles per hour to see how much time I spend sitting still on these trips (intersections, construction, etc.). Notice the high concentrations in certain areas that I commonly visit, like my commute to work:

champaignGeoPositionsUnder15 = Import
&#10005

champaignGeoPositionsUnder15 = Import["https://wolfr.am/R9GCouE7"]

GeoHistogram
&#10005

GeoHistogram[champaignGeoPositionsUnder15, {"Rectangle",
  Quantity[0.125, "Miles"]}, Sequence[PlotStyle -> {
Opacity[0.5],
EdgeForm[{
Thickness[Large],
GrayLevel[0.5]}]}, ImageSize -> 440, ColorFunction -> (Blend[{
RGBColor[1., 0.8, 0.5, 0.6],
RGBColor[1., 0.48322448979591837`, 0.10204081632653061`,
      0.6612857142857144],
RGBColor[0.3, 0.37, 1., 0.8]}, #]& ), PlotLegends -> Automatic]]

Parking Location Analysis

Zooming in a bit more, I thought it would be fun to find where I’ve parked in the Wolfram Research parking lot here in Champaign. Each dot represents a GPS reading from my parked car:

parkingSpotsWRI = GeoPosition
&#10005

parkingSpotsWRI = GeoPosition[CompressedData["
1:eJydlGlQk1cUhlkrBGxoU3AoiywFbLGgo8hkRErAyADVpggiUGBAUFG2CGGJ
cWEZkRaRzVrZWihSLcuwhNWCQSmooVGLEMKmkILUXTOCBNDe9/vFv3b6I5N5
5pzznveec79rHhbrHaGmoqKSSH7473EMFvN0t7vQlPvn7tH3iBKdX3WCM+/M
aw8RHnv+OgD8Yqjs7TDh04Y8rSTCInOfyzLCitsHihMJRwlShSOEBU1H7oHN
lvgJiNdnN1ryCQubDdVGCe/bFsBKJuymEvdE9h/4J8OeVdAb5tu2gnP2G8WA
S9Q7psFx0ipd+JEb8xLGCD+8b7cIv4wu75fwo7navRz5Uvvh1ehf8/rsbcSX
/adapYQzeRc4qK9bPNYMvQ+uqLCRHyot7sR5i8p0joNLvbi+iIe75QvBGz1t
DaH3Li9nDep9TI5sQv/OR60RiDtGXg1A/3PtCzsSCDdFh+Ujf/f35jno3zb3
Veo44SmL+QTw2IzUDDwpKmpHvb/Wb+PQa/jBggb9cobrKsQLHEX94P05xXeg
f2vdg1noO9XmMZA/xdG+AL26C+ZKxBNPcjug94n1pUn0N229LI4nnJX8eAk8
uP5UKOKXaEvnkS81/XoJ8aBFNf4k4S0LSX1gRa9H6AThrdasGOi7sOIfDhDm
Foeko3+cwlwd9ydCldGGuNgieBb6Bc+1grBPLV6eKzW/xZHt8J9bZJQ8suL+
bKM/k4B/8V4uhN6E7lNv5LdlVdogXvH4wB7o8Qon8lFfwmZOIb/l2GZWCuFd
ebO00f/B4dzKYegnC7k90ONde9ECfdWbnwWCg08F2FH7dPaIg5/vdm0tFxAm
5YG4H7vThM3wu4W75r27hHUfBc6A71yMMfmTsMO+uwmof8RifQq9h6tZaxNX
nF9fr7IEfipELw+DFzzNrBDPY6Sy0U9feMIHce7jm37Yf+mHegVxhJXZvoXY
92GBmIV5237DdqD2e2PQ8iBh2VjmEfg7XK8vw/4uHpwOfkB4SKOmHv5yvcO1
qHyGhAFmupuY4Htw37CW+t670+vDUa837y7B/jTbBzvvw79sLhPz0V2cmkd9
ncxKk0s48u7LzEHCZuNdy7GE7U2Zn+N+ZP81qaDOZ2xAvQ//xjrrR6fQP08S
QafegybLQfRzMrsajfO+9RFnRxPm3JCMwt+Xbm7NiPuLNGIwHwFXIaXuH/OA
Ev4C4rcM4PyByxaN0CvumnXCeX91/3gM71uXRlAD8l/5On0BNhUbVCJOt9lQ
Cm5rbfHCPvjPFBLMx9hIrIl5SH+MtIMfvspMM/y4Kh1TRlf4baxh+8LPXp2K
StRnpGzmU/f7JL2dui+mUQ3Ib+yPKkf/3hPiWup7LrssQNx5oIqN83XuGKtF
fbdeOg3MlRsocJ5pOxPKzx+qaUy8r/HF+nM439O0bgf0//aZMBf61QWbPgKL
D+nvBV/3Ev8MvY4OrTfoJ1oKuYr99fcW+ktWvPduywONiM+m05rAJRv7tcHy
sjdH0T/FXTAOPydap29g3/oVs9aYl1xp3IP4NYMrx6j5DnmeQT1nQcBE/uYk
553w46X8vQVxj4wd9eh/xqQsFvcnPoITjfvdUrHOFu/P1hKaGup3Damz4L8j
sYmD7+9s9RMDzN+WnlSE+sEnqXtwvzNK5t+BjdhHQzGfvki5PAbvr1W1BfI3
Pu8PQf35pwsc+Dlnf30EfssNJlwQp906bgN/KVVOIYgHjt5Shd77Q5UnMd+d
sr9XwU9EgZ8rvm953Iwf6sNE+dXIz2J692F/qocOyTCvfwBjjkNR
"]];

GeoGraphics
&#10005

GeoGraphics[{Green, PointSize[Medium],
  Point[GeoPosition[#]] & /@ parkingSpotsWRI["Data"]}, Sequence[
 GeoBackground -> "Satellite", GeoServer -> "DigitalGlobe",
  GeoRange -> {{40.0967517413238,
   40.09788975862402}, {-88.24826818376664, -88.24683841623335}},
  ImageSize -> 500]]

Now I’ve changed the grid size so we can see where I’ve parked and how often I choose to park there. Note that the geolocation data is probably skewed a bit because I’m fairly certain I’ve not parked in other lots, in the grass or across multiple spaces. That said, it’s clear that I’m pretty much a creature of habit when it comes to parking—there is a fairly narrow area in which I park:

GeoHistogram
&#10005

GeoHistogram[parkingSpotsWRI["Data"],
 {"Rectangle", {Quantity[10, "Feet"],
   Quantity[25, "Feet"]}}, Sequence[PlotStyle -> EdgeForm[{
Thickness[Large],
GrayLevel[0.5]}], ColorFunction -> (Blend[{
RGBColor[1., 0.8, 0.5, 0.6],
RGBColor[1., 0.65075, 0.3125, 0.628875],
RGBColor[1., 0.5015000000000001, 0.125, 0.6577500000000001],
RGBColor[0.975, 0.39195, 0., 0.684],
RGBColor[0.9, 0.3618, 0., 0.7050000000000001],
RGBColor[0.8250000000000001, 0.33165, 0., 0.726],
RGBColor[0.48750000000000004`, 0.35185, 0.625, 0.774875],
RGBColor[0.3, 0.37, 1., 0.8]}, #]& ), GeoBackground -> "Satellite",
  GeoServer -> "DigitalGlobe", GeoZoomLevel -> 19,
  GeoRange -> {{40.0966917413238,
   40.09778975862402}, {-88.24826818376664, -88.24683841623335}},
  ImageSize -> 500]]

Future Directions

Everything in this post was originally done before the pandemic; unsurprisingly, I’ve spent a lot less time in the car this year. So while I haven’t been collecting much driving data, I’ve thought a lot about how to take this further.

For instance, I’d like to be able to detect who is driving (having another driver download the automation app and adding a new Databin field for user identification). With a little more hardware, I could hook up a Wi-Fi chip for immediate data upload to the Wolfram Cloud, albeit with a smaller set of essential data. Another idea would be to livestream CAN data onto a screen to review and analyze in real time. Lastly, I think it would be interesting to investigate the different routes I take to get to and from places, possibly even computing the paths between GPS positions with odometry or dead reckoning. If you’ve explored anything like this or have more ideas on how to expand on the concept, let me know in the comments!

Visit Wolfram Community to embark on your own computational adventures!

Leave a Comment

No Comments




Leave a comment