{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Batchfitting of multiple datasets\n", "\n", "This notebook is a demonstration of how to batch fit multiple datasets using `refnx`. Batch fitting is essential for bulk analysis of hundreds or thousands of datasets. Such situations are becoming more common as faster instruments (such as those being built at the ESS) come online.\n", "This example is based on a deuterated polymer film that is gradually being swollen by an hydrogenous solvent. 314 datasets were acquired over a period of a couple of hours." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# some initial imports\n", "import time # for figuring out how long the fitting takes\n", "from multiprocessing import Pool # for doing the fitting in parallel\n", "from copy import deepcopy # for copying objects\n", "import glob # for listing all files with a certain pattern\n", "from tqdm import tqdm # progress bars\n", "from pathlib import Path # file path manipulation\n", "import matplotlib.pyplot as plt # graphing everything\n", "from natsort import natsorted # sort the files in alphanumeric order\n", "import numpy as np # all maths-wise things" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# grabs the data\n", "# it's been archived in the refnx-testdata repository.\n", "import zipfile # unzipping files\n", "import shutil # copying files\n", "import urllib.request # for retrieving URL\n", "\n", "url = \"https://github.com/refnx/refnx-testdata/archive/master.zip\"\n", "\n", "# download the refnx-test data repo as a zip, and write the zip file\n", "# to the current directory.\n", "with (\n", " urllib.request.urlopen(url, timeout=5) as response,\n", " open(\"master.zip\", \"wb\") as f,\n", "):\n", " shutil.copyfileobj(response, f)\n", "\n", "# extract all data from the zip file\n", "with zipfile.ZipFile(\"master.zip\") as zf:\n", " zf.extractall()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.1.62\n" ] } ], "source": [ "# the refnx imports\n", "import refnx\n", "from refnx.dataset import Data1D\n", "from refnx.analysis import Objective, CurveFitter\n", "from refnx.reflect import SLD, Slab, ReflectModel, Structure\n", "from refnx.dataset import ReflectDataset\n", "\n", "# we print out the version so that others can repeat our analysis\n", "print(refnx.version.version)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "314 refnx-testdata-master/data/reflect/batch/PLP0027325_0.dat\n" ] } ], "source": [ "# natsort is used for alphanumeric sort, but it's not essential\n", "# An alphanumeric sort typically ensures that the datasets are loaded in\n", "# the order in which they were run.\n", "pth = Path(\".\", \"refnx-testdata-master\", \"data\", \"reflect\", \"batch\", \"*.dat\")\n", "files = natsorted(list(glob.iglob(str(pth))))\n", "print(len(files), files[0])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "\"\"\"\n", "initial model setup\n", "\"\"\"\n", "\n", "# set up the SLD objects for each layer\n", "air = SLD(0.0 + 0.0j, name=\"air_sld\")\n", "polymer = SLD(6.14127029941648 + 0.0j, name=\"d-polymer\")\n", "sio2 = SLD(3.47 + 0.0j, name=\"native SiO2\")\n", "si = SLD(2.07 + 0.0j, name=\"Si\")\n", "\n", "# set up Slabs corresponding to each layer\n", "polymer_l = Slab(520, polymer, 8.0, name=\"polymer layer\")\n", "sio2_l = Slab(15.0, sio2, 5.0, name=\"sio2 layer\")\n", "si_l = Slab(0.0, si, 3.0, name=\"Si\")\n", "\n", "# SLD limits for polymer film\n", "# we allow the lower SLD bound to go low, as it's absorbing\n", "# hydrogenous solvent\n", "polymer.real.setp(vary=True, bounds=(0, 7.0))\n", "\n", "# limits for thickness and roughness of the layers\n", "polymer_l.thick.setp(vary=True, bounds=(200, 1020.0))\n", "polymer_l.rough.setp(vary=True, bounds=(2.0, 20.0))\n", "sio2_l.thick.setp(vary=True, bounds=(5.0, 10.0))\n", "sio2_l.rough.setp(vary=True, bounds=(2.0, 10.0))\n", "\n", "# set up the Structure object from the Slabs\n", "structure = air | polymer_l | sio2_l | si_l" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# make the reflectometry model\n", "model = ReflectModel(structure, scale=1.0, bkg=1e-10, dq=8.6, dq_type=\"constant\")\n", "model.scale.setp(vary=True, bounds=(0.5, 1.5))\n", "model.bkg.setp(vary=True, bounds=(1e-10, 1e-5))\n", "model.threads = 1" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "\"\"\"\n", "Create lists of all the objectives to fit\n", "\"\"\"\n", "\n", "filenames = []\n", "models = []\n", "objectives = []\n", "\n", "# go through the 314 files we need to fit\n", "for idx, file in enumerate(files):\n", " # load the data\n", " data = Data1D(data=file)\n", "\n", " # make an objective for each dataset. deepcopy is used so that all the\n", " # models are independent of each other\n", " objective = Objective(deepcopy(model), data)\n", "\n", " filenames.append(data.filename)\n", " models.append(objective.model)\n", " objectives.append(objective)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since all the objectives and curvefits are independent we can fit the datasets in parallel. To do this in Python one can use a [`multiprocessing.Pool`](https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool) object to map over all the datasets. Use of a `Pool` object requires us to create a `fit_an_objective` function in a separate Python file to fit each objective (this is because the function needs to be pickleable). The `tqdm` package can be used to display a progress bar." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 314/314 [00:21<00:00, 14.79it/s]\n" ] } ], "source": [ "from parallel_curvefitter import fit_an_objective\n", "\n", "\"\"\"\n", "# parallel_curvefitter.py\n", "\n", "def fit_an_objective(objective):\n", " # make the curvefitter and do the fit\n", " fitter = CurveFitter(objective)\n", " fitter.fit('differential_evolution', verbose=False, tol=0.05)\n", " return objective\n", "\"\"\"\n", "\n", "with Pool() as p:\n", " obj_out = list(p.map(fit_an_objective, tqdm(objectives)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We fitted all 314 datasets in ~22 seconds, which is 0.07 seconds per fit. If we had fitted in a serial manner this would have taken a lot longer." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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/sk2mINHCCGEEJJl0MEjhBBCCMkyKPAIIYQQQrIMCjxCCCGEkCyDAo8QQgghJMugwEshDz/8sNSrV09222036dChg3z88ceSi4wcOVJKlSoVdjnwwAMLnt+yZYtcfPHFUqVKFdlzzz2lb9++BePjspGZM2fK8ccfLzVr1jT74vXXXw97HsNmbrrpJqlRo4aUL19eunXrJsuXLw9b5tdff5XTTz/dNNCuXLmyDB48WDZv3iy5sH/OOuusQn9PPXr0yIn9M3r0aGnXrp2ZLFCtWjXp3bu3fP3112HLxPJ9Wrt2rRx33HGy++67m/VcffXVZqJPLuyfww8/vNDfz4UXXpgT+2fMmDHSsmVL873ApWPHjjJp0qSC53P5bycboMBLES+++KJceeWVpk3KwoULpVWrVnLMMcfITz/9JLlIs2bNzFBovcyePbvguSFDhshbb70lL730ksyYMUN++OEHOemkkyRb+euvv8zfA04A/LjrrrvkwQcflEceeUTmz58ve+yxh/nbwcFXgXhZunSpTJ06Vd5++20jis4//3zJhf0DIOjsv6cXXngh7Pls3T/4fuAHeN68eeazbd++Xbp37272Wazfp3///df8QG/btk3mzJkjTz/9tIwbN86cVOTC/gHnnXde2N8PvnO5sH9q1aold9xxhyxYsEA+/fRTOfLII+XEE08035Vc/9vJCjCLliSf9u3b51188cUF9//999+8mjVr5o0ePTrndv+IESPyWrVq5fvc77//nle2bNm8l156qeCxL7/8EvOS8+bOnZuX7eBzvvbaawX3d+7cmbfvvvvm/fe//w3bR+XKlct74YUXzP1ly5aZ133yyScFy0yaNCmvVKlSed9//31eNu8fMGjQoLwTTzwx8DW5tH9++ukn81lnzJgR8/fp3XffzStdunTehg0bCpYZM2ZMXsWKFfO2bt2al837Bxx22GF5l19+eeBrcmn/gL322ivviSee4N9OFkAHLwXg7AZnSAitKaVLlzb3586dK7kIQowIudWvX9+4K7D5AfYTzrLtfYXwbZ06dXJyX61evVo2bNgQtj8wzxghft0fuEbYsW3btgXLYHn8jcHxywWmT59uwkONGzeWiy66SDZu3FjwXC7tH8y5BnvvvXfM3ydct2jRQqpXr16wDBxizB5VJydb94/y/PPPyz777CPNmzeXYcOGyd9//13wXK7sH7hxEyZMMO4mQrX828l8ypT0BuQCv/zyi/ny2AcIgPtfffWV5BoQJ7Dx8WOMcMjNN98sXbp0kS+++MKImV133dX8ILv7Cs/lGvqZ/f529DlcQ9zYlClTxvyI5cI+Q3gWYaP9999fVq5cKddff7307NnT/DDvsssuObN/du7cKVdccYV06tTJCBUQy/cJ135/X/pcNu8fMGDAAKlbt6454Vy8eLFce+21Jk/v1VdfzYn9s2TJEiPokPKBPLvXXntNmjZtKp999hn/djIcCjyScvDjqyDBF4IPB9iJEyeaIgJC4uG0004ruA2nBX9TDRo0MK7eUUcdlTM7E7lmOEmy81lJ9P1j52Li7wfFTPi7wckC/o6yHZxoQ8zB3Xz55Zdl0KBBJt+OZD4M0aYAWP9wEtzqI9zfd999JdeBu9CoUSNZsWKF2R8Iaf/+++9hy+TqvtLPHOlvB9dusQ6q2FA5mov7DGF/fOfw95Qr++eSSy4xxSMffvihSZxXYvk+4drv70ufy+b94wdOOIH995PN+wcOb8OGDeXggw82VccoaHrggQf4t5MFUOCl6AuEL8/7778fFi7AfVjjuQ7aVeBsGWfO2E9ly5YN21cIlyBHLxf3FcKO+BGx9wdyf5A7pvsD1/gBR86M8sEHH5i/Mf2xyiXWrVtncvDw95Tt+wd1JxAvCKvhM+HvxSaW7xOuEaazRTAqTtE2A6G6bN4/fsDNAvbfT7buHz/wvdi6dWvO/+1kBSVd5ZErTJgwwVQ+jhs3zlT1nX/++XmVK1cOq8zKFa666qq86dOn561evTrvo48+yuvWrVvePvvsYyrcwIUXXphXp06dvA8++CDv008/zevYsaO5ZCubNm3KW7RokbngK3nvvfea299++615/o477jB/K2+88Ube4sWLTcXo/vvvn/fPP/8UrKNHjx55rVu3zps/f37e7Nmz8w444IC8/v3752X7/sFzQ4cONRWh+HuaNm1aXps2bczn37JlS9bvn4suuiivUqVK5vu0fv36gsvff/9dsEy079OOHTvymjdvnte9e/e8zz77LG/y5Ml5VatWzRs2bFhetu+fFStW5N1yyy1mv+DvB9+x+vXr53Xt2jUn9s91111nKorx2XFswX1Ul0+ZMiUv1/92sgEKvBTy0EMPmS/LrrvuatqmzJs3Ly8XOfXUU/Nq1Khh9sN+++1n7uNAq0C4/Oc//zHl+rvvvntenz59zEE5W/nwww+NcHEvaP+hrVJuvPHGvOrVq5uThKOOOirv66+/DlvHxo0bjWDZc889TfuGs88+24ifbN8/+KHGjwt+VNAOpG7dunnnnXdeoROnbN0/fvsFl7Fjx8b1fVqzZk1ez54988qXL29OtnAStn379rxs3z9r1641Ym7vvfc2362GDRvmXX311Xl//PFHTuyfc845x3xncCzGdwjHFhV3uf63kw2Uwj8l7SISQgghhJDEwRw8QgghhJAsgwKPEEIIISTLoMAjhBBCCMkyKPAIIYQQQrIMCjxCCCGEkCyDAo8QQgghJMugwCOEEEIIyTIo8AghhBBCsgwKPEJIiXL44YfLFVdcwf8FQghJIBR4hJCMYvr06VKqVCn5/fffU/q+I0eOlIMOOijuwe0YSv/NN9+Y+40aNZKZM2cmaQsJISQEBR4hhCSJL774QnbbbTcj7H788Uf59ttvpV27dtzfhJCkQ4FHCEkZf/31l5x55pmy5557So0aNeSee+4ptMyzzz4rbdu2lQoVKsi+++4rAwYMkJ9++sk8t2bNGjniiCPM7b322ss4eWeddZa5P3nyZOncubNUrlxZqlSpIr169ZKVK1cWrHfbtm1yySWXmPeF6Kpbt66MHj264Hk4gueee65UrVrVuG5HHnmkfP755+a5cePGyc0332zu4z1xwWPRmDNnjhx66KHm9uzZs6V169ZSvnz5Yu9HQgiJRpmoSxBCSIK4+uqrZcaMGfLGG29ItWrV5Prrr5eFCxeGhT63b98uo0aNksaNGxthd+WVVxoR9+6770rt2rXllVdekb59+8rXX39thJgKJohHLNuyZUvZvHmz3HTTTdKnTx/57LPPpHTp0vLggw/Km2++KRMnTpQ6derId999Zy5Kv379zLomTZoklSpVkkcffVSOOuooE1499dRTjRsHETlt2jSzPJYJAiITbNmyRfLy8sz9rVu3yr///mtuQ4i+/fbb/LsihCSPPEIISQGbNm3K23XXXfMmTpxY8NjGjRvzypcvn3f55ZcHvu6TTz7Jw6EKrwcffvihuf/bb79FfL+ff/7ZLLdkyRJz/9JLL8078sgj83bu3Flo2VmzZuVVrFgxb8uWLWGPN2jQIO/RRx81t0eMGJHXqlWrmD7r6tWr81atWpW311575U2aNMncP+CAA/Kef/55c3v9+vUxrYcQQooKQ7SEkJSAcCnCpB06dCh4bO+99zZOnc2CBQvk+OOPNy4bwrSHHXaYeXzt2rUR1798+XLp37+/1K9f3zh79erVC3sdXEC4eXi/yy67TKZMmVLwWoRe4fohtIvwsV5Wr14dFuaNFbz3zz//LLvvvrv06NFDypQpIz/88INxHvEcQs+EEJJMGKIlhKQNCLMec8wx5vL888+bfDgINNyHOIwERCHy6h5//HGpWbOmqWBt3rx5wevatGljBBtCsAiznnLKKdKtWzd5+eWXjbhDbh4qdIPCrbHSs2dPmTVrluzYscNcIBQRmkWIFgIS4P0IISSZUOARQlJCgwYNpGzZsjJ//nzjzoHffvvN5LipS/fVV1/Jxo0b5Y477jD5duDTTz8NW8+uu+5qriGaFLwGOXkQd126dCkoanCBs4d8OlxOPvlk4679+uuvRvxt2LDBOG3q/Lngfe33DOKJJ56Qf/75RwYNGiQnnXSSnHjiiTJ06FA58MADTREHIYSkAgo8QkhKgJM1ePBgU2gBJwtFFjfccIMpgFAg/CCkHnroIbnwwgtNYQMKLmzg0qGKFUUKxx57rCmMQEUt1vnYY48ZJw6u33XXXRf2unvvvdc8h0pWvOdLL71kQqVw6ODkdezYUXr37i133XWXaWuCkOo777xjCjVQ1QvhBwcQYd5atWqZ8HG5cuUKfc799tvPOHeLFy+W5557Tvbff39z+9prr5WGDRsmcQ8TQohFkbP3CCEkTlAoMXDgwLzdd989r3r16nl33XVX3mGHHRZWZDF+/Pi8evXq5ZUrVy6vY8eOeW+++aYplli0aFHBMrfcckvevvvum1eqVKm8QYMGmcemTp2a16RJE/O6li1b5k2fPt287rXXXjPPP/bYY3kHHXRQ3h577GEKKo466qi8hQsXFqzzzz//NIUYNWvWzCtbtmxe7dq1804//fS8tWvXmudRgNG3b9+8ypUrm/WOHTs28HPOnTs3r1atWub2d999Zz7vtm3b+PdCCEkZpfCPLfgIIYQQQkhmwypaQgghhJAsgwKPEEIIISTLoMAjhBBCCMkyKPAIIYQQQrIMCjxCCCGEkCyDAo8QQgghJMugwCOEEEIIyTIo8AghhBBCsgwKPEIIIYSQLIMCjxBCCCEky6DAI4QQQgiR7OL/AS/OVzZLU8xtAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# now process the output\n", "thickness = []\n", "sld = []\n", "for objective in obj_out:\n", " # grab the model from the objective\n", " model = objective.model\n", "\n", " # extract the thickness/sld parameter from the model structure\n", " # and append to the thickness/sld list\n", " thickness.append(model.structure[1].thick.value)\n", " sld.append(model.structure[1].sld.real.value)\n", "\n", "# make a fancy twin plot of the thickness and SLD vs dataset number\n", "fig, ax1 = plt.subplots()\n", "ax1.set_xlabel(\"dataset #\")\n", "ax1.set_ylabel(\"thickness /$\\\\AA$\")\n", "l_0 = ax1.plot(thickness, \"b\", label=\"thickness\")\n", "ax2 = ax1.twinx()\n", "l_1 = ax2.plot(sld, \"r\", label=\"sld\")\n", "ax2.set_ylabel(\"SLD /$10^{-6}\\\\AA^{-2}$\")\n", "\n", "# setup the legend\n", "lines = l_0 + l_1\n", "labels = [line.get_label() for line in lines]\n", "ax1.legend(lines, labels, loc=\"right\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we see an induction period during which the film thickness and SLD remains constant (even a possible loss of solvent?). After this period the the thickness grows rapidly before with the rate than slowing down. The SLD has a continuous decrease, but the decrease is not significantly faster during the period in which the thickness of the film grows rapidly." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.14.0" } }, "nbformat": 4, "nbformat_minor": 4 }