A lot of work getting baseball tracking working. Added long form for P in KF.

This commit is contained in:
Roger Labbe committed 2014-06-05 09:21:15 -07:00
1 parent e1ce21b25c
commit ee826dbce5
6 files changed
+1185 -130

No files matched your search

+698 -116
View File
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:63ae152874a0161848cb3170c24f73b9279fc0e24f7cb997ec958a1870ce9c18"
"signature": "sha256:1c5a1fcb5976bac18380450eaff48d09de6b44c73f5da10c88503a02faed3a7d"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -27,100 +27,229 @@
"import book_format\n",
"book_format.load_style()\n",
"\n",
"%install_ext https://raw.github.com/dpsanders/ipython_extensions/master/section_numbering/secnum.py\n",
"%load_ext secnum\n",
"%secnum"
"#%install_ext secnum.py\n",
"#%load_ext secnum\n",
"#%secnum"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Installed secnum.py. To use it, type:\n",
" %load_ext secnum\n"
]
},
{
"javascript": [
"console.log(\"Section numbering...\");\n",
"\n",
"function number_sections(threshold) {\n",
"\n",
" var h1_number = 0;\n",
" var h2_number = 0;\n",
"\n",
" if (threshold === undefined) {\n",
" threshold = 2; // does nothing so far\n",
" }\n",
"\n",
" var cells = IPython.notebook.get_cells();\n",
" \n",
" for (var i=0; i < cells.length; i++) {\n",
"\n",
" var cell = cells[i];\n",
" if (cell.cell_type !== 'heading') continue;\n",
" \n",
" var level = cell.level;\n",
" if (level > threshold) continue;\n",
" \n",
" if (level === 1) {\n",
" \n",
" h1_number ++;\n",
" var h1_element = cell.element.find('h1');\n",
" var h1_html = h1_element.html();\n",
" \n",
" console.log(\"h1_html: \" + h1_html);\n",
"\n",
" var patt = /^[0-9]+\\.\\s(.*)/; // section number at start of string\n",
" var title = h1_html.match(patt); // just the title\n",
"\n",
" if (title != null) { \n",
" h1_element.html(h1_number + \". \" + title[1]);\n",
" }\n",
" else {\n",
" h1_element.html(h1_number + \". \" + h1_html);\n",
" }\n",
" \n",
" h2_number = 0;\n",
" \n",
"html": [
"<style>\n",
" div.cell{\n",
" width: 850px;\n",
" margin-left: 0% !important;\n",
" margin-right: auto;\n",
" }\n",
" \n",
" if (level === 2) {\n",
" \n",
" h2_number ++;\n",
" \n",
" var h2_element = cell.element.find('h2');\n",
" var h2_html = h2_element.html();\n",
"\n",
" console.log(\"h2_html: \" + h2_html);\n",
"\n",
" \n",
" var patt = /^[0-9]+\\.[0-9]+\\.\\s/;\n",
" var result = h2_html.match(patt);\n",
"\n",
" if (result != null) {\n",
" h2_html = h2_html.replace(result, \"\");\n",
" }\n",
"\n",
" h2_element.html(h1_number + \".\" + h2_number + \". \" + h2_html);\n",
" \n",
" div.text_cell code {\n",
" background: #F6F6F9;\n",
" color: #0000FF;\n",
" }\n",
" h1 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
"\t}\n",
"\t\n",
" div.input_area {\n",
" background: #F6F6F9;\n",
" border: 1px solid #586e75;\n",
" }\n",
" \n",
" }\n",
" \n",
"}\n",
"\n",
"number_sections();\n",
"\n",
"// $([IPython.evnts]).on('create.Cell', number_sections);\n",
"\n",
"$([IPython.events]).on('selected_cell_type_changed.Notebook', number_sections);\n",
"\n"
" .text_cell_render h1 {\n",
" font-weight: 200;\n",
" font-size: 30pt;\n",
" line-height: 100%;\n",
" color:#c76c0c;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 1em;\n",
" display: block;\n",
" white-space: wrap;\n",
" } \n",
" h2 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" }\n",
" .text_cell_render h2 {\n",
" font-weight: 200;\n",
" font-size: 20pt;\n",
" font-style: italic;\n",
" line-height: 100%;\n",
" color:#c76c0c;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 1.5em;\n",
" display: block;\n",
" white-space: nowrap;\n",
" } \n",
" h3 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" }\n",
" .text_cell_render h3 {\n",
" font-weight: 300;\n",
" font-size: 18pt;\n",
" line-height: 100%;\n",
" color:#d77c0c;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 2em;\n",
" display: block;\n",
" white-space: nowrap;\n",
" }\n",
" h4 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" }\n",
" .text_cell_render h4 {\n",
" font-weight: 300;\n",
" font-size: 16pt;\n",
" color:#d77c0c;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 0.5em;\n",
" display: block;\n",
" white-space: nowrap;\n",
" }\n",
" h5 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" }\n",
" .text_cell_render h5 {\n",
" font-weight: 300;\n",
" font-style: normal;\n",
" color: #1d3b84;\n",
" font-size: 16pt;\n",
" margin-bottom: 0em;\n",
" margin-top: 1.5em;\n",
" display: block;\n",
" white-space: nowrap;\n",
" }\n",
" div.text_cell_render{\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" line-height: 135%;\n",
" font-size: 110%;\n",
" width:750px;\n",
" margin-left:auto;\n",
" margin-right:auto;\n",
" text-align:justify;\n",
" text-justify:inter-word;\n",
" }\n",
" div.output_subarea.output_text.output_pyout {\n",
" overflow-x: auto;\n",
" overflow-y: scroll;\n",
" max-height: 300px;\n",
" }\n",
" div.output_subarea.output_stream.output_stdout.output_text {\n",
" overflow-x: auto;\n",
" overflow-y: scroll;\n",
" max-height: 300px;\n",
" }\n",
" code{\n",
" font-size: 70%;\n",
" }\n",
" .rendered_html code{\n",
" background-color: transparent;\n",
" }\n",
" ul{\n",
" margin: 2em;\n",
" }\n",
" ul li{\n",
" padding-left: 0.5em; \n",
" margin-bottom: 0.5em; \n",
" margin-top: 0.5em; \n",
" }\n",
" ul li li{\n",
" padding-left: 0.2em; \n",
" margin-bottom: 0.2em; \n",
" margin-top: 0.2em; \n",
" }\n",
" ol{\n",
" margin: 2em;\n",
" }\n",
" ol li{\n",
" padding-left: 0.5em; \n",
" margin-bottom: 0.5em; \n",
" margin-top: 0.5em; \n",
" }\n",
" ul li{\n",
" padding-left: 0.5em; \n",
" margin-bottom: 0.5em; \n",
" margin-top: 0.2em; \n",
" }\n",
" a:link{\n",
" font-weight: bold;\n",
" color:#447adb;\n",
" }\n",
" a:visited{\n",
" font-weight: bold;\n",
" color: #1d3b84;\n",
" }\n",
" a:hover{\n",
" font-weight: bold;\n",
" color: #1d3b84;\n",
" }\n",
" a:focus{\n",
" font-weight: bold;\n",
" color:#447adb;\n",
" }\n",
" a:active{\n",
" font-weight: bold;\n",
" color:#447adb;\n",
" }\n",
" .rendered_html :link {\n",
" text-decoration: underline; \n",
" }\n",
" .rendered_html :hover {\n",
" text-decoration: none; \n",
" }\n",
" .rendered_html :visited {\n",
" text-decoration: none;\n",
" }\n",
" .rendered_html :focus {\n",
" text-decoration: none;\n",
" }\n",
" .rendered_html :active {\n",
" text-decoration: none;\n",
" }\n",
" .warning{\n",
" color: rgb( 240, 20, 20 )\n",
" } \n",
" hr {\n",
" color: #f3f3f3;\n",
" background-color: #f3f3f3;\n",
" height: 1px;\n",
" }\n",
" blockquote{\n",
" display:block;\n",
" background: #fcfcfc;\n",
" border-left: 5px solid #c76c0c;\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" width:680px;\n",
" padding: 10px 10px 10px 10px;\n",
" text-align:justify;\n",
" text-justify:inter-word;\n",
" }\n",
" blockquote p {\n",
" margin-bottom: 0;\n",
" line-height: 125%;\n",
" font-size: 100%;\n",
" }\n",
"</style>\n",
"<script>\n",
" MathJax.Hub.Config({\n",
" TeX: {\n",
" extensions: [\"AMSmath.js\"]\n",
" },\n",
" tex2jax: {\n",
" inlineMath: [ ['$','$'], [\"\\\\(\",\"\\\\)\"] ],\n",
" displayMath: [ ['$$','$$'], [\"\\\\[\",\"\\\\]\"] ]\n",
" },\n",
" displayAlign: 'center', // Change this to 'center' to center equations.\n",
" \"HTML-CSS\": {\n",
" styles: {'.MathJax_Display': {\"margin\": 4}}\n",
" }\n",
" });\n",
"</script>\n"
],
"metadata": {},
"output_type": "display_data"
"output_type": "pyout",
"prompt_number": 1,
"text": [
"<IPython.core.display.HTML at 0x364f710>"
]
}
],
"prompt_number": 1
@@ -211,9 +340,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2679a10>"
"<matplotlib.figure.Figure at 0x4191310>"
]
}
],
@@ -547,9 +676,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x26f8210>"
"<matplotlib.figure.Figure at 0x4191350>"
]
}
],
@@ -626,9 +755,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "iVBORw0KGgoAAAANSUhEUgAAAr8AAAFtCAYAAAAOBwJXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd0FGUXwOHfbE9HSggloSNVivQuhi5VERFBiiJSFEUR\nBTtdxYaUTwQRpQiKgCi9GYHQlC7SCZCEzmaTzdb5/ohEQiYhCUuEcJ9zPDg77d3sPXD3zZ37KocO\nHVIRQgghhBDiHqD7rwcghBBCCCFEbpHkVwghhBBC3DMk+RVCCCGEEPcMSX6FEEIIIcQ9Q5JfIYQQ\nQghxz5DkVwghhBBC3DMMt+OiZ86cwev13o5LCyGEEEIIkcrr9VKiRIksH39bkl+v10vNmjVvx6XF\nXWzZsmW0b9/+vx6GuMNIXAgtEhdCi8SF0LJr165sHS9lDyLXnDp16r8egrgDSVwILRIXQovEhfAF\nSX6FEEIIIcQ9Q5JfkWsiIyP/6yGIO5DEhdAicSG0SFwIX5DkV+Sa+++//78egrgDSVwILRIXQovE\nhfCF2/LAW2ZsNhtXr15FUZTcvrW4zfR6PaGhoRl+tlFRUTRq1CiXRyXudBIXQovEhdAicSF8IVeT\n34sXLwJQtGhRSX7zoKSkJM6dO0fhwoX/66EIIYQQQmjK1bIHh8NBgQIFJPHNo/z9/fF4PBnul2/r\nQovEhdAicSG0SFwIX5CaXyGEEEIIcc+Q5FfkmqioqP96COIOJHEhtEhcCC0SF8IXJPm9wYwZMyhX\nrhwRERFs2rQp9fVhw4bx4Ycfpjl2+PDhREREULBgQTZu3JjbQxVCCCGEENmkHDp0SPX1RWNiYjSX\nNz579ixFixb19e18xuVyUbJkSVavXk2lSpWyfF716tX57LPPaNKkSbp97du35/HHH6dnz56+HOod\n607/jIUQQgiRt+zatYvw8PAsHy8zv9eJj48nOTnZp30E5eE+IYQQQog7hyS//6hfvz7169cHoFSp\nUqllD6tWrSIiIoLChQszZsyYLF9v0qRJREREsGXLFl577TUiIiJ4+OGHU/dfvnyZ5557jgoVKlCj\nRg2++eabNOcPGjSI119/nV69ehEREUG1atWw2Wy+ebP/EanVElokLoQWiQuhReJC+EKuL3Jxp9qy\nZQsxMTFUr16dEydOoNP9+73g1KlTDBo0KFuzuC+//DIvv/wyHTp04PHHH+epp55Ks3/AgAGEhoay\ne/duYmNjadeuHQ888ADVq1dPPeb7779n6tSpzJ49m/3792MwyMclhBBCCHErJJu6jqpmXv58s/1Z\nPS8uLo61a9dy9OhRzGYzJUuWpH379ixfvjxN8tu4cWNatmwJQJUqVXJ07zuJ9GcUWiQuhBaJC6FF\n4kL4wh1X9mAZP5778udP959l/PgsH5/Rsf+VG2eMz5w5A6Q8KFeqVClKlSrF3LlzOX/+fJrjypQp\nk2tjFEIIIYS4F9xxM7/JI0aQPGLEbTv+VmRU9mAymTJc2ez68olrihUrhsVi4dixY5mWUmidezeT\nNdmFFokLoUXiQmiRuBC+kLeyq9sso7KHsmXLsnnzZs19oaGhHDhwIM1rYWFhNGjQgHfeeYfExERc\nLhfR0dHs37/f52MWQgghhBD/kuT3BjfOxHbp0oWIiAgWLVrE559/TkREBIMHD05zzMiRI1m2bBnh\n4eG89dZbafYNGjSIDRs2ULlyZTp27Jj6+vTp07lw4QK1a9emfPnyvP/+++lmj/NamzT5ti60SFwI\nLRIXQovEhfAFWeRC+JR8xkIIIYTITbLIhbhjSX9GoUXiQmiRuBBaJC6EL0jyK4QQQggh7hmS/Ipc\nI7VaQovEhdAicSG0SFwIX5DkVwghhBBC3DMk+RW5Rmq1hBaJC6FF4kJokbgQviDJrxBCCCGEuGdI\n8ityjdRqCS0SF0KLxIXQInEhfCHT5HfChAk0bNiQ9u3bp772yy+/0KpVK1q1asX69etv+wCFEEII\nIYTwlUyT35YtWzJ9+vTUbafTyUcffcS8efP4+uuvGTt27G0foMg7pFZLaJG4EFokLoQWiQvhC5km\nvzVq1CBfvnyp23v27KFcuXLkz5+fIkWKEBYWxl9//XXbBynuHAUKFODEiRP/9TCEEEIIIXLEkJ2D\nz58/T6FChZg/fz4hISEUKlSIc+fOUaFChds1PnEHUVU1zZ/ZJbVaQovEhdAicSG0SFwIX8jRA29P\nPPEEbdq0AUBRFM1jBg4cyPjx4xk/fjxTp069439VMXfuXJo3b07lypXp27cv3bt3p2LFihw4cACv\n18uECROoXr06FSpUYMSIEbjdbgBOnjxJx44dKV26NCVKlKBPnz5YrdbU665cuZI6deoQERFB7dq1\nWbduXeq+atWqsXHjxtTtG2dVBw0axOuvv06vXr2IiIigWrVq2Gw2AJYtW0aDBg0oXbo03bp1Iz4+\nPvWc9u3bU758ed566y3q1q1L8+bNsdvtAFy+fJnnnnuOChUqUKNGDb755ps09xsyZAht27YlIiKC\nIUOGpO7r2rUrJUqUAKBJkyZEREQwcuRIzZ9lVFRUms9btmVbtmVbtmVbtmXbV9tRUVGMHz+egQMH\nMnDgQLJLOXToUKbTeKdPn+b5559n2bJl7Ny5ky+//JJp06YB0LNnT0aOHJlu5jcmJoaaNWumu9bZ\ns2cpWrRotgeZG+bOncucOXNYsGABFSpU4JtvviE6OhqAoKAgfvrpJ+bOnUtgYCA9e/YkMjKSQYMG\ncfjwYfbu3Uvr1q3xeDz07NmTypUrM2bMGAAqVqzIuHHj6NSpEzExMdhsNipWrAhA9erV+eyzz2jS\npAmQkvzu3LmTkiVLAinJ6IoVK5g6dSotWrRg//79lC1blv3799O1a1d++OEHqlWrxrhx49i/fz9z\n585l0KBBFClShAYNGtCjRw/++usvunfvzmuvvUbTpk3p1q0boaGhfPjhh8TGxtKuXTu+++47qlev\nzqBBg9i0aRMrVqxAVVUaNGjATz/9lOazvHGMN8rsM46KipJv7SIdiQuhReJCaJG4EFp27dpFeHh4\nlo83ZOfiVatW5fDhw1y6dAmHw0F8fHyeKnkoVaoUwcHB5M+fn7JlyxIbG8vOnTtZunQp77zzDmFh\nYQD069ePL774gkGDBlGuXDnKlSuXeo0OHTqwdOnS1G2dTsfx48exWq3Z+mCuady4MS1btgSgSpUq\nAHz77bd0796dGjVqAClJctmyZXE6nanvo2TJkhQsWJCQkBAiIiK4cOECcXFxrF27lqNHj2I2mylZ\nsiTt27dn+fLlVK9eHYA2bdpQrFgxACpVqsTRo0c1v8gIIYQQQtyNMk1+3333XVavXs2VK1do2rQp\nb7/9NsOGDaN79+4AvPHGGz4f0IqwBj65Tuu4zdk+51oJh8FgQK/XYzAYcLvdnDlzhgEDBqDTpVSJ\neL3e1ET4/PnzjBgxgq1bt5KUlITL5UpNJAFmzZrFJ598wmeffUa5cuX49NNPU2d+s6JMmTLpXjtz\n5gybN29m7ty5qa+ZzebU0odrY9fr9anbLpeLs2fPAqQZn8fjoUuXLqnbISEhqf9vMplwOBxZHuvN\nyLd1oUXiQmiRuBBaJC6EL2Sa/L799tu8/fbb6V5v27btbRtQTpLW20lVVYoVK8YXX3xBrVq10u1/\n77330Ov1REdHExgYyPTp01myZEnq/jp16jB37lycTicvvfQSY8eOZc6cOUBKwnqtdvj6OuHrXUu4\nr1e8eHFeeeUVhg4dmq33UqxYMSwWC8eOHcuwVvtmcnqeEEIIIcSdQFZ4y8S1rgY9evRg7NixxMXF\noaoqR44cSV3gIzExkcDAQPz9/Tl58iRff/11mvO///57bDZbatIYHBycur9MmTLs3LkTIE2pxM10\n796dWbNmsWfPHlRV5fz58yxevDjduG9UuHBhGjRowDvvvENiYiIul4vo6Gj2799/05/B9dc4cOBA\nlsd6veuL1oW4RuJCaJG4EFokLoQvSPL7D0VR0sxqXttWFIVBgwZRv3592rZtS8mSJXn66ae5ePEi\nAMOHD+fPP/+kZMmS9OvXjzZt2qReR1VVFi5cSNWqVSlXrhzx8fFpOiS8+uqrfP/990RGRhIfH685\nq6r1Wu3atRk9ejSDBw+mZMmSPPzww+zZs0dz7DeaPn06Fy5coHbt2pQvX573338fj8eT4f1u3B41\nahTDhw+ncuXKjB49OtOfqRBCCCHEneam3R5y4m7s9iB8Qz5jIYQQ4u6SmAhr1hjZtMnInj16YmJ0\nWK0KOh3cd59K6dIeatTw8PDDLho0cPPPI0V3jNva7UEIIYQQQuQNZ84ofPqphYULTdSsmZLcdu3q\noEQJLyEhKl4vXLqk4/BhHdu3G3jrLT/OndPRv38y/fo5CAz8r99BzkjyK3KN9GcUWiQuhBaJC6Hl\nXo+Lo0d1bN5s4K+/9MTF6bDbwWSCwoW9lC/vpW5dN5Ure7jZs+luN3z+uYXJk8307Olk82YrRYpo\nFwIEBnqJiPDy8MNuRoxIZt8+PZMmWahb18KECUk88ojrNrzT20uSXyGEEEKIO1RCAsyZY2bOHDNW\nq0KjRi4qV/ZQs6YbPz9wOCAuTsfu3XqmTjXjdEL37k6eecZBoULpE9qLFxX69AlAp4MNGxIID/dm\nazxVqniYOTORrVv1DBoUQFSUgdGj7RjuooxSan6FT8lnLIQQQtw6rxfmzDExbpwfDRq46d8/mbp1\nM5/VVVXYv1/PzJlmliwx8vzzDl54IRmTKWV/fLxChw5BtG7t4q237Ldcu2u1Qu/egQQGqnz1VSJG\n461dL6eyW/Mr3R6EEEIIIe4gly8rdOsWyJw5ZhYutDFzZiL16t28nEFRUmZmJ01KYt26BHLine truncated
"text": [
"<matplotlib.figure.Figure at 0x2aa8950>"
"<matplotlib.figure.Figure at 0x4614b90>"
]
},
{
@@ -713,7 +842,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x289cb10>"
"<matplotlib.figure.Figure at 0x41b2050>"
]
}
],
@@ -778,7 +907,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2730390>"
"<matplotlib.figure.Figure at 0x445c990>"
]
}
],
@@ -1050,9 +1179,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x28b4050>"
"<matplotlib.figure.Figure at 0x4470510>"
]
}
],
@@ -1151,7 +1280,7 @@
" self.y = self.y0 = 0\n",
" \n",
" self.v0_y = v0 * math.sin(self.theta)\n",
" self.v0_x = v0*math.cos(self.theta)\n",
" self.v0_x = v0 * math.cos(self.theta)\n",
" \n",
" self.noise_scale = noise_scale\n",
" \n",
@@ -1200,7 +1329,7 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAFtCAYAAAAakpy2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4lNXd//H3PUv2BQIJCUtAIBCBKCC2KqmCCwGEggsK\nVsFaWivupepTbB/aytPHDautpWpbH1yqCFVR/EGFAi6IK6iAyqIgJAgkrFkns92/P0YSUGRJJjmz\nfF7X1evKmWaSw8c7k2/OfO9zrA0bNtiIiIiIiAgADtMTEBERERGJJCqQRUREREQOoQJZREREROQQ\nKpBFRERERA6hAllERERE5BAqkEVEREREDuFqzW+2fft2gsFga35LEREREYlDwWCQrl27Num5rVog\nB4NBBg4c2JrfUg6xYMECRo8ebXoacUv5m6PszVL+Zil/c5S9WatXr27yc9ViEUe2bdtmegpxTfmb\no+zNUv5mKX9zlH30UoEsIiIiInIIFchx5Pzzzzc9hbim/M1R9mYpf7OUvznKPnpZGzZssFvrm5WW\nlqoHWURERERa3OrVq+nSpUuTnqsV5DiyYsUK01OIa8rfHGVvlvI3S/mbo+yjlwpkEREREZFDqMVC\nRERERGKOWixERERERMJEBXIcUS+UWcrfHGX/bT4fbN5ssXVr46+BXbss3n7bydq1DgKB0GOlpRYr\nVzrZsKHx8/bssfj8cwd79x7f91L+Zil/c5R99GrVk/RERKTlbdnioLYWOncOkpkZKoSffDKRykqL\nyZPrKSgIMn++mylTUklIgH/+s5p+/QLcdlsyr7ySiMtlM2dONT17BrjyyjTWrXORnm4zf34VWVk2\nU6ak8PbbboYO9fHggzUkJcErr7j58EMnl17qY/BgP05naB4eDyQkZJmORETkhKgHWUQkSvn9sGaN\nk507LXr0CNK7d5D333dy6aXpVFVZXHuth6lT67j55lQWLUoAoEuXAM89V80552Tg81kA9OgR4OGH\naxgxIqPhaw8b5uWnP61n3Lj0hsd+85s6unUL8JOfpDU89vTTVVRWWkyZEnrM5bJZurSSmhqLyy5L\np7ra4rbb6rjhBg9+P3z8sYtAAE45JUB2dqv9+hGROKQeZBGRGGfb8OGHTl54wc2qVU4CAXj/fScl\nJelceWU6Y8aks22bxZ//nERVVajwffTRJHbscPDZZ86Gr1NW5sC2ITW1sTjNzAySmRkkPb3xsQED\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2898e90>"
"<matplotlib.figure.Figure at 0x42ecd10>"
]
}
],
@@ -1340,7 +1469,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x270ff10>"
"<matplotlib.figure.Figure at 0x4a46910>"
]
}
],
@@ -1376,7 +1505,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2e25950>"
"<matplotlib.figure.Figure at 0x42fd6d0>"
]
},
{
@@ -1384,7 +1513,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2cd8710>"
"<matplotlib.figure.Figure at 0x42fd290>"
]
}
],
@@ -1425,9 +1554,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x33e3e50>"
"<matplotlib.figure.Figure at 0x46a6f50>"
]
}
],
@@ -1469,7 +1598,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2679950>"
"<matplotlib.figure.Figure at 0x430cb50>"
]
}
],
@@ -1514,7 +1643,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 31
"prompt_number": 27
},
{
"cell_type": "code",
@@ -1547,7 +1676,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 32
"prompt_number": 28
},
{
"cell_type": "code",
@@ -1567,13 +1696,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x33e5910>"
"<matplotlib.figure.Figure at 0x4a69210>"
]
}
],
"prompt_number": 33
"prompt_number": 29
},
{
"cell_type": "markdown",
@@ -1595,25 +1724,478 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"[[ 0.02143298 0.01351531 0.00364892 0. 0. 0. ]\n",
" [ 0.01351531 0.01153516 0.00352809 0. 0. 0. ]\n",
" [ 0.00364892 0.00352809 0.00115592 0. 0. 0. ]\n",
" [ 0. 0. 0. 0.05456716 0.11122734 0.01865339]\n",
" [ 0. 0. 0. 0.11122734 0.5379301 0.07344247]\n",
" [ 0. 0. 0. 0.01865339 0.07344247 0.18002138]]\n"
"[[ 0.05261574 0.09937383 0.10362656 0. 0. 0. ]\n",
" [ 0.09937383 0.29131298 0.41184609 0. 0. 0. ]\n",
" [ 0.10362656 0.41184609 0.95895574 0. 0. 0. ]\n",
" [ 0. 0. 0. 0.05261574 0.09937383 0.10362656]\n",
" [ 0. 0. 0. 0.09937383 0.29131298 0.41184609]\n",
" [ 0. 0. 0. 0.10362656 0.41184609 0.95895574]]\n"
]
}
],
"prompt_number": 30
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"now what if some measurements missing blah blah\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"input": [
"def plot_ball_filter6_miss (zs, miss_ratio=0.2):\n",
" xs, ys = [],[]\n",
" pxs, pys = [],[]\n",
" \n",
" for i,z in enumerate(zs):\n",
" m = np.mat([z[0], 0, 0, z[1], 0, 0]).T\n",
"\n",
" f1.predict ()\n",
" print (i, f1.x) \n",
" \n",
" if i < 20 or i > 40:\n",
" #if random.rand() >= miss_ratio:\n",
" f1.update (m)\n",
"\n",
"\n",
" xs.append (f1.x[0,0])\n",
" ys.append (f1.x[3,0])\n",
" pxs.append (z[0])\n",
" pys.append(z[1])\n",
" \n",
" if i > 0 and z[1] < 0:\n",
" break;\n",
"\n",
" p1, = plt.plot (xs, ys, 'r--')\n",
" p2, = plt.plot (pxs, pys)\n",
" plt.axis('equal')\n",
" plt.legend([p1,p2], ['filter', 'measurement'], 2)\n",
" plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 30
"prompt_number": 44
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"dt = 0.1\n",
"noise = 0.0\n",
"f1 = ball_filter6(dt, R=.16, Q=0.1)\n",
"\n",
"x,y = baseball.compute_trajectory(v_0_mph = 90., theta=65., dt=dt)\n",
"znoise = [(i+randn()*noise,j+randn()*noise) for (i,j) in zip(x,y)]\n",
"plot_ball_filter6_miss (znoise)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"0 [[ 0.]\n",
" [ 0.]\n",
" [ 0.]\n",
" [ 0.]\n",
" [ 0.]\n",
" [ 0.]]\n",
"1 [[ 0.]\n",
" [ 0.]\n",
" [ 0.]\n",
" [ 0.]\n",
" [ 0.]\n",
" [ 0.]]\n",
"2 [[ 2.44405979]\n",
" [ 10.68643825]\n",
" [ 2.02487675]\n",
" [ 5.24130313]\n",
" [ 22.91714079]\n",
" [ 4.34236221]]\n",
"3 [[ 4.66270121]\n",
" [ 15.0959457 ]\n",
" [ 3.41998384]\n",
" [ 9.8787654 ]\n",
" [ 31.92489774]\n",
" [ 7.1854626 ]]\n",
"4 [[ 6.53889664]\n",
" [ 16.51155164]\n",
" [ 4.13016625]\n",
" [ 13.68152078]\n",
" [ 34.38243413]\n",
" [ 8.33579 ]]\n",
"5 [[ 8.26612083]\n",
" [ 17.03075509]\n",
" [ 4.25071537]\n",
" [ 17.06352352]\n",
" [ 34.78964978]\n",
" [ 7.8517589 ]]\n",
"6 [[ 9.89364089]\n",
" [ 17.09199018]\n",
" [ 3.69648655]\n",
" [ 20.11627647]\n",
" [ 34.01938789]\n",
" [ 5.48237438]]\n",
"7 [[ 11.42611493]\n",
" [ 16.79051327]\n",
" [ 2.55972089]\n",
" [ 22.84083372]\n",
" [ 32.26802293]\n",
" [ 1.5872627 ]]\n",
"8 [[ 12.87107224]\n",
" [ 16.23334243]\n",
" [ 1.17838404]\n",
" [ 25.26137529]\n",
" [ 29.85249228]\n",
" [ -2.78578886]]\n",
"9 [[ 14.24807549]\n",
" [ 15.56446867]\n",
" [ -0.09987618]\n",
" [ 27.43868368]\n",
" [ 27.19628665]\n",
" [ -6.64898788]]\n",
"10 [[ 15.57762857]\n",
" [ 14.89469275]\n",
" [ -1.10589939]\n",
" [ 29.43283218]\n",
" [ 24.60662615]\n",
" [ -9.58380039]]\n",
"11 [[ 16.87332115]\n",
" [ 14.27675526]\n",
" [ -1.82766582]\n",
" [ 31.28127693]\n",
" [ 22.21442747]\n",
" [-11.6235898 ]]\n",
"12 [[ 18.14212805]\n",
" [ 13.7239801 ]\n",
" [ -2.31896548]\n",
" [ 33.00164543]\n",
" [ 20.0392546 ]\n",
" [-12.9684103 ]]\n",
"13 [[ 19.3872636 ]\n",
" [ 13.23249429]\n",
" [ -2.64174192]\n",
" [ 34.60092379]\n",
" [ 18.05657215]\n",
" [-13.82119383]]\n",
"14 [[ 20.61032298]\n",
" [ 12.79363675]\n",
" [ -2.84612871]\n",
" [ 36.08182295]\n",
" [ 16.23273747]\n",
" [-14.33801914]]\n",
"15 [[ 21.81236356]\n",
" [ 12.39889874]\n",
" [ -2.96807894]\n",
" [ 37.44581783]\n",
" [ 14.53772217]\n",
" [-14.62728128]]\n",
"16 [[ 22.99434735]\n",
" [ 12.0413384 ]\n",
" [ -3.03216273]\n",
" [ 38.69430853]\n",
" [ 12.94798303]\n",
" [-14.7612569 ]]\n",
"17 [[ 24.15728912]\n",
" [ 11.71569135]\n",
" [ -3.05485765]\n",
" [ 39.82896024]\n",
" [ 11.44599382]\n",
" [-14.78742499]]\n",
"18 [[ 25.30228828]\n",
" [ 11.41810935]\n",
" [ -3.04713115]\n",
" [ 40.851739 ]\n",
" [ 10.01900867]\n",
" [-14.73682841]]\n",
"19 [[ 26.43052127]\n",
" [ 11.14585251]\n",
" [ -3.01624667]\n",
" [ 41.76485573]\n",
" [ 8.65788025]\n",
" [-14.6297248 ]]\n",
"20 [[ 27.54322312]\n",
" [ 10.89702311]\n",
" [ -2.96698642]\n",
" [ 42.57069332]\n",
" [ 7.35611195]\n",
" [-14.47931437]]\n",
"21 [[ 28.60325556]\n",
" [ 10.60032446]\n",
" [ -2.96698642]\n",
" [ 43.16151138]\n",
" [ 5.90818051]\n",
" [-14.47931437]]\n",
"22 [[ 29.63361814]\n",
" [ 10.30362582]\n",
" [ -2.96698642]\n",
" [ 43.60753628]\n",
" [ 4.46024908]\n",
" [-14.47931437]]\n",
"23 [[ 30.63431086]\n",
" [ 10.00692718]\n",
" [ -2.96698642]\n",
" [ 43.90876805]\n",
" [ 3.01231764]\n",
" [-14.47931437]]\n",
"24 [[ 31.60533372]\n",
" [ 9.71022854]\n",
" [ -2.96698642]\n",
" [ 44.06520667]\n",
" [ 1.5643862 ]\n",
" [-14.47931437]]\n",
"25 [[ 32.54668671]\n",
" [ 9.4135299 ]\n",
" [ -2.96698642]\n",
" [ 44.07685214]\n",
" [ 0.11645477]\n",
" [-14.47931437]]\n",
"26 [[ 33.45836983]\n",
" [ 9.11683125]\n",
" [ -2.96698642]\n",
" [ 43.94370448]\n",
" [ -1.33147667]\n",
" [-14.47931437]]\n",
"27 [[ 34.34038309]\n",
" [ 8.82013261]\n",
" [ -2.96698642]\n",
" [ 43.66576367]\n",
" [ -2.77940811]\n",
" [-14.47931437]]\n",
"28 [[ 35.19272649]\n",
" [ 8.52343397]\n",
" [ -2.96698642]\n",
" [ 43.24302971]\n",
" [ -4.22733955]\n",
" [-14.47931437]]\n",
"29 [[ 36.01540002]\n",
" [ 8.22673533]\n",
" [ -2.96698642]\n",
" [ 42.67550261]\n",
" [ -5.67527098]\n",
" [-14.47931437]]\n",
"30 [[ 36.80840369]\n",
" [ 7.93003669]\n",
" [ -2.96698642]\n",
" [ 41.96318237]\n",
" [ -7.12320242]\n",
" [-14.47931437]]\n",
"31 [[ 37.57173749]\n",
" [ 7.63333804]\n",
" [ -2.96698642]\n",
" [ 41.10606899]\n",
" [ -8.57113386]\n",
" [-14.47931437]]\n",
"32 [[ 38.30540143]\n",
" [ 7.3366394 ]\n",
" [ -2.96698642]\n",
" [ 40.10416246]\n",
" [-10.01906529]\n",
" [-14.47931437]]\n",
"33 [[ 39.00939551]\n",
" [ 7.03994076]\n",
" [ -2.96698642]\n",
" [ 38.95746278]\n",
" [-11.46699673]\n",
" [-14.47931437]]\n",
"34 [[ 39.68371972]\n",
" [ 6.74324212]\n",
" [ -2.96698642]\n",
" [ 37.66596997]\n",
" [-12.91492817]\n",
" [-14.47931437]]\n",
"35 [[ 40.32837407]\n",
" [ 6.44654348]\n",
" [ -2.96698642]\n",
" [ 36.22968401]\n",
" [-14.3628596 ]\n",
" [-14.47931437]]\n",
"36 [[ 40.94335855]\n",
" [ 6.14984483]\n",
" [ -2.96698642]\n",
" [ 34.6486049 ]\n",
" [-15.81079104]\n",
" [-14.47931437]]\n",
"37 [[ 41.52867317]\n",
" [ 5.85314619]\n",
" [ -2.96698642]\n",
" [ 32.92273265]\n",
" [-17.25872248]\n",
" [-14.47931437]]\n",
"38 [[ 42.08431793]\n",
" [ 5.55644755]\n",
" [ -2.96698642]\n",
" [ 31.05206726]\n",
" [-18.70665391]\n",
" [-14.47931437]]\n",
"39 [[ 42.61029282]\n",
" [ 5.25974891]\n",
" [ -2.96698642]\n",
" [ 29.03660873]\n",
" [-20.15458535]\n",
" [-14.47931437]]\n",
"40 [[ 43.10659784]\n",
" [ 4.96305027]\n",
" [ -2.96698642]\n",
" [ 26.87635705]\n",
" [-21.60251679]\n",
" [-14.47931437]]\n",
"41 [[ 43.57323301]\n",
" [ 4.66635162]\n",
" [ -2.96698642]\n",
" [ 24.57131223]\n",
" [-23.05044822]\n",
" [-14.47931437]]\n",
"42 [[ 49.53875091]\n",
" [ 8.41022586]\n",
" [ -1.35829677]\n",
" [ 36.25872343]\n",
" [-14.16609388]\n",
" [-10.36567957]]\n",
"43 [[ 50.41875369]\n",
" [ 8.33134456]\n",
" [ -1.32141671]\n",
" [ 34.91649773]\n",
" [-15.00976788]\n",
" [-10.24076045]]\n",
"44 [[ 51.27664835]\n",
" [ 8.25959907]\n",
" [ -1.27392093]\n",
" [ 33.47134349]\n",
" [-15.78218742]\n",
" [-10.04285686]]\n",
"45 [[ 52.12583444]\n",
" [ 8.20292466]\n",
" [ -1.21554564]\n",
" [ 31.96934394]\n",
" [-16.43913584]\n",
" [ -9.75614053]]\n",
"46 [[ 52.96740558]\n",
" [ 8.15248606]\n",
" [ -1.1568817 ]\n",
" [ 30.42208773]\n",
" [-17.00163737]\n",
" [ -9.41536186]]"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"47 [[ 53.79863088]\n",
" [ 8.09573592]\n",
" [ -1.10900586]\n",
" [ 28.82446485]\n",
" [-17.52231427]\n",
" [ -9.07349441]]\n",
"48 [[ 54.61635331]\n",
" [ 8.02488892]\n",
" [ -1.07699429]\n",
" [ 27.16568144]\n",
" [-18.04621201]\n",
" [ -8.76703269]]\n",
"49 [[ 55.41860877]\n",
" [ 7.93827355]\n",
" [ -1.06032042]\n",
" [ 25.43776715]\n",
" [-18.59398868]\n",
" [ -8.50690811]]\n",
"50 [[ 56.20461371]\n",
" [ 7.83758198]\n",
" [ -1.05610405]\n",
" [ 23.63768075]\n",
" [-19.16739559]\n",
" [ -8.2879896 ]]\n",
"51 [[ 56.97422095]\n",
" [ 7.72532752]\n",
" [ -1.0613927 ]\n",
" [ 21.76593979]\n",
" [-19.75952268]\n",
" [ -8.09959974]]\n",
"52 [[ 57.72749988]\n",
" [ 7.60367152]\n",
" [ -1.07395753]\n",
" [ 19.82490448]\n",
" [-20.36130989]\n",
" [ -7.93102968]]\n",
"53 [[ 58.46453621]\n",
" [ 7.47415459]\n",
" [ -1.09230102]\n",
" [ 17.81769808]\n",
" [-20.96425829]\n",
" [ -7.77334825]]\n",
"54 [[ 59.18537127]\n",
" [ 7.3377984 ]\n",
" [ -1.11541441]\n",
" [ 15.74768189]\n",
" [-21.56116738]\n",
" [ -7.61961252]]\n",
"55 [[ 59.89000815]\n",
" [ 7.19530697]\n",
" [ -1.14251657]\n",
" [ 13.61822836]\n",
" [-22.14615781]\n",
" [ -7.46464341]]\n",
"56 [[ 60.5784447 ]\n",
" [ 7.04726395]\n",
" [ -1.17284942]\n",
" [ 11.43261659]\n",
" [-22.71455044]\n",
" [ -7.30479717]]\n",
"57 [[ 61.25071319]\n",
" [ 6.89428876]\n",
" [ -1.20555065]\n",
" [ 9.19396376]\n",
" [-23.26278579]\n",
" [ -7.13781556]]\n",
"58 [[ 61.9069146 ]\n",
" [ 6.73713538]\n",
" [ -1.23960771]\n",
" [ 6.90516348]\n",
" [-23.78839568]\n",
" [ -6.96270983]]\n",
"59 [[ 62.54723957]\n",
" [ 6.57672729]\n",
" [ -1.27388497]\n",
" [ 4.56883211]\n",
" [-24.28997646]\n",
" [ -6.77961145]]\n",
"60 [[ 63.17197196]\n",
" [ 6.41413318]\n",
" [ -1.30720331]\n",
" [ 2.18727552]\n",
" [-24.7671111 ]\n",
" [ -6.58955065]]\n",
"61 [[ 63.781476 ]\n",
" [ 6.25050063]\n",
" [ -1.33844179]\n",
" [ -0.23751324]\n",
" [-25.22021619]\n",
" [ -6.39416907]]\n",
"62 [[ 64.37617233]\n",
" [ 6.0869722 ]\n",
" [ -1.36663031]\n",
" [ -2.70382451]\n",
" [-25.65032694]\n",
" [ -6.19540949]]\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x4308850>"
]
}
],
"prompt_number": 46
}
],
"metadata": {}
+49 -3
View File
@@ -12,8 +12,21 @@ import numpy.random as random
class KalmanFilter:
def __init__(self, dim):
""" Create a Kalman filter of dimension 'dim'"""
def __init__(self, dim, use_short_form=False):
""" Create a Kalman filter of dimension 'dim', where dimension is the
number of state variables.
use_short_form will force the filter to use the short form equation
for computing covariance: (I-KH)P. This is the equation that results
from deriving the Kalman filter equations. It is efficient to compute
but not numerically stable for very long runs. The long form,
implemented in update(), is very slightly suboptimal, and takes longer
to compute, but is stable. I have chosen to make the long form the
default behavior. If you really want the short form, either call
update_short_form() directly, or set 'use_short_form' to true. This
causes update() to use the short form. So, if you do it this way
you will never be able to use the long form again with this object.
"""
self.x = 0 # state
self.P = np.matrix(np.eye(dim)) # uncertainty covariance
@@ -24,6 +37,9 @@ class KalmanFilter:
self.H = 0 # Measurement function (maps state to measurements)
self.R = np.matrix(np.eye(1)) # state uncertainty
self.I = np.matrix(np.eye(dim))
if use_short_form:
self.update = self.update_short_form
def update(self, Z):
@@ -39,11 +55,41 @@ class KalmanFilter:
K = self.P * self.H.T * linalg.inv(S) # map system uncertainty into kalman gain
self.x = self.x + (K*y) # predict new x with residual scaled by the kalman gain
KH = K*self.H
I_KH = self.I - KH
self.P = I_KH*self.P * I_KH.T + K*self.R*K.T
def update_short_form(self, Z):
"""
Add a new measurement to the kalman filter.
Uses the 'short form' computation for P, which is mathematically
correct, but perhaps not that stable when dealing with large data
sets. But, it is fast to compute. Advice varies; some say to never
use this. My opinion - if the longer form in update() executes too
slowly to run in real time, what choice do you have. But that should
be a rare case, so the long form is the default use
"""
# measurement update
y = Z - (self.H * self.x) # error (residual) between measurement and prediction
S = (self.H * self.P * self.H.T) + self.R # project system uncertainty into measurment space + measurement noise(R)
K = self.P * self.H.T * linalg.inv(S) # map system uncertainty into kalman gain
self.x = self.x + (K*y) # predict new x with residual scaled by the kalman gain
# and compute the new covariance
self.P = (self.I - (K*self.H))*self.P # and compute the new covariance
def predict(self):
# prediction
self.x = (self.F*self.x) + self.u
self.x = (self.F*self.x) + self.B * self.u
self.P = self.F * self.P * self.F.T + self.Q
+67 -11
View File
@@ -1,14 +1,7 @@
# -*- coding: utf-8 -*-
"""
Spyder Editor
This temporary script file is located here:
/home/rlabbe/.spyder2/.temp.py
"""
"""
Computes the trajectory of a stitched baseball with air drag.
Takes altitude into account (higher altitude means further travel) and the
stitching on the baseball influencing drag.
@@ -20,9 +13,11 @@ LOWER the higher its velocity, which is somewhat counterintuitive.
"""
from __future__ import division
import math
import matplotlib.pyplot as plt
from numpy.random import randn
import numpy as np
def a_drag (vel, altitude):
""" returns the drag coefficient of a baseball at a given velocity (m/s)
@@ -38,13 +33,45 @@ def a_drag (vel, altitude):
return val
def compute_trajectory_vacuum (v_0_mph,
theta,
dt=0.01,
noise_scale=0.0,
x0=0., y0 = 0.):
theta = math.radians(theta)
x = x0
y = y0
v0_y = v_0_mph * math.sin(theta)
v0_x = v_0_mph * math.cos(theta)
xs = []
ys = []
t = dt
while y >= 0:
x = v0_x*t + x0
y = -0.5*9.8*t**2 + v0_y*t + y0
xs.append (x + randn() * noise_scale)
ys.append (y + randn() * noise_scale)
t += dt
return (xs, ys)
def compute_trajectory(v_0_mph, theta, v_wind_mph=0, alt_ft = 0.0, dt = 0.01):
g = 9.8
### comput
theta = math.radians(theta)
# initial velocity in direction of travel
v_0 = v_0_mph * 0.447 # mph to m/s
# velocity components in x and y
v_x = v_0 * math.cos(theta)
v_y = v_0 * math.sin(theta)
@@ -58,7 +85,6 @@ def compute_trajectory(v_0_mph, theta, v_wind_mph=0, alt_ft = 0.0, dt = 0.01):
i = 0
while y[i] >= ground_level:
g = 9.8
v = math.sqrt((v_x - v_wind) **2+ v_y**2)
@@ -69,7 +95,37 @@ def compute_trajectory(v_0_mph, theta, v_wind_mph=0, alt_ft = 0.0, dt = 0.01):
v_y = v_y - a_drag(v, altitude) * v * v_y * dt - g * dt
i += 1
# meters to yards
np.multiply (x, 1.09361)
np.multiply (y, 1.09361)
return (x,y)
def predict (x0, y0, x1, y1, dt, time):
g = 10.724*dt*dt
v_x = x1-x0
v_y = y1-y0
v = math.sqrt(v_x**2 + v_y**2)
x = x1
y = y1
while time > 0:
v_x = v_x - a_drag(v, y) * v * v_x
v_y = v_y - a_drag(v, y) * v * v_y - g
x = x + v_x
y = y + v_y
time -= dt
return (x,y)
if __name__ == "__main__":
x,y = compute_trajectory(v_0_mph = 110., theta=35., v_wind_mph = 0., alt_ft=5000.)
+218
View File
@@ -0,0 +1,218 @@
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 4 12:33:38 2014
@author: rlabbe
"""
from __future__ import print_function,division
from KalmanFilter import KalmanFilter
import numpy as np
import matplotlib.pyplot as plt
import baseball
from numpy.random import randn
def ball_filter6(dt,R=1., Q = 0.1):
f1 = KalmanFilter(dim=6)
g = 10
f1.F = np.mat ([[1., dt, dt**2, 0, 0, 0],
[0, 1., dt, 0, 0, 0],
[0, 0, 1., 0, 0, 0],
[0, 0, 0., 1., dt, -0.5*dt*dt*g],
[0, 0, 0, 0, 1., -g*dt],
[0, 0, 0, 0, 0., 1.]])
f1.H = np.mat([[1,0,0,0,0,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0],
[0,0,0,1,0,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0]])
f1.R = np.mat(np.eye(6)) * R
f1.Q = np.zeros((6,6))
f1.Q[2,2] = Q
f1.Q[5,5] = Q
f1.x = np.mat([0, 0 , 0, 0, 0, 0]).T
f1.P = np.eye(6) * 50.
f1.B = 0.
f1.u = 0
return f1
def ball_filter4(dt,R=1., Q = 0.1):
f1 = KalmanFilter(dim=4)
g = 10
f1.F = np.mat ([[1., dt, 0, 0,],
[0, 1., 0, 0],
[0, 0, 1., dt],
[0, 0, 0., 1.]])
f1.H = np.mat([[1,0,0,0],
[0,0,0,0],
[0,0,1,0],
[0,0,0,0]])
f1.B = np.mat([[0,0,0,0],
[0,0,0,0],
[0,0,1.,0],
[0,0,0,1.]])
f1.u = np.mat([[0],
[0],
[-0.5*g*dt**2],
[-g*dt]])
f1.R = np.mat(np.eye(4)) * R
f1.Q = np.zeros((4,4))
f1.Q[1,1] = Q
f1.Q[3,3] = Q
f1.x = np.mat([0, 0 , 0, 0]).T
f1.P = np.eye(4) * 50.
return f1
def plot_ball_filter6 (f1, zs, skip_start=-1, skip_end=-1):
xs, ys = [],[]
pxs, pys = [],[]
for i,z in enumerate(zs):
m = np.mat([z[0], 0, 0, z[1], 0, 0]).T
f1.predict ()
if i == skip_start:
x2 = xs[-2]
x1 = xs[-1]
y2 = ys[-2]
y1 = ys[-1]
if i >= skip_start and i <= skip_end:
#x,y = baseball.predict (x2, y2, x1, y1, 1/30, 1/30* (i-skip_start+1))
x,y = baseball.predict (xs[-2], ys[-2], xs[-1], ys[-1], 1/30, 1/30)
m[0] = x
m[3] = y
#print ('skip', i, f1.x[2],f1.x[5])
f1.update_long_form (m)
'''
if i >= skip_start and i <= skip_end:
#f1.x[2] = -0.1
#f1.x[5] = -17.
pass
else:
f1.update (m)
'''
xs.append (f1.x[0,0])
ys.append (f1.x[3,0])
pxs.append (z[0])
pys.append(z[1])
if i > 0 and z[1] < 0:
break;
'''
p1, = plt.plot (xs, ys, 'r--')
p2, = plt.plot (pxs, pys)
plt.axis('equal')
plt.legend([p1,p2], ['filter', 'measurement'], 2)
plt.xlim([0,xs[-1]])
plt.show()
'''
def plot_ball_filter4 (f1, zs, skip_start=-1, skip_end=-1):
xs, ys = [],[]
pxs, pys = [],[]
for i,z in enumerate(zs):
m = np.mat([z[0], 0, z[1], 0]).T
f1.predict ()
if i == skip_start:
x2 = xs[-2]
x1 = xs[-1]
y2 = ys[-2]
y1 = ys[-1]
if i >= skip_start and i <= skip_end:
#x,y = baseball.predict (x2, y2, x1, y1, 1/30, 1/30* (i-skip_start+1))
x,y = baseball.predict (xs[-2], ys[-2], xs[-1], ys[-1], 1/30, 1/30)
m[0] = x
m[2] = y
f1.update_long_form (m)
'''
if i >= skip_start and i <= skip_end:
#f1.x[2] = -0.1
#f1.x[5] = -17.
pass
else:
f1.update (m)
'''
xs.append (f1.x[0,0])
ys.append (f1.x[2,0])
pxs.append (z[0])
pys.append(z[1])
if i > 0 and z[1] < 0:
break;
'''
plt.plot (xs, ys, 'r--')
plt.plot (pxs, pys)
plt.axis('equal')
plt.legend([p1,p2], ['filter', 'measurement'], 2)
plt.xlim([0,xs[-1]])
plt.show()
'''
start_skip = 20
end_skip = 60
def run_6():
dt = 1/30
noise = 0.0
f1 = ball_filter6(dt, R=.16, Q=0.1)
#plt.cla()
x,y = baseball.compute_trajectory(v_0_mph = 100., theta=50., dt=dt)
znoise = [(i+randn()*noise,j+randn()*noise) for (i,j) in zip(x,y)]
plot_ball_filter6 (f1, znoise, start_skip, end_skip)
def run_4():
dt = 1/30
noise = 0.0
f1 = ball_filter4(dt, R=.16, Q=0.1)
plt.cla()
x,y = baseball.compute_trajectory(v_0_mph = 100., theta=50., dt=dt)
znoise = [(i+randn()*noise,j+randn()*noise) for (i,j) in zip(x,y)]
plot_ball_filter4 (f1, znoise, start_skip, end_skip)
run_6()
+74
View File
@@ -0,0 +1,74 @@
console.log("Section numbering...");
function number_sections(threshold) {
var h1_number = 0;
var h2_number = 0;
if (threshold === undefined) {
threshold = 2; // does nothing so far
}
var cells = IPython.notebook.get_cells();
for (var i=0; i < cells.length; i++) {
var cell = cells[i];
if (cell.cell_type !== 'heading') continue;
var level = cell.level;
if (level > threshold) continue;
if (level === 1) {
h1_number ++;
var h1_element = cell.element.find('h1');
var h1_html = h1_element.html();
console.log("h1_html: " + h1_html);
var patt = /^[0-9]+\.\s(.*)/; // section number at start of string
var title = h1_html.match(patt); // just the title
if (title != null) {
h1_element.html(h1_number + ". " + title[1]);
}
else {
h1_element.html(h1_number + ". " + h1_html);
}
h2_number = 0;
}
if (level === 2) {
h2_number ++;
var h2_element = cell.element.find('h2');
var h2_html = h2_element.html();
console.log("h2_html: " + h2_html);
var patt = /^[0-9]+\.[0-9]+\.\s/;
var result = h2_html.match(patt);
if (result != null) {
h2_html = h2_html.replace(result, "");
}
h2_element.html(h1_number + "." + h2_number + ". " + h2_html);
}
}
}
number_sections();
// $([IPython.evnts]).on('create.Cell', number_sections);
$([IPython.events]).on('selected_cell_type_changed.Notebook', number_sections);
+79
View File
@@ -0,0 +1,79 @@
"""
IPython Notebook magic command for automatically numbering sections of a notebook "interactively"
Use:
%install_ext https://raw.github.com/dpsanders/ipython_extensions/master/section_numbering/secnum.py
once to install, and then
%load_ext secnum
%secnum
to get automatic section numbering, which is updated when any cell changes type.
(This could, of course, be more efficient.)
This is based, completely and shamelessly, on MinRK's `nbtoc` magic
<https://github.com/minrk/ipython_extensions>
Thanks also to:
- Clayton Davis, for a great explanation of HTML, CSS and JavaScript
- Brian Granger, for a crucial hint about extracting a JQuery object from a notebook cell object
- Fernando Perez, for an inspiring talk at SciPy 2013 (and, of course, for creating IPython)
"""
import io
import os
import urllib2
from IPython.display import display_html, display_javascript
here = os.path.abspath(os.path.dirname(__file__))
secnum_js = ""
def download(fname, redownload=False):
"""download a file
if redownload=False, the file will not be downloaded if it already exists.
"""
dest = os.path.join(here, fname)
if os.path.exists(dest) and not redownload:
return
url = 'https://raw.github.com/dpsanders/ipython_extensions/master/section_numbering/' + fname
print("Downloading %s to %s" % (url, dest))
filein = urllib2.urlopen(url)
fileout = open(dest, "wb")
chunk = filein.read(1024)
while chunk:
fileout.write(chunk)
chunk = filein.read(1024)
filein.close()
fileout.close()
def load_file(fname, redownload=False):
"""load global variable from a file"""
download(fname, redownload)
with io.open(os.path.join(here, fname)) as f:
globals()[fname.replace('.', '_')] = f.read()
load_file('secnum.js')
def secnum(line):
"""add a table of contents to an IPython Notebook"""
display_javascript(secnum_js, raw=True)
def update_secnum(line):
"""download the latest version of the nbtoc extension from GitHub"""
download('secnum.py', True)
download('secnum.js', True)
get_ipython().extension_manager.reload_extension("secnum")
def load_ipython_extension(ip):
ip.magics_manager.register_function(secnum)
ip.magics_manager.register_function(update_secnum)