From 270c3d8565a6ac2a2429fc3cc8e6365ba14b700f Mon Sep 17 00:00:00 2001 From: beckynevin Date: Wed, 11 Oct 2023 22:44:58 -0600 Subject: [PATCH] file to save df --- notebooks/save_dataframe.ipynb | 235 ++++++++++++++++++++++++++++++++- 1 file changed, 232 insertions(+), 3 deletions(-) diff --git a/notebooks/save_dataframe.ipynb b/notebooks/save_dataframe.ipynb index 4e2020e..d27cc64 100644 --- a/notebooks/save_dataframe.ipynb +++ b/notebooks/save_dataframe.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 60, "id": "47611152-0598-4d26-ac4d-d1f243dd0736", "metadata": {}, "outputs": [], @@ -19,7 +19,20 @@ "import numpy as np\n", "import jax.numpy as jnp\n", "from deepbench.physics_object import Pendulum\n", - "import pandas as pd" + "import pandas as pd\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "91e28762-3307-499d-bfbb-a3ffecf8b3e7", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append('..')\n", + "from src.scripts import analysis" ] }, { @@ -273,9 +286,225 @@ "df" ] }, + { + "cell_type": "markdown", + "id": "68bed51e-3a17-48f2-a18b-09b141766c86", + "metadata": {}, + "source": [ + "## Also add a column for the position error\n", + "Recall, this is an analytic expectation. It is calculated using the input percent error on the $\\theta_0$ parameter and the `calc_error_prop` function in the `analysis.py` module." + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "482e2844-2ea2-4a8c-868b-8b798a36b296", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
lengththetaa_gtimepospos_err
05.9395400.04032310.3485000.750.1266480.013138
13.6459480.04158710.3485000.750.0469040.004585
24.4945730.03268110.3485000.750.0665480.006160
33.6917170.03244910.3485000.750.0367530.003712
48.4632760.02602310.3485000.750.1249280.014872
.....................
953.2873640.0276069.8211570.750.0272840.002459
964.9013770.0315599.8211570.750.0804310.007539
976.3741460.0283119.8211570.750.1023360.010773
981.0756610.0306359.8211570.75-0.0230950.002111
995.7313870.0237059.8211570.750.0715570.007547
\n", + "

100 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " length theta a_g time pos pos_err\n", + "0 5.939540 0.040323 10.348500 0.75 0.126648 0.013138\n", + "1 3.645948 0.041587 10.348500 0.75 0.046904 0.004585\n", + "2 4.494573 0.032681 10.348500 0.75 0.066548 0.006160\n", + "3 3.691717 0.032449 10.348500 0.75 0.036753 0.003712\n", + "4 8.463276 0.026023 10.348500 0.75 0.124928 0.014872\n", + ".. ... ... ... ... ... ...\n", + "95 3.287364 0.027606 9.821157 0.75 0.027284 0.002459\n", + "96 4.901377 0.031559 9.821157 0.75 0.080431 0.007539\n", + "97 6.374146 0.028311 9.821157 0.75 0.102336 0.010773\n", + "98 1.075661 0.030635 9.821157 0.75 -0.023095 0.002111\n", + "99 5.731387 0.023705 9.821157 0.75 0.071557 0.007547\n", + "\n", + "[100 rows x 6 columns]" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['pos_err'] = analysis.calc_error_prop(df['length'],\n", + " df['theta'],\n", + " df['a_g'],\n", + " 0.1*df['theta'],\n", + " df['time'],\n", + " wrt='theta_0')\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "bc7ea28b-d006-451d-98f8-5a6fd853237a", + "metadata": {}, + "source": [ + "## And of course, double check that this makes sense by looking at the data\n", + "I think it's especially useful to double check the expected analytic error as a function of whatever parameter you're introducing it on." + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "1cbd3f6f-26f6-4786-bb8c-f9fc220da8b4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.clf()\n", + "plt.scatter(df['theta'], df['pos'])\n", + "plt.errorbar(df['theta'], df['pos'], yerr = df['pos_err'], ls = 'None')\n", + "plt.xlabel(r'$\\theta_0$')\n", + "plt.ylabel('x position')\n", + "plt.show()" + ] + }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 65, "id": "44c6292d-fea9-4693-9173-913fd396bbd5", "metadata": {}, "outputs": [],