diff --git a/examples/chamber.ipynb b/examples/chamber.ipynb index 5d2dd8a0..fdcb5e25 100644 --- a/examples/chamber.ipynb +++ b/examples/chamber.ipynb @@ -15,7 +15,12 @@ "cell_type": "code", "execution_count": 1, "id": "159edeb4", - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-26T04:57:47.303697Z", + "start_time": "2024-11-26T04:57:47.300966Z" + } + }, "outputs": [], "source": [ "# This file is a part of PyPartMC licensed under the GNU General Public License v3\n", @@ -25,11 +30,76 @@ "# - https://github.com/open-atmos/PyPartMC/graphs/contributors" ] }, + { + "cell_type": "markdown", + "id": "491fc802", + "metadata": {}, + "source": [ + "#### Chamber Simulation Example from Barrel Study, refer to [Tian el al., 2017 (Aerosol Science and Technology)](https://doi.org/10.1080/02786826.2017.1311988)" + ] + }, + { + "cell_type": "markdown", + "id": "f4df6740", + "metadata": {}, + "source": [ + "#### Equations and parameters in this notebook\n", + "1. **Wall-loss treatment**\n", + "* Diffusional wall-loss\n", + " ##### $\\alpha^{D}_{\\mu}$ = $\\frac{D(R_{me,\\mu})A_D}{\\delta_DV}$\n", + "\n", + "* Sedimental wall-loss\n", + " ##### $\\alpha^{S}_{\\mu}$ = $\\frac{4\\pi \\rho R^{3}_{m, \\mu}D(R_{me,\\mu})A_S}{3kTV}$\n", + "\n", + "* Parameters:\n", + " - $D(R_{me,\\mu})$ $\\rm (m^2s^{-1})$: Diffusion coefficient for particle $\\mu$\n", + " - $A_D$ $\\rm (m^2)$: Diffusional depostion area\n", + " - Variable name: \"area_diffuse\"\n", + " - $A_S$ $\\rm (m^2)$: Sedimentation area\n", + " - Variable name: \"area_sedi\"\n", + " - V $\\rm (m^3)$: Volume of the chamber\n", + " - Variable name: \"chamber_vol\"\n", + " - $\\delta_D$ $(\\rm m)$: Diffusional boundary layer thickness\n", + " \n", + " - $\\delta_D$ = $k_D$ $\\left(\\frac{D}{D_0}\\right)^a$\n", + " - $k_D$: Chamber-specific parameter.\n", + " - Variable name: \"prefactor_BL\"\n", + " - Can be determined for each experimental setup\n", + " - $a$: 0.25, Theoretically determined coefficient, [Fuchs, N. A. (1964). Mechanics of Aerosols.Pergamon, New York].\n", + " - Variable name: \"exponent_BL\"\n", + " - It should be in the range of (1, 3).\n", + "\n", + "2. **Fractal Treatment**\n", + "\n", + " ##### $ N$ = $\\frac{1}{f}$ $\\left(\\frac{R_{\\rm geo}}{R_0}\\right)^{d_{\\rm f}}$\n", + "\n", + "* Parameters:\n", + " - $N$: Number of monomers in a fractal-like agglomerate\n", + " - $R_{\\rm geo}$ $(\\rm m)$: Particle geometric radius\n", + " - $f$: Volume filling factor\n", + " - Variable name: \"aero_data.vol_fill_factor\"\n", + " - For spherical primary particles, this can occupy as much as 74% of the available volume\n", + " - $R_0$ $(\\rm m)$: Radius of primary particles\n", + " - Variable name: \"aero_data.prime_radius\"\n", + " - $d_{\\rm f}$: Fractal dimension\n", + " - Variable name: \"aero_data.frac_dim\"\n", + "\n", + "* Note on Fractal Parameters:\n", + " - $f$, $R_0$ $(\\rm m)$: Can be estimated by SEM images\n", + " - $d_{\\rm f}$: Needs to be specified\n", + "\n" + ] + }, { "cell_type": "code", "execution_count": 2, "id": "4f8359c2", - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-26T04:57:47.331171Z", + "start_time": "2024-11-26T04:57:47.325296Z" + } + }, "outputs": [], "source": [ "import sys\n", @@ -46,9 +116,14 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 3, "id": "b494ea6e", - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-26T04:57:48.195912Z", + "start_time": "2024-11-26T04:57:47.390641Z" + } + }, "outputs": [], "source": [ "import numpy as np\n", @@ -60,25 +135,27 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "aa2c0567-2b75-47ba-bf6d-d5a0c22b5b83", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/user/devel/PyPartMC/PyPartMC/examples\n" - ] + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-26T04:57:48.214894Z", + "start_time": "2024-11-26T04:57:48.213477Z" } - ], + }, + "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 4, "id": "df8d1a84", - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-26T04:57:48.224403Z", + "start_time": "2024-11-26T04:57:48.221378Z" + } + }, "outputs": [], "source": [ "gas_data = ppmc.GasData((\"H2SO4\",\"HNO3\",\"HCl\",\"NH3\",\"NO\",\"NO2\", \"NO3\",\n", @@ -99,7 +176,12 @@ "cell_type": "code", "execution_count": 5, "id": "a2d7bad8", - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-26T04:57:48.232295Z", + "start_time": "2024-11-26T04:57:48.230550Z" + } + }, "outputs": [], "source": [ "env_state = ppmc.EnvState(\n", @@ -118,7 +200,12 @@ "cell_type": "code", "execution_count": 6, "id": "815283a0", - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-26T04:57:48.245408Z", + "start_time": "2024-11-26T04:57:48.237835Z" + } + }, "outputs": [], "source": [ "aero_data = ppmc.AeroData(\n", @@ -148,6 +235,10 @@ " )\n", ")\n", "\n", + "#Adjust the following variables for fractal treatment: \n", + "#For spherical particles, comment out the variables.\n", + "#aero_data.frac_dim: Should be in the range of (1,3). \n", + "#aero_data.vol_fill_factor: Set this as 1/(percent of the available volume).\n", "aero_data.frac_dim = 2.3\n", "aero_data.vol_fill_factor = 1.43\n", "aero_data.prime_radius = 4.5e-8" @@ -157,7 +248,12 @@ "cell_type": "code", "execution_count": 7, "id": "c822823d", - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-26T04:57:48.257813Z", + "start_time": "2024-11-26T04:57:48.254697Z" + } + }, "outputs": [], "source": [ "gas_state = ppmc.GasState(gas_data)\n", @@ -173,7 +269,11 @@ "cell_type": "code", "execution_count": 8, "id": "58706963", - "metadata": {}, + "metadata": { + "jupyter": { + "is_executing": true + } + }, "outputs": [], "source": [ "times = [0 * si.s]\n", @@ -257,12 +357,15 @@ " {\"rate\": [2.293e-5 / si.s]},\n", " {\"dist\": [[AERO_DIST_BACKGROUND]]},\n", " ],\n", + " \n", + " #Adjust the following variables for wall-loss treatment.\n", + " \n", " \"loss_function\": \"chamber\",\n", " \"chamber_vol\": 0.2093,\n", " \"area_diffuse\": 1.988,\n", " \"area_sedi\": 0.2463,\n", - " \"prefactor_BL\": 0.06,\n", - " \"exponent_BL\": 0.26,\n", + " \"prefactor_BL\": 0.06, \n", + " \"exponent_BL\": 0.26, \n", " },\n", ")" ] @@ -331,6 +434,13 @@ " 4.29e+06, 5.55e+06, 4.83e+06, 4.47e+06, 2.90e+06, 2.11e+06,\n", " 3.86e+06]\n", "\n", + "# Update \"mass_frac:\" with the desired aerosol type\n", + "# If \"mode_type\" is \"sampled\", use the data input in \"size_dist\"\n", + "# If \"mode_type\" is \"log_normal\", replace \"size_dist\" with the following:\n", + "# \"num_conc\": your_number concentration_data / ppmc.si.m**3,\n", + "# \"geom_mean_diam\": your_geomean_diam_data* ppmc.si.m,\n", + "# \"log10_geom_std_dev\": your_log10_geometric_std_dev_data,\n", + "\n", "AERO_DIST_INIT = [\n", " {\n", " \"test_mode\": {\n", @@ -357,7 +467,7 @@ { "data": { "text/plain": [ - "33597" + "33273" ] }, "execution_count": 13, @@ -368,7 +478,7 @@ "source": [ "run_part_opt = ppmc.RunPartOpt(\n", " {\n", - " \"output_prefix\": \"urban_plume\",\n", + " \"output_prefix\": \"chamber\",\n", " \"do_coagulation\": True,\n", " \"coag_kernel\": \"brown\",\n", " \"t_max\": 20160 * si.s,\n", @@ -480,7 +590,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "id": "9ab2aeed-c8f3-4683-82f0-2837d7191372", "metadata": {}, "outputs": [ @@ -488,7 +598,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Overwriting ref_aero_time.txt\n" + "Writing ref_aero_time.txt\n" ] } ], @@ -547,7 +657,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "id": "72077383-7d47-4265-ae8c-a1dcd10db293", "metadata": {}, "outputs": [ @@ -680,7 +790,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "id": "8e1b89e0", "metadata": {}, "outputs": [ @@ -695,11 +805,11 @@ " \n", " \n", " \n", - " 2024-08-25T20:29:54.047156\n", + " 2025-01-28T15:02:34.955650\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.7.1, https://matplotlib.org/\n", + " Matplotlib v3.8.0, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -731,16 +841,16 @@ " \n", " \n", + "\" clip-path=\"url(#pf4e171b614)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -777,11 +887,11 @@ " \n", " \n", + "\" clip-path=\"url(#pf4e171b614)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -844,11 +954,11 @@ " \n", " \n", + "\" clip-path=\"url(#pf4e171b614)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -921,11 +1031,11 @@ " \n", " \n", + "\" clip-path=\"url(#pf4e171b614)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -969,11 +1079,11 @@ " \n", " \n", + "\" clip-path=\"url(#pf4e171b614)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1175,23 +1285,23 @@ " \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", @@ -1229,18 +1339,18 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1249,18 +1359,18 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1269,18 +1379,18 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1289,18 +1399,18 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1622,105 +1732,96 @@ " \n", " \n", " \n", - " \n", + "\" clip-path=\"url(#pf4e171b614)\" style=\"fill: none; stroke: #008000; stroke-width: 1.5; stroke-linecap: square\"/>\n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1761,12 +1862,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "fc0a6a491ebc4ca0ac13b9932219e9a9", + "model_id": "9c26425d47b04adcad673cf0ae24cc09", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "HTML(value=\"./tmpw9k3fqw7.pdf
\")" + "HBox(children=(HTML(value=\"./tmptxihlvmw.pdf
\"), HTML(value…" ] }, "metadata": {}, @@ -1786,7 +1887,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "id": "faa1de28", "metadata": {}, "outputs": [ @@ -1801,11 +1902,11 @@ " \n", " \n", " \n", - " 2024-08-25T20:29:55.158079\n", + " 2025-01-28T15:02:35.362787\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.7.1, https://matplotlib.org/\n", + " Matplotlib v3.8.0, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -1837,16 +1938,16 @@ " \n", " \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1937,11 +2038,11 @@ " \n", " \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1999,11 +2100,11 @@ " \n", " \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2032,11 +2133,11 @@ " \n", " \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2084,173 +2185,173 @@ " \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", " \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", @@ -2511,16 +2612,16 @@ " \n", " \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n", " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2543,18 +2644,18 @@ " \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", @@ -2610,18 +2711,18 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2630,18 +2731,18 @@ " \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", @@ -2985,150 +3086,150 @@ "L 56.284813 155.638594 \n", "L 62.013613 155.638594 \n", "L 67.742413 155.638594 \n", - "L 73.471213 155.638594 \n", - "L 79.200013 155.638594 \n", + "L 73.471212 155.638594 \n", + "L 79.200012 155.638594 \n", "L 84.928813 155.638594 \n", "L 90.657613 155.638594 \n", "L 96.386413 155.638594 \n", "L 102.115213 155.638594 \n", - "L 107.844013 155.433526 \n", - "L 113.572813 155.310804 \n", - "L 119.301613 154.780424 \n", - "L 125.030413 151.243248 \n", - "L 130.759213 142.04375 \n", - "L 136.488013 126.130695 \n", - "L 142.216813 95.97098 \n", - "L 147.945613 65.664853 \n", - "L 153.674413 32.536742 \n", - "L 159.403213 23.638594 \n", - "L 165.132013 41.433854 \n", - "L 170.860813 77.749927 \n", - "L 176.589613 121.179169 \n", - "L 182.318413 146.342526 \n", - "L 188.047213 154.010683 \n", - "L 193.776013 155.213518 \n", - "L 199.504813 155.385321 \n", - "L 205.233613 155.498375 \n", - "L 210.962413 155.616102 \n", - "\" clip-path=\"url(#pf53fadc346)\" style=\"fill: none; stroke: #1f77b4; stroke-linecap: square\"/>\n", + "L 107.844013 155.514793 \n", + "L 113.572813 155.473796 \n", + "L 119.301613 154.487199 \n", + "L 125.030413 151.175343 \n", + "L 130.759213 142.850948 \n", + "L 136.488013 124.741571 \n", + "L 142.216813 96.831699 \n", + "L 147.945613 62.84505 \n", + "L 153.674413 37.633822 \n", + "L 159.403213 25.241375 \n", + "L 165.132013 43.219462 \n", + "L 170.860813 78.812021 \n", + "L 176.589613 121.063685 \n", + "L 182.318413 145.824008 \n", + "L 188.047213 153.856686 \n", + "L 193.776013 155.200207 \n", + "L 199.504813 155.401742 \n", + "L 205.233613 155.485595 \n", + "L 210.962413 155.615329 \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke: #1f77b4; stroke-linecap: square\"/>\n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", + "L 107.844013 155.556061 \n", + "L 113.572813 155.473796 \n", + "L 119.301613 154.857382 \n", + "L 125.030413 152.772278 \n", + "L 130.759213 145.937732 \n", + "L 136.488013 130.29224 \n", + "L 142.216813 106.093812 \n", + "L 147.945613 74.862948 \n", + "L 153.674413 50.862701 \n", + "L 159.403213 35.11816 \n", + "L 165.132013 48.155353 \n", + "L 170.860813 78.999605 \n", + "L 176.589613 119.613307 \n", + "L 182.318413 144.992928 \n", + "L 188.047213 153.72272 \n", + "L 193.776013 155.204322 \n", + "L 199.504813 155.404631 \n", + "L 205.233613 155.484316 \n", + "L 210.962413 155.61541 \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke: #ff7f0e; stroke-linecap: square\"/>\n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", + "L 119.301613 155.597397 \n", + "L 125.030413 155.412412 \n", + "L 130.759213 154.532737 \n", + "L 136.488013 150.58362 \n", + "L 142.216813 141.957597 \n", + "L 147.945613 127.209046 \n", + "L 153.674413 110.997435 \n", + "L 159.403213 94.589786 \n", + "L 165.132013 86.337841 \n", + "L 170.860813 93.605918 \n", + "L 176.589613 116.117543 \n", + "L 182.318413 140.195555 \n", + "L 188.047213 152.376095 \n", + "L 193.776013 155.126566 \n", + "L 199.504813 155.401647 \n", + "L 205.233613 155.499908 \n", + "L 210.962413 155.614267 \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke: #2ca02c; stroke-linecap: square\"/>\n", " \n", " \n", - " \n", + "L 119.426645 155.608302 \n", + "L 120.295899 155.615822 \n", + "L 121.135805 155.600046 \n", + "L 122.048 155.627445 \n", + "L 122.927929 155.593314 \n", + "L 123.870461 155.489239 \n", + "L 124.778586 155.404044 \n", + "L 125.654728 155.42508 \n", + "L 126.584135 155.363024 \n", + "L 127.48007 155.417191 \n", + "L 128.34486 155.178434 \n", + "L 129.2552 154.865526 \n", + "L 130.133404 154.89708 \n", + "L 131.051063 154.681462 \n", + "L 131.936076 154.197638 \n", + "L 132.790687 153.866323 \n", + "L 133.741625 153.393016 \n", + "L 134.597528 152.798753 \n", + "L 135.483026 152.199231 \n", + "L 136.394061 151.831104 \n", + "L 137.272911 151.18951 \n", + "L 138.173878 149.853733 \n", + "L 139.093567 147.697558 \n", + "L 139.980468 146.856124 \n", + "L 140.883561 145.331024 \n", + "L 141.755018 144.016283 \n", + "L 142.683974 141.439391 \n", + "L 143.57949 139.335805 \n", + "L 144.44389 137.021861 \n", + "L 145.35738 134.865685 \n", + "L 146.238514 132.446562 \n", + "L 147.125854 128.765287 \n", + "L 148.017701 127.397956 \n", + "L 148.94629 125.820267 \n", + "L 149.841465 122.40194 \n", + "L 150.705547 120.350944 \n", + "L 151.60138 115.880825 \n", + "L 152.524617 112.778036 \n", + "L 153.414817 110.358912 \n", + "L 154.301498 107.78202 \n", + "L 155.18395 103.732618 \n", + "L 156.086895 100.945367 \n", + "L 157.031499 98.841781 \n", + "L 157.988535 97.789988 \n", + "L 158.682902 95.160506 \n", + "L 159.57957 92.531024 \n", + "L 160.656789 88.323853 \n", + "L 161.486194 88.323853 \n", + "L 162.28884 89.375646 \n", + "L 163.25705 85.168474 \n", + "L 164.188989 83.064889 \n", + "L 165.087277 83.590785 \n", + "L 165.954259 83.590785 \n", + "L 166.792044 85.694371 \n", + "L 167.761512 86.220267 \n", + "L 168.694616 86.220267 \n", + "L 169.593986 89.901542 \n", + "L 170.461976 89.901542 \n", + "L 171.300703 93.582817 \n", + "L 172.244767 95.686403 \n", + "L 173.154315 100.945367 \n", + "L 174.031782 105.099948 \n", + "L 174.879353 107.887199 \n", + "L 175.813918 113.093574 \n", + "L 176.714645 116.406721 \n", + "L 177.583899 122.138992 \n", + "L 178.423805 126.293574 \n", + "L 179.336 129.659311 \n", + "L 180.311806 133.603534 \n", + "L 181.158461 137.284809 \n", + "L 182.066586 140.387598 \n", + "L 182.942728 144.016283 \n", + "L 183.872135 146.382817 \n", + "L 184.76807 148.381223 \n", + "L 185.63286 150.221861 \n", + "L 186.5432 151.257877 \n", + "L 187.421404 152.5621 \n", + "L 188.339063 153.350944 \n", + "L 189.224076 153.724331 \n", + "L 190.078687 154.087199 \n", + "L 191.029625 154.481622 \n", + "L 191.885528 154.728793 \n", + "L 192.771026 155.102179 \n", + "L 193.682061 155.156873 \n", + "L 194.560911 155.196841 \n", + "L 195.461878 155.310434 \n", + "L 196.381567 155.33147 \n", + "L 197.268468 155.456634 \n", + "L 198.171561 155.471359 \n", + "L 199.043018 155.461893 \n", + "L 199.971974 155.506594 \n", + "L 200.86749 155.516586 \n", + "L 201.73189 155.611405 \n", + "L 202.64538 155.509223 \n", + "L 203.526514 155.572857 \n", + "L 204.413854 155.531837 \n", + "L 205.340718 155.51343 \n", + "L 206.23429 155.614087 \n", + "L 207.129465 155.596838 \n", + "L 208.024981 155.610248 \n", + "L 208.919703 155.609775 \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke-dasharray: 3.7,1.6; stroke-dashoffset: 0; stroke: #2ca02c\"/>\n", " \n", " \n", " \n", + "L 130.759213 155.576857 \n", + "L 136.488013 155.147263 \n", + "L 142.216813 153.477802 \n", + "L 147.945613 150.140942 \n", + "L 153.674413 143.515053 \n", + "L 159.403213 135.159018 \n", + "L 165.132013 126.33334 \n", + "L 170.860813 122.864949 \n", + "L 176.589613 127.948593 \n", + "L 182.318413 139.143041 \n", + "L 188.047213 150.512277 \n", + "L 193.776013 154.83582 \n", + "L 199.504813 155.436181 \n", + "L 205.233613 155.536492 \n", + "L 210.962413 155.618714 \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke: #d62728; stroke-linecap: square\"/>\n", " \n", " \n", - " \n", + "L 131.936076 155.616454 \n", + "L 132.790687 155.482403 \n", + "L 133.741625 155.600046 \n", + "L 134.597528 155.489765 \n", + "L 135.483026 155.535518 \n", + "L 136.394061 155.365654 \n", + "L 137.272911 155.332522 \n", + "L 138.173878 155.219454 \n", + "L 139.093567 155.165287 \n", + "L 139.980468 154.655167 \n", + "L 140.883561 154.218673 \n", + "L 141.755018 154.260745 \n", + "L 142.683974 153.845287 \n", + "L 143.57949 153.403534 \n", + "L 144.44389 152.209749 \n", + "L 145.35738 151.673335 \n", + "L 146.238514 151.126403 \n", + "L 147.125854 150.221861 \n", + "L 148.017701 149.222657 \n", + "L 148.94629 148.749351 \n", + "L 149.841465 147.276841 \n", + "L 150.705547 146.961303 \n", + "L 151.60138 145.488793 \n", + "L 152.524617 144.226642 \n", + "L 153.414817 143.542976 \n", + "L 154.301498 141.071263 \n", + "L 155.18395 140.492777 \n", + "L 156.086895 138.021064 \n", + "L 157.031499 137.07445 \n", + "L 157.988535 136.495964 \n", + "L 158.682902 134.339789 \n", + "L 159.57957 133.866482 \n", + "L 160.656789 131.18441 \n", + "L 161.486194 129.186004 \n", + "L 162.28884 127.871263 \n", + "L 163.25705 124.347757 \n", + "L 164.188989 124.821064 \n", + "L 165.087277 123.97963 \n", + "L 165.954259 122.191582 \n", + "L 166.792044 120.719072 \n", + "L 167.761512 119.45692 \n", + "L 168.694616 119.193972 \n", + "L 169.593986 119.299152 \n", + "L 170.461976 117.879231 \n", + "L 171.300703 118.352538 \n", + "L 172.244767 119.193972 \n", + "L 173.154315 120.508713 \n", + "L 174.031782 121.244968 \n", + "L 174.879353 122.138992 \n", + "L 175.813918 123.97963 \n", + "L 176.714645 125.872857 \n", + "L 177.583899 127.608315 \n", + "L 178.423805 129.291183 \n", + "L 179.336 131.342179 \n", + "L 180.311806 135.128634 \n", + "L 181.158461 137.17963 \n", + "L 182.066586 139.493574 \n", + "L 182.942728 141.649749 \n", + "L 183.872135 143.858514 \n", + "L 184.76807 146.067279 \n", + "L 185.63286 147.855327 \n", + "L 186.5432 149.590785 \n", + "L 187.421404 150.710944 \n", + "L 188.339063 151.69963 \n", + "L 189.224076 152.393813 \n", + "L 190.078687 153.308873 \n", + "L 191.029625 153.77692 \n", + "L 191.885528 154.33963 \n", + "L 192.771026 154.849749 \n", + "L 193.682061 154.933893 \n", + "L 194.560911 155.091661 \n", + "L 195.461878 155.081144 \n", + "L 196.381567 155.217877 \n", + "L 197.268468 155.242594 \n", + "L 198.171561 155.42508 \n", + "L 199.043018 155.437701 \n", + "L 199.971974 155.441383 \n", + "L 200.86749 155.466626 \n", + "L 201.73189 155.550243 \n", + "L 202.64538 155.535518 \n", + "L 203.526514 155.546562 \n", + "L 204.413854 155.49292 \n", + "L 205.340718 155.583375 \n", + "L 206.23429 155.564442 \n", + "L 207.129465 155.553399 \n", + "L 208.024981 155.532889 \n", + "L 208.919703 155.580745 \n", + "\" clip-path=\"url(#pa140020681)\" style=\"fill: none; stroke-dasharray: 3.7,1.6; stroke-dashoffset: 0; stroke: #d62728\"/>\n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3744,12 +3845,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "46d65a88913d4fa69379eeca56bfcefb", + "model_id": "77a425a42eb147d09bf9f2ce1e10495a", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "HTML(value=\"./tmpgd8zupv1.pdf
\")" + "HBox(children=(HTML(value=\"./tmpa4ve8hoy.pdf
\"), HTML(value…" ] }, "metadata": {}, @@ -3799,7 +3900,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.2" + "version": "3.10.13" } }, "nbformat": 4,