From 709fd15e8cc93dfd0efe4ec92d606e8d750ca47f Mon Sep 17 00:00:00 2001 From: Peter Norvig Date: Fri, 20 Oct 2017 16:25:14 -0700 Subject: [PATCH] Add files via upload --- Bike Speed versus Grade.ipynb | 139 ++++++++++++++++++++++++---------- 1 file changed, 101 insertions(+), 38 deletions(-) diff --git a/Bike Speed versus Grade.ipynb b/Bike Speed versus Grade.ipynb index 17150e5..c3388d5 100644 --- a/Bike Speed versus Grade.ipynb +++ b/Bike Speed versus Grade.ipynb @@ -8,7 +8,12 @@ "\n", "Like most people, I bike slower when I'm going up a steep hill than on a flat road. But how much slower?\n", "To answer that, I downloaded data on my past rides \n", - "from [Strava](https://www.strava.com/athletes/575579) and manipulated the `data` to create two lists, `X` holding the number of feet of climbing per mile for each ride, and `Y` holding the speed in miles per hour for each corresponding ride. (Notice that I only keep rides longer than 30 miles, so these should all be at a similar level of seriousness.)" + "from [Strava](https://www.strava.com/athletes/575579) and manipulated the `data` to create two lists:\n", + "\n", + "- `X`: the *grade* of each ride, in feet of ascent per mile. \n", + "- `Y`: the *speed* of each (corresponding) ride, in miles per hour.\n", + "\n", + "I omit rides shorter than 30 miles, because on some short rides I was sprinting at an unsustainable speed, and on others I was slowed by city traffic. Here is the code to collect and plot the X:Y data:" ] }, { @@ -17,8 +22,20 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\nnYXmz9P4RA0f1M7g/i9ehhfWXp1YQud2gRRHIZK6KWE89aNjrcNv19dRRt5OcvbqgS/1CGb213vI\nB8qlqb/7dYV4vU9z/M0Jz+noeX3jdcbk0u6Wen4nBWdtdlO3j18XUDfdsJTFCaibTnKUL4Uov5gu\n+70mDGtndKqUYCrPOBOpfmu4tHvZ7K5PJ3ljS7vr6ZjKPFddMhg4QWzaeBvorjXWszgBddNJjvKl\nEEnd1M1i4vzimBJYUKtaUuvVOO9jWk0xbsJrJz7TSSGo/z3oaqCbJhyzOAF100mO8qUQST3qzT/O\nL04n1/1u3pu11CNTe7MCnU14XieF1Vv3Gl9vWo2y+T2B7lhjPYsTUDed5ChfCpHUKzEX8AKmJzAn\n0TqLb6WVdLz2Zu3tkalleHtFsHJp8qtXtsOvk6i5s8ckjRU505DFCaibTnKUL7neJCMppk0x7r1p\nMYBwvzh+75H0L1qYzSvydjdnlj8foqKxZpOMpASNesIknSyXVg0zGZa3ZV3DjCyj9l2zT5soukIk\ndaD9S/ssuxHC7M2a1rHb4fczjnpzUTfdjMSTD+VJIfrUk5DlGuFBPeppHjstUfuuu6VPO883CTn3\nDSxY+9TUCqRkPyb1kNq9aSeK5rtDZza6X7I4dlr8lg7wSjrd0qed15NPnk82lK7ClF/alXU3QnMp\no5sv8Uf2VKdtoN3MnXSA+vduWk2yU1cnpp9/Xk8+3F6vuJjUXYISZydb7rql3c/Lph2HAhdDA6aP\ncH/xwemW5511ebLmV9/P6iahqCf1vJ5sKH25T+pZjVC7aWKu20RJJEfHJ7Bpx6FpN1o5zjunL9T/\ni6Q/M6ZR74YnDnguZZx0aSzOZ5N3pBZXrmvqWdYF81obtUGURDJnoGw8CYRZHjiNz4wpnndP1lo2\n6Z7ZX0q8Nz/OZzPLOSDKl1wn9SwTLS9X02NaubJ52WMn6YTtNPLq7kjjMxPlpNQf8moiijifzTBL\nMbM7xk65Lr/koTecl6vtM00yez3mvDZo3ZM4+8vG5bUOi4lznCRLQHE/m0neN0DdIzCpi8gDAK4H\ncFxVL208tgnADQBOAXgNwB+o6njSwWWZaLmAUrpMCcbvMb+kaBqRi3hv2Xd+uQQgXrL1iuf9D0+3\nlF6As+vK+yXMqDGk8dlkd4y9wozUHwTwbQDfcz32DIB1qnpaRP4CwDoAf5p0cFkmWi6glC9eLZ3L\n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\nBKoAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ + "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import csv\n", @@ -26,21 +43,24 @@ "def hours(sec): return float(sec) / 60 / 60\n", "def feet(meters): return float(meters) * 100 / 2.54 / 12\n", "def miles(meters): return feet(meters) / 5280\n", - "def getcsv(fname): return [r for r in csv.reader(open(fname)) if miles(r[0]) > 30]\n", "\n", - "# A file with three fields per line: distance (m), climb (m), elapsed time (sec)\n", - "data = getcsv('dist-climb-time.csv') \n", - "X = [feet(climb) / miles(dist) for (dist, climb, time) in data]\n", - "Y = [miles(dist) / hours(time) for (dist, climb, time) in data]" + "# Read data file with three fields: distance (m), climb (m), elapsed time (sec)\n", + "X, Y = [], []\n", + "for (dist, climb, time) in csv.reader(open('dist-climb-time.csv')):\n", + " if miles(dist) > 30:\n", + " X.append(feet(climb) / miles(dist))\n", + " Y.append(miles(dist) / hours(time))\n", + "\n", + "plt.plot(X, Y, 'o');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Now I'll plot `X` versus `Y`, along with a best-fit polynomial to the points.\n", - "(I use a polynomial of degree two because the raw data looks like a curve, not a straight line,\n", - "and because a cubic polynomial seems like too many degress of freedom for y noisy data.)" + "As expected, the speeds get slower as the grade gets steeper. The data has a lot of variance, and I can say that it \n", + "looks more like a curve than a straight line, so I'll fit a cubic (degree two) polynomial to the data,\n", + "and make the plot prettier:" ] }, { @@ -52,45 +72,34 @@ "outputs": [ { "data": { - "image/png": "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\nGaIAAAAASUVORK5CYII=\n", + "image/png": "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\nweHDh/HQQw9JBq9EREREZF2Gznmtr6+H3W4POma32+H1enXqERERERHpydAzr5deeikefvhh9OnT\nBwMHDsTevXvx6KOPYurUqXp3jYiIiIh0YOjg9cEHH8R9992HP/3pTzh27BhycnIwY8YM1nglIiIi\naqcMHbxmZGRg6dKlWLp0qd5dISIiIiIDMHTOKxERERFRIAavRERERGQaDF6JiIiIyDQYvBIRERGR\naTB4JSIiIiLTYPBKRERERKbB4JWIiIiITIPBKxERERGZBoNXIiIiIjINQ++wFQu32y163OPxJPR8\nsdKin2ZpE+B4qo3jqS6Op7o4nurieKqL46muaOPpcDhkt2W54DXSxSsZGDXOxzbZJttkm2yTbbJN\ntsk21W2TaQNEREREZBoMXomIiIjINBi8EhEREZFpMHglIiIiItNg8EpEREREpsHglYiIiIhMg8Er\nEREREZkGg1ciIiIiMg0Gr0RERERkGgxeiYiIiMg0GLwSERERkWkweCUiIiIi02DwSkREREQAgA2H\n3Bi8vhJZT1dg8PpKFJe59O5SmCS9O0BERERE+isuc2HeThcaWlofH3a1YG5JLQCgMN+pY8+CceaV\niIiIiLB418m2wNWvocWHxbtO6tMhCZabeXW73aLHPR5PQs8XKy36aZY2AY6n2jie6uJ4qovjqS6O\np7ra43iWu1okj8c7HtHe73A4ZLdlueA10sUrGRg1zsc22SbbZJtsk22yTbZpljZ7Oe04LBLA9nLa\n4z6Pmv1k2gARERERYWFBBtLswcfS7AIWFmTo0yEJDF6JiIiICIX5Tiwb5kSe0w4BQJ7TjhUjOxlq\nsRZgwbQBIiIiIorNpL4OTB+YqXc3IuLMKxERERGZBoNXIiIiIjINBq9EREREZBoMXomIiIjINBi8\nEhEREZFpMHglIiIiItNg8EpEREREpsHglYiIiIhMg8ErEREREZkGg1ciIiIiMg2hpqbGp3cniIiI\niIjk4MwrEREREZkGg1ciIiIiMg0Gr0RERERkGgxeiYiIiMg0GLwSERERkWkweCUiIiIi02DwGoPV\nq1djyJAhyMnJwZgxY/Dhhx/q3SVTWL58OS6++GLk5eUhPz8f1157Lb744oug1/h8PhQVFWHgwIHo\n3r07fvWrX+HLL7/Uqcfmsnz5cmRmZuLOO+9sO8bxVKayshK33HIL8vPzkZOTg+HDh2Pbtm1tz3M8\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 0 ft/mile: 13.8 mph\n", - " 20 ft/mile: 13.8 mph\n", - " 40 ft/mile: 13.5 mph\n", - " 60 ft/mile: 13.0 mph\n", - " 80 ft/mile: 12.1 mph\n", - "100 ft/mile: 11.0 mph\n", - "120 ft/mile: 9.6 mph\n", - "140 ft/mile: 7.8 mph\n" - ] } ], "source": [ "def poly(X, Y, n):\n", - " \"Return best degree-n polynomial to fit X, Y data.\"\n", + " \"Best-fit degree-n polynomial for X, Y data.\"\n", " C = np.polyfit(X, Y, n)[::-1] # Array of coefficients, reversed\n", " return lambda x: sum(C[i] * x ** i for i in range(n + 1)) \n", "\n", - "def show(X, Y, grades=range(0, 141, 20), degree=2): \n", - " plt.plot(X, Y, '+')\n", - " F = poly(X, Y, degree)\n", - " plt.plot(grades, [F(x) for x in grades], '-')\n", - " plt.ylabel('speed in miles per hour')\n", - " plt.xlabel('grade in feet per mile')\n", - " plt.grid()\n", - " plt.show()\n", - " for g in grades:\n", - " print('{:3} ft/mile: {:4.1f} mph'.format(g, F(g)))\n", + "F = poly(X, Y, 2) # defines y = F(x); x in ft/mile, y in mph\n", + "\n", + "def show(X, Y, F=F): \n", + " plt.rcParams[\"figure.figsize\"] = (10, 6)\n", + " plt.style.use('fivethirtyeight')\n", + " plt.plot(X, Y, 'o')\n", + " X1 = list(range(int(max(X))))\n", + " plt.plot(X1, [F(x) for x in X1], 'o')\n", + " plt.ylabel('Speed (mph)')\n", + " plt.xlabel('Grade (feet/mile)')\n", + " plt.minorticks_on()\n", + " plt.grid(True, which='major')\n", + " plt.grid(True, which='minor', alpha=0.2)\n", " \n", "show(X, Y) " ] @@ -99,7 +108,61 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "So, it looks like I go about 14 mph when the road is fairly flat, with a lot of variability from 12 to 16 mph, depending more on my level of effort than on the grade of the road. But from 60 ft/mile and up, speed falls off quickly at 1 mph for every 20 ft/mile, and by 140 ft/mile, I'm down to 7.8 mph. Note that 140 ft/mile is only 2.7% grade, but if you figure a typical route is 1/3 up, 1/3 down, and 1/3 flatish, then that's 8% grade on the up part." + "So, I average about 14 mph when the road is fairly flat, with a lot of variability from 12 to 16 mph, depending more on my level of effort than on the grade of the road. But from 60 ft/mile and up, speed falls off quickly at 1 mph for every 20 ft/mile, and by 140 ft/mile, I'm down around 8 mph. Note that 140 ft/mile is only 2.7% grade, but if you figure a typical route is 1/3 up, 1/3 down, and 1/3 flatish, then that's 8% grade on the up part.\n", + "\n", + "I can use the polynomial `F` to estimate the duration of a route:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def duration(dist, climb, F=F):\n", + " \"Given a distance in miles and total climb in feet, return estimated time in minutes.\"\n", + " return dist / F(climb / dist) * 60" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For example, to get to Pescadero, I can take the flatter coast route, or follow the creek, saving 4 miles of distance, but adding 300 ft of climbing:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(157.39103492491944, 149.35787723449531, 8.0331576904241331)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coast = duration(33.4, 2201)\n", + "creek = duration(29.4, 2520)\n", + "\n", + "coast, creek, coast - creek" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The coast route takes about 8 minutes longer. Good to know, but other factors are probably more important in making the choice." ] } ],