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:
Engage with the code in this post by downloading the Wolfram Notebook
✕
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):
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:
- Microcontroller: Arduino UNO Rev3
- CAN interface: Seeed CAN-BUS Shield V1.2
- RTC and storage: Adafruit data logger shield
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["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 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["https://wolfr.am/CANGUI-zip"];ExtractArchive[zip]; |
Then browse to the extracted directory:
✕
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[ { "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["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[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[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[data, #[[2]] &, toMessageTimeSeries]; |
✕
idToByteTimeSeries[[;; 2, ;; 2]] |
And here’s a visualization of the engine coolant temperature data (ID: 0x360, Byte #4), using DateListPlot:
✕
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["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:
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[ 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:
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:
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["CANGUI/TripEntityStore.wl"];store = CreateTripEntityStore["DataFiles", "PlotChoices", Databin["Fbuwpsdi"]] |
Then I register the EntityStore:
✕
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["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["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[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["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[td_TemporalData] := Total[td] Quantity[MinimumTimeIncrement[td], "Seconds"] |
✕
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[ 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[ 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[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[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[QuantityMagnitude[Normal@fuelUsedData, "Gallons"], x, x] |
Here is the same plot shown previously, but with that (solid blue) trend line included:
✕
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["Trip", EntityProperty["Trip", "FuelEconomyTimeSeries", {"AggregationFunction" -> Median}], "EntityAssociation"] // Normal; |
Then I group the data by month and sort it appropriately:
✕
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[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:
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[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:
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[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["https://wolfr.am/R9FmQ8N1"] |
✕
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["https://wolfr.am/R9GCouE7"] |
✕
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[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[{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[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! |
Comments