{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Calibration of the 9-Mythen detector at the Cristal beamline at Soleil\n", "\n", "Mythen detectors are 1D-strip detector sold by Dectris. \n", "On the Cristal beamline at Soleil, 9 of them are mounted on the goniometer. \n", "\n", "This notebook explains how to calibrate precisely their position (including the wavelength used) as function of the goniometer position.\n", "\n", "All input data are provided in a Nexus file wich contrains both the (approximate) energy, the goniometer positions (500 points have been measured) and the measured signal.\n", "\n", "As pyFAI is not made for 1D data, the Mythen detector will be considered as a 1x1280 image.\n", "\n", "We start by importing a whole bunch of modules:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "# use `widget` for better user experience; `inline` is for documentation generation" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from collections import OrderedDict\n", "from matplotlib import pyplot as plt\n", "import numpy\n", "import os\n", "import h5py\n", "from silx.resources import ExternalResources\n", "\n", "from pyFAI import goniometer\n", "from pyFAI.detectors import Detector\n", "from pyFAI.goniometer import ExtendedTransformation, GoniometerRefinement\n", "from pyFAI.control_points import ControlPoints\n", "from pyFAI.geometryRefinement import GeometryRefinement\n", "from pyFAI.gui import jupyter\n", "from pyFAI.units import hc\n", "from pyFAI.calibrant import get_calibrant\n", "from pyFAI.containers import Integrate1dResult\n", "\n", "import ipywidgets as widgets\n", "\n", "from scipy.signal import find_peaks_cwt\n", "from scipy.interpolate import interp1d\n", "from scipy.optimize import bisect, minimize\n", "from scipy.spatial import distance_matrix\n", "import time\n", "\n", "start_time = time.time()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "#Nota: Useful to configure a proxy if you are behind a firewall\n", "#os.environ[\"http_proxy\"] = \"http://proxy.company.fr:3128\"\n", "\n", "downloader = ExternalResources(\"detector_calibration\", \"http://www.silx.org/pub/pyFAI/gonio/\")\n", "mythen_ring_file = downloader.getfile(\"LaB6_17keV_att3_tth2C_24_01_2018_19-43-20_1555.nxs\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data file can be downoaded from:\n", "http://www.silx.org/pub/pyFAI/gonio/LaB6_17keV_att3_tth2C_24_01_2018_19-43-20_1555.nxs" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Positions: [90.00000001 89.79994445 89.5998889 89.39994445 89.19994445] ...\n" ] } ], "source": [ "#Open the Nexus file and retrieve the actual positions:\n", "\n", "h5 = h5py.File(mythen_ring_file, mode=\"r\")\n", "position = h5[\"/LaB6_17keV_att3_1555/scan_data/actuator_1_1\"][:]\n", "print(\"Positions: \", position[:5], \"...\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "data_01 (501, 5120)\n", "data_02 (501, 1280)\n", "data_03 (501, 1280)\n", "data_04 (501, 1280)\n", "data_05 (501, 1280)\n", "data_06 (501, 5120)\n", "data_07 (501, 1280)\n", "data_08 (501, 1280)\n", "data_09 (501, 1280)\n", "data_10 (501, 1280)\n", "data_11 (501, 1280)\n", "data_12 (501, 1280)\n", "['data_02', 'data_03', 'data_04', 'data_05', 'data_07', 'data_08', 'data_09', 'data_10', 'data_11', 'data_12']\n" ] } ], "source": [ "#Read all data\n", "\n", "data = {}\n", "ds_names = []\n", "for idx in range(1,13):\n", " name = \"data_%02i\"%idx\n", " ds = h5[\"/LaB6_17keV_att3_1555/scan_data/\"+name][:]\n", " print(name, ds.shape)\n", " if ds.shape[1]<2000:\n", " #Keep only the single modules\n", " data[name] = ds\n", " ds_names.append(name)\n", "\n", "print(ds_names)\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "#Define a Mythen-detector mounted vertically:\n", "\n", "class MythenV(Detector):\n", " \"Verical Mythen dtrip detector from Dectris\"\n", " aliases = [\"MythenV 1280\"]\n", " force_pixel = True\n", " MAX_SHAPE = (1280, 1)\n", "\n", " def __init__(self,pixel1=50e-6, pixel2=8e-3):\n", " super(MythenV, self).__init__(pixel1=pixel1, pixel2=pixel2)\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "data_02 MythenV 1280\n", "data_03 MythenV 1280\n", "data_04 MythenV 1280\n", "data_05 MythenV 1280\n", "data_07 MythenV 1280\n", "data_08 MythenV 1280\n", "data_09 MythenV 1280\n", "data_10 MythenV 1280\n", "data_11 MythenV 1280\n", "data_12 MythenV 1280\n" ] } ], "source": [ "#Define all modules as single detectors of class MythenV. \n", "# Each one has a mask defined from dummy-values in the dataset\n", "\n", "modules = {}\n", "for name, ds in data.items():\n", " one_module = MythenV()\n", " mask = ds[0]<0\n", " #discard the first 20 and last 20 pixels as their intensities are less reliable\n", " mask[:20] = True\n", " mask[-20:] = True\n", " one_module.mask = mask.reshape(-1,1)\n", " modules[name] = one_module\n", "\n", "for k,v in modules.items():\n", " print(k, v.name)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "15.9 ms ± 202 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n", "[[287.06072343 0.5 ]]\n" ] } ], "source": [ "# Define a peak-picking function based on the dataset-name and the frame_id:\n", "\n", "def peak_picking(module_name, frame_id, \n", " threshold=500):\n", " \"\"\"Peak-picking base on find_peaks_cwt from scipy plus \n", " second-order tailor exapention refinement for sub-pixel resolution.\n", " \n", " The half-pixel offset is accounted here, i.e pixel #0 has its center at 0.5\n", " \n", " \"\"\"\n", " module = modules[module_name]\n", " msk = module.mask.ravel()\n", " \n", " spectrum = data[module_name][frame_id]\n", " guess = find_peaks_cwt(spectrum, [20])\n", " \n", " valid = numpy.logical_and(numpy.logical_not(msk[guess]), \n", " spectrum[guess]>threshold)\n", " guess = guess[valid]\n", " \n", " #Based on maximum is f'(x) = 0 ~ f'(x0) + (x-x0)*(f''(x0))\n", " df = numpy.gradient(spectrum)\n", " d2f = numpy.gradient(df)\n", " bad = d2f==0\n", " d2f[bad] = 1e-10 #prevent devision by zero. Discared later on\n", " cor = df / d2f\n", " cor[abs(cor)>1] = 0\n", " cor[bad] = 0\n", " ref = guess - cor[guess] + 0.5 #half a pixel offset\n", " x = numpy.zeros_like(ref) + 0.5 #half a pixel offset\n", " return numpy.vstack((ref,x)).T\n", "\n", "%timeit peak_picking(ds_names[0], 93)\n", "print(peak_picking(ds_names[0], 93))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Energy (keV): 17.027082549190933 \n", "Wavelength (A): 7.281587910025816e-11\n", "LaB6 Calibrant with 109 reflections at wavelength 7.281587910025816e-11\n" ] } ], "source": [ "nrj = h5[\"/LaB6_17keV_att3_1555/CRISTAL/Monochromator/energy\"][0]\n", "wl = hc / nrj *1e-10\n", "print(\"Energy (keV): \",nrj, \"\\nWavelength (A): \",wl)\n", "\n", "LaB6 = get_calibrant(\"LaB6\")\n", "LaB6.wavelength = wl\n", "print(LaB6)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "#This cell defines the transformation of coordinates for a simple goniometer mounted vertically.\n", "\n", "trans = ExtendedTransformation(dist_expr=\"dist\", \n", " poni1_expr=\"poni1\", \n", " poni2_expr=\"poni2\", \n", " rot1_expr=\"rot1\", \n", " rot2_expr=\"pi*(offset+scale*angle)/180.\", \n", " rot3_expr=\"0.0\", \n", " wavelength_expr=\"hc/nrj*1e-10\", \n", " param_names=[\"dist\", \"poni1\", \"poni2\", \"rot1\", \"offset\", \"scale\", \"nrj\"], \n", " pos_names=[\"angle\"], \n", " constants={\"hc\": hc})" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Approximated offset for the first module: 82.79994445106844\n" ] } ], "source": [ "def get_position(idx):\n", " \"Returns the postion of the goniometer for the given frame_id\"\n", " return position[idx]\n", "\n", "#Approximate offset for the module #0 at 0°\n", "print(\"Approximated offset for the first module: \",get_position(36))" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":8: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "01bfe5c5237440bd945d0c20c2ef3fa8", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=4, description='module_id', max=9), IntSlider(value=250, description='fr…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#This interactive plot lets one visualize any spectra acquired by any module\n", "\n", "fig, ax = plt.subplots()\n", "line = ax.plot(data[ds_names[0]][250])[0]\n", "ligne = plt.Line2D(xdata=[640,640], ydata=[-500, 1000], figure=fig, linestyle=\"--\", color='red', axes=ax)\n", "ax.add_line(ligne)\n", "ax.set_title(\"spectrum\")\n", "fig.show()\n", "\n", "def update(module_id, frame_id):\n", " spectrum = data[ds_names[module_id]][frame_id]\n", " line.set_data(numpy.arange(spectrum.size), spectrum)\n", " ax.set_title(\"Module %i, Frame %i\"%(module_id, frame_id))\n", " \n", " fig.canvas.draw()\n", "\n", " \n", "interactive_plot = widgets.interactive(update, \n", " module_id=(0, len(data)-1), \n", " frame_id=(0, data[ds_names[0]].shape[0]-1))\n", "display(interactive_plot)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "data_02\n" ] } ], "source": [ "#Work with the first module corresponding to:\n", "name = ds_names[0]\n", "print(name)\n", "ds = data[name]\n", "module = modules[name]\n", "\n", "#Use the previous widget to select:\n", "## the index where the beam-center is in the middle of the module\n", "zero_pos = 36\n", "\n", "## The frame index where the first LaB6 peak enters the right-hand side of the spectrum\n", "peak_zero_start = 74\n", "\n", "## The frame index where this first LaB6 leaves the spectrum or the second LaB6 peak appears:\n", "peak_zero_end = 94\n", "\n", "# The frames between peak_zero_start and peak_zero_end will be used to calibrate roughly the goniometer \n", "# and used later for finer peak extraction" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GoniometerRefinement with 0 geometries labeled: .\n" ] } ], "source": [ "param0 = {\"dist\": 0.72, \n", " \"poni1\": 640*50e-6, \n", " \"poni2\": 4e-3, \n", " \"rot1\":0, \n", " \"offset\": -get_position(zero_pos), \n", " \"scale\":1, \n", " \"nrj\": nrj}\n", "\n", "#Lock enegy for now and a couple of other parameters\n", "bounds0 = {\"nrj\": (nrj, nrj),\n", " \"dist\": (0.71, 0.73),\n", " \"poni2\": (4e-3, 4e-3),\n", " \"rot1\": (0,0),\n", " \"scale\":(1,1), \n", " }\n", "\n", "gonioref0 = GoniometerRefinement(param0, \n", " get_position, \n", " trans, \n", " detector=module, \n", " wavelength=wl, \n", " bounds=bounds0\n", " )\n", "goniometers = {name: gonioref0} \n", "print(gonioref0)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GoniometerRefinement with 20 geometries labeled: data_02_0074, data_02_0075, data_02_0076, data_02_0077, data_02_0078, data_02_0079, data_02_0080, data_02_0081, data_02_0082, data_02_0083, data_02_0084, data_02_0085, data_02_0086, data_02_0087, data_02_0088, data_02_0089, data_02_0090, data_02_0091, data_02_0092, data_02_0093.\n", "Residual error before fit:\n", "6.737408475887519e-07\n" ] } ], "source": [ "# Extract the frames where only the peak zero from LaB6 is present.\n", "\n", "for i in range(peak_zero_start, peak_zero_end):\n", " cp = ControlPoints(calibrant=LaB6, wavelength=wl)\n", " peak = peak_picking(name, i)\n", " if len(peak)!=1: \n", " continue\n", " cp.append([peak[0]], ring=0)\n", " img = ds[i].reshape((-1,1)) #Images are vertical ... transpose the spectrum\n", " sg = gonioref0.new_geometry(\"%s_%04i\"%(name,i), \n", " image=img, \n", " metadata=i, \n", " control_points=cp, \n", " calibrant=LaB6)\n", " sg.geometry_refinement.data = numpy.array(cp.getList())\n", "\n", "print(gonioref0)\n", "print(\"Residual error before fit:\")\n", "print(gonioref0.chi2())" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cost function before refinement: 6.737408475887519e-07\n", "[ 7.20000000e-01 3.20000000e-02 4.00000000e-03 0.00000000e+00\n", " -8.27999445e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 2.490988846910722e-11\n", " x: [ 7.200e-01 3.141e-02 4.000e-03 0.000e+00 -8.280e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [ 1.584e-07 2.919e-08 nan nan 3.427e-11\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 2.490988846910722e-11\n", "GonioParam(dist=0.719994724358983, poni1=0.031408577292064206, poni2=0.004, rot1=0.0, offset=-82.79995188659902, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032 --> 0.031408577292064206\n" ] }, { "data": { "text/plain": [ "array([ 7.19994724e-01, 3.14085773e-02, 4.00000000e-03, 0.00000000e+00,\n", " -8.27999519e+01, 1.00000000e+00, 1.70270825e+01])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#First refinement:\n", "gonioref0.refine2()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Number of peaks found and used for refinement\n", "1203\n", "Residual error before fitting: 3.118662178645908e-06\n" ] } ], "source": [ "#Here we extract all spectra for peaks,\n", "# If there are as many peaks as expected from the theoritical LaB6. perform the assignment.\n", "\n", "#Peaks from LaB6:\n", "tths = LaB6.get_2th()\n", "\n", "for i in range(peak_zero_end, ds.shape[0]):\n", " peak = peak_picking(name, i)\n", " ai=gonioref0.get_ai(get_position(i))\n", " tth = ai.array_from_unit(unit=\"2th_rad\", scale=False)\n", " tth_low = tth[20]\n", " tth_hi = tth[-20]\n", " ttmin, ttmax = min(tth_low, tth_hi), max(tth_low, tth_hi)\n", " valid_peaks = numpy.logical_and(ttmin<=tths, tths 0.7230953424558498\n" ] }, { "data": { "text/plain": [ "array([ 7.23095342e-01, 3.18453703e-02, 4.00000000e-03, 0.00000000e+00,\n", " -8.27999466e+01, 1.00000000e+00, 1.70270825e+01])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonioref0.refine2()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cost function before refinement: 2.7342490266360614e-06\n", "[ 7.23095342e-01 3.18453703e-02 4.00000000e-03 0.00000000e+00\n", " -8.27999466e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 2.689172533753603e-06\n", " x: [ 7.231e-01 3.205e-02 3.985e-03 1.095e-05 -8.280e+01\n", " 9.994e-01 1.703e+01]\n", " nit: 4\n", " jac: [-5.145e-07 -1.241e-07 5.957e-07 -4.287e-07 -9.292e-10\n", " -8.539e-08 nan]\n", " nfev: 28\n", " njev: 4\n", "Cost function after refinement: 2.689172533753603e-06\n", "GonioParam(dist=0.7230962441248261, poni1=0.032053700795884155, poni2=0.003984854880653816, rot1=1.0947770172731982e-05, offset=-82.79994398859087, scale=0.9994150576472143, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 1.0 --> 0.9994150576472143\n" ] }, { "data": { "text/plain": [ "array([ 7.23096244e-01, 3.20537008e-02, 3.98485488e-03, 1.09477702e-05,\n", " -8.27999440e+01, 9.99415058e-01, 1.70270825e+01])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonioref0.set_bounds(\"poni1\", -1, 1)\n", "gonioref0.set_bounds(\"poni2\", -1, 1)\n", "gonioref0.set_bounds(\"rot1\", -1, 1)\n", "gonioref0.set_bounds(\"scale\", 0.9, 1.1)\n", "gonioref0.refine2()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'data_02': (array([9.50000113e-04, 2.85000034e-03, 4.75000057e-03, ...,\n", " 9.49952613e+01, 9.49971613e+01, 9.49990613e+01]), array([0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,\n", " 1.27158634e+08, 1.31904151e+08, 1.31268034e+08]))}\n" ] } ], "source": [ "# Perform the azimuthal intgration of all data for the first module:\n", "\n", "mg = gonioref0.get_mg(position)\n", "mg.radial_range = (0, 95)\n", "images = [i.reshape(-1, 1) for i in ds]\n", "res_mg = mg.integrate1d(images, 50000)\n", "results={name: res_mg}\n", "print(results)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":6: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " p.figure.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the integrated pattern vs expected peak positions:\n", "\n", "LaB6_new = get_calibrant(\"LaB6\")\n", "LaB6_new.wavelength = hc/gonioref0.param[-1]*1e-10\n", "p = jupyter.plot1d(res_mg, calibrant=LaB6_new)\n", "p.figure.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "#Peak profile function based on a bilinear interpolations: \n", "\n", "def calc_fwhm(integrate_result, calibrant, tth_min=None, tth_max=None):\n", " \"calculate the tth position and FWHM for each peak\"\n", " delta = integrate_result.intensity[1:] - integrate_result.intensity[:-1]\n", " maxima = numpy.where(numpy.logical_and(delta[:-1]>0, delta[1:]<0))[0]\n", " minima = numpy.where(numpy.logical_and(delta[:-1]<0, delta[1:]>0))[0]\n", " maxima += 1\n", " minima += 1\n", " tth = []\n", " FWHM = []\n", " if tth_min is None:\n", " tth_min = integrate_result.radial[0]\n", " if tth_max is None:\n", " tth_max = integrate_result.radial[-1]\n", " for tth_rad in calibrant.get_2th():\n", " tth_deg = tth_rad*integrate_result.unit.scale\n", " if (tth_deg<=tth_min) or (tth_deg>=tth_max):\n", " continue\n", " idx_theo = abs(integrate_result.radial-tth_deg).argmin()\n", " id0_max = abs(maxima-idx_theo).argmin()\n", " id0_min = abs(minima-idx_theo).argmin()\n", " I_max = integrate_result.intensity[maxima[id0_max]]\n", " I_min = integrate_result.intensity[minima[id0_min]]\n", " tth_maxi = integrate_result.radial[maxima[id0_max]]\n", " I_thres = (I_max + I_min)/2.0\n", " if minima[id0_min]>maxima[id0_max]:\n", " if id0_min == 0:\n", " min_lo = integrate_result.radial[0]\n", " else:\n", " min_lo = integrate_result.radial[minima[id0_min-1]]\n", " min_hi = integrate_result.radial[minima[id0_min]]\n", " else:\n", " if id0_min == len(minima) -1:\n", " min_hi = integrate_result.radial[-1]\n", " else:\n", " min_hi = integrate_result.radial[minima[id0_min+1]]\n", " min_lo = integrate_result.radial[minima[id0_min]]\n", " \n", " f = interp1d(integrate_result.radial, integrate_result.intensity-I_thres)\n", " try:\n", " tth_lo = bisect(f, min_lo, tth_maxi)\n", " tth_hi = bisect(f, tth_maxi, min_hi)\n", " except:\n", " pass\n", " else:\n", " FWHM.append(tth_hi-tth_lo)\n", " tth.append(tth_deg)\n", " return tth, FWHM\n", " \n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "# Peak error:\n", "\n", "def calc_peak_error(integrate_result, calibrant, tth_min=10, tth_max=95):\n", " \"calculate the tth position and FWHM for each peak\"\n", " peaks = find_peaks_cwt(integrate_result.intensity, [10])\n", " df = numpy.gradient(integrate_result.intensity)\n", " d2f = numpy.gradient(df)\n", " bad = d2f==0\n", " d2f[bad] = 1e-10\n", " cor = df / d2f\n", " print((abs(cor)>1).sum())\n", " cor[abs(cor)>1] = 0\n", " cor[bad] = 0\n", " got = numpy.interp(peaks-cor[peaks], \n", " numpy.arange(len(integrate_result.radial)), \n", " integrate_result.radial)\n", " mask = numpy.logical_and(got>=tth_min,\n", " got<=tth_max)\n", " got = got[mask]\n", " target = numpy.array(calibrant.get_2th())*integrate_result.unit.scale\n", " mask = numpy.logical_and(target>=tth_min,\n", " target<=tth_max)\n", " target = target[mask]\n", " print(len(got), len(target))\n", " d2 = distance_matrix(target.reshape(-1, 1 ),\n", " got.reshape(-1, 1), p=1)\n", " \n", " return target, target-got[d2.argmin(axis=-1)]\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "29218\n", "81 60\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":7: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(*calc_fwhm(res_mg, LaB6_new), \"o\", label=\"FWHM\")\n", "ax.plot(*calc_peak_error(res_mg, LaB6_new), \"o\", label=\"offset\")\n", "ax.set_title(\"Peak shape & error as function of the angle\")\n", "ax.set_xlabel(res_mg.unit.label)\n", "ax.legend()\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Module 1 \n", "\n", "We can apply the same procdure for the second module ... and try to rationalize the procedure." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "module_id = 1\n", "name = ds_names[module_id]\n", "ds = data[name]\n", "zero_pos = 64\n", "frame_start = 103\n", "frame_stop = 123" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GoniometerRefinement with 0 geometries labeled: .\n" ] } ], "source": [ "param1 = {\"dist\": 0.72, \n", " \"poni1\": 640*50e-6, \n", " \"poni2\": 4e-3, \n", " \"rot1\":0, \n", " \"offset\": -get_position(zero_pos), \n", " \"scale\":1, \n", " \"nrj\": nrj}\n", "\n", "#Lock enegy for now and a couple of other parameters\n", "bounds1 = {\"nrj\": (nrj, nrj),\n", " \"dist\": (0.7, 0.8),\n", " \"poni2\": (4e-3, 4e-3),\n", " \"rot1\": (0,0),\n", " \"scale\":(1,1), }\n", "\n", "gonioref1 = GoniometerRefinement(param1, \n", " get_position, \n", " trans, \n", " detector=modules[name], \n", " wavelength=wl, \n", " bounds=bounds1\n", " )\n", "print(gonioref1)\n", "goniometers[name]=gonioref1" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GoniometerRefinement with 20 geometries labeled: data_03_0103, data_03_0104, data_03_0105, data_03_0106, data_03_0107, data_03_0108, data_03_0109, data_03_0110, data_03_0111, data_03_0112, data_03_0113, data_03_0114, data_03_0115, data_03_0116, data_03_0117, data_03_0118, data_03_0119, data_03_0120, data_03_0121, data_03_0122.\n", "1.4524664758918898e-06\n" ] } ], "source": [ "#Exctract frames with peak#0\n", "for i in range(frame_start, frame_stop):\n", " cp = ControlPoints(calibrant=LaB6, wavelength=wl)\n", " peak = peak_picking(name, i)\n", " if len(peak)!=1: \n", " continue\n", " cp.append([peak[0]], ring=0)\n", " img = (ds[i]).reshape((-1,1))\n", " sg = gonioref1.new_geometry(\"%s_%04i\"%(name,i), \n", " image=img, \n", " metadata=i, \n", " control_points=cp, \n", " calibrant=LaB6)\n", " sg.geometry_refinement.data = numpy.array(cp.getList())\n", "\n", "print(gonioref1)\n", "print(gonioref1.chi2())" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cost function before refinement: 1.4524664758918898e-06\n", "[ 7.20000000e-01 3.20000000e-02 4.00000000e-03 0.00000000e+00\n", " -7.72000000e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 2.343186419587841e-11\n", " x: [ 7.200e-01 3.287e-02 4.000e-03 0.000e+00 -7.720e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [ 1.374e-07 1.035e-07 nan nan 9.897e-10\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 2.343186419587841e-11\n", "GonioParam(dist=0.7200063780234879, poni1=0.03286839545435715, poni2=0.004, rot1=0.0, offset=-77.19998908851599, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032 --> 0.03286839545435715\n" ] }, { "data": { "text/plain": [ "array([ 7.20006378e-01, 3.28683955e-02, 4.00000000e-03, 0.00000000e+00,\n", " -7.71999891e+01, 1.00000000e+00, 1.70270825e+01])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonioref1.refine2()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Number of peaks found and used for refinement\n", "1183\n", "Residual error before fitting: 6.334637851253146e-07\n" ] } ], "source": [ "#Exctract all frames with peak>0\n", "tths = LaB6.get_2th()\n", "#print(tths)\n", "for i in range(frame_stop, ds.shape[0]):\n", " frame_name = \"%s_%04i\"%(name, i)\n", " if frame_name in gonioref1.single_geometries:\n", " continue\n", " peak = peak_picking(name, i)\n", " ai=gonioref1.get_ai(get_position(i))\n", " tth = ai.array_from_unit(unit=\"2th_rad\", scale=False)\n", " tth_low = tth[20]\n", " tth_hi = tth[-20]\n", " ttmin, ttmax = min(tth_low, tth_hi), max(tth_low, tth_hi)\n", " valid_peaks = numpy.logical_and(ttmin<=tths, tths0: \n", " cp = ControlPoints(calibrant=LaB6, wavelength=wl)\n", " #revert the order of assignment if needed !!\n", " if tth_hi < tth_low:\n", " peak = peak[-1::-1]\n", " for p, r in zip(peak, numpy.where(valid_peaks)[0]):\n", " cp.append([p], ring=r)\n", " img = ds[i].reshape((-1,1))\n", " sg = gonioref1.new_geometry(frame_name, \n", " image=img, \n", " metadata=i, \n", " control_points=cp, \n", " calibrant=LaB6)\n", " sg.geometry_refinement.data = numpy.array(cp.getList())\n", " #print(frame_name, len(sg.geometry_refinement.data))\n", "\n", "print(\" Number of peaks found and used for refinement\")\n", "print(sum([len(sg.geometry_refinement.data) for sg in gonioref1.single_geometries.values()]))\n", "print(\"Residual error before fitting: \", gonioref1.chi2())" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cost function before refinement: 6.334637851253146e-07\n", "[ 7.20006378e-01 3.28683955e-02 4.00000000e-03 0.00000000e+00\n", " -7.71999891e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 1.3797258269103233e-07\n", " x: [ 7.200e-01 3.338e-02 4.000e-03 0.000e+00 -7.720e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [-4.626e-07 2.408e-08 nan nan 1.426e-11\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 1.3797258269103233e-07\n", "GonioParam(dist=0.7200063394923231, poni1=0.033375469747964855, poni2=0.004, rot1=0.0, offset=-77.19998271240225, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.03286839545435715 --> 0.033375469747964855\n", "Cost function before refinement: 1.3797258269103233e-07\n", "[ 7.20006339e-01 3.33754697e-02 4.00000000e-03 0.00000000e+00\n", " -7.71999827e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 8.82850324363492e-10\n", " x: [ 7.207e-01 3.368e-02 4.058e-03 -4.449e-05 -7.720e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 13\n", " jac: [ 6.561e-08 6.554e-07 -1.755e-07 1.262e-07 7.935e-09\n", " 2.914e-07 nan]\n", " nfev: 91\n", " njev: 13\n", "Cost function after refinement: 8.82850324363492e-10\n", "GonioParam(dist=0.7206820726599381, poni1=0.0336782330159447, poni2=0.004058010681093319, rot1=-4.44855658960725e-05, offset=-77.19997879322948, scale=0.9989672333400683, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 1.0 --> 0.9989672333400683\n" ] }, { "data": { "text/plain": [ "array([ 7.20682073e-01, 3.36782330e-02, 4.05801068e-03, -4.44855659e-05,\n", " -7.71999788e+01, 9.98967233e-01, 1.70270825e+01])" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonioref1.refine2()\n", "gonioref1.set_bounds(\"poni1\", -1, 1)\n", "gonioref1.set_bounds(\"poni2\", -1, 1)\n", "gonioref1.set_bounds(\"rot1\", -1, 1)\n", "gonioref1.set_bounds(\"scale\", 0.9, 1.1)\n", "gonioref1.refine2()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "scrolled": true }, "outputs": [], "source": [ "mg1 = gonioref1.get_mg(position)\n", "mg1.radial_range = (0, 95)\n", "images = [i.reshape(-1, 1) for i in data[name]]\n", "res_mg1 = mg1.integrate1d(images, 50000)\n", "results[name] = res_mg1" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":4: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " p.figure.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "LaB6_new = get_calibrant(\"LaB6\")\n", "LaB6_new.wavelength = hc/gonioref1.param[-1]*1e-10\n", "p = jupyter.plot1d(res_mg1, calibrant=LaB6_new)\n", "p.figure.show()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "27712\n", "72 53\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":7: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(*calc_fwhm(res_mg1, LaB6_new, 10, 88), \"o\", label=\"FWHM\")\n", "ax.plot(*calc_peak_error(res_mg1, LaB6_new, 10, 88), \"o\", label=\"error\")\n", "ax.set_title(\"Peak shape & error as function of the angle\")\n", "ax.set_xlabel(res_mg.unit.label)\n", "ax.legend()\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## All other Modules\n", "\n", "We define now an automatic procedure for any module. \n", "The detection used 3 parameter visually extracted from the Figure1: \n", "\n", "* zero_pos: the frame where the beam-stop is in the center of the module\n", "* frame_start: the frame where the first peak of LaB6 appears (positive)\n", "* frame_stop: the frame where the second peak of LaB6 appears (positive)\n", "\n", "This is enough for boot-strapping the goniometer configuration." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "def add_module(name,\n", " zero_pos,\n", " frame_start,\n", " frame_stop,\n", " ):\n", " ds = data[name]\n", " param = {\"dist\": 0.72, \n", " \"poni1\": 640*50e-6, \n", " \"poni2\": 4e-3, \n", " \"rot1\":0, \n", " \"offset\": -get_position(zero_pos), \n", " \"scale\":1, \n", " \"nrj\": nrj}\n", "\n", " #Lock enegy for now and a couple of other parameters\n", " bounds = {\"nrj\": (nrj, nrj),\n", " \"dist\": (0.7, 0.8),\n", " \"poni2\": (4e-3, 4e-3),\n", " \"rot1\": (0,0),\n", " \"scale\": (1,1)}\n", "\n", " gonioref = GoniometerRefinement(param, \n", " get_position, \n", " trans, \n", " detector=modules[name], \n", " wavelength=wl, \n", " bounds=bounds\n", " )\n", " goniometers[name] = gonioref\n", " \n", " for i in range(frame_start, frame_stop):\n", " cp = ControlPoints(calibrant=LaB6, wavelength=wl)\n", " peak = peak_picking(name, i)\n", " if len(peak)!=1: \n", " continue\n", " cp.append([peak[0]], ring=0)\n", " img = (ds[i]).reshape((-1,1))\n", " sg = gonioref.new_geometry(\"%s_%04i\"%(name, i), \n", " image=img, \n", " metadata=i, \n", " control_points=cp, \n", " calibrant=LaB6)\n", " sg.geometry_refinement.data = numpy.array(cp.getList())\n", "\n", " print(gonioref.chi2())\n", " gonioref.refine2()\n", " \n", " tths = LaB6.get_2th()\n", " #print(tths)\n", " for i in range(frame_stop, ds.shape[0]):\n", " frame_name = \"%s_%04i\"%(name, i)\n", " if frame_name in gonioref.single_geometries:\n", " continue\n", " peak = peak_picking(name, i)\n", " ai=gonioref.get_ai(get_position(i))\n", " tth = ai.array_from_unit(unit=\"2th_rad\", scale=False)\n", " tth_low = tth[20]\n", " tth_hi = tth[-20]\n", " ttmin, ttmax = min(tth_low, tth_hi), max(tth_low, tth_hi)\n", " valid_peaks = numpy.logical_and(ttmin<=tths, tths0: \n", " cp = ControlPoints(calibrant=LaB6, wavelength=wl)\n", " #revert the order of assignment if needed !!\n", " if tth_hi < tth_low:\n", " peak = peak[-1::-1]\n", "\n", " for p, r in zip(peak, numpy.where(valid_peaks)[0]):\n", " cp.append([p], ring=r)\n", " img = (ds[i]).reshape((-1,1))\n", " sg = gonioref.new_geometry(frame_name, \n", " image=img, \n", " metadata=i, \n", " control_points=cp, \n", " calibrant=LaB6)\n", " sg.geometry_refinement.data = numpy.array(cp.getList())\n", " #print(frame_name, len(sg.geometry_refinement.data))\n", "\n", "\n", " print(\" Number of peaks found and used for refinement\")\n", " print(sum([len(sg.geometry_refinement.data) for sg in gonioref.single_geometries.values()]))\n", "\n", " gonioref.refine2()\n", " gonioref.set_bounds(\"poni1\", -1, 1)\n", " gonioref.set_bounds(\"poni2\", -1, 1)\n", " gonioref.set_bounds(\"rot1\", -1, 1)\n", " gonioref.set_bounds(\"scale\", 0.9, 1.1)\n", " gonioref.refine2()\n", " \n", " mg = gonioref.get_mg(position)\n", " mg.radial_range = (0, 95)\n", " images = [i.reshape(-1, 1) for i in ds]\n", " res_mg = mg.integrate1d(images, 50000)\n", " results[name] = res_mg\n", " \n", " LaB6_new = get_calibrant(\"LaB6\")\n", " LaB6_new.wavelength = hc/gonioref.param[-1]*1e-10\n", " p = jupyter.plot1d(res_mg, calibrant=LaB6_new)\n", " p.figure.show()\n", " \n", " fig, ax = plt.subplots()\n", " ax.plot(*calc_fwhm(res_mg, LaB6_new), \"o\", label=\"FWHM\")\n", " ax.plot(*calc_peak_error(res_mg, LaB6_new, 10, 89), \"o\", label=\"error\")\n", " ax.set_title(\"Peak shape & error as function of the angle\")\n", " ax.set_xlabel(res_mg.unit.label)\n", " ax.legend()\n", " fig.show()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8.40633024472856e-06\n", "Cost function before refinement: 8.40633024472856e-06\n", "[ 7.20000000e-01 3.20000000e-02 4.00000000e-03 0.00000000e+00\n", " -7.15999445e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 1.8085719501136514e-11\n", " x: [ 7.200e-01 3.409e-02 4.000e-03 0.000e+00 -7.160e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [ 4.574e-08 8.170e-07 nan nan 9.916e-09\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 1.8085719501136514e-11\n", "GonioParam(dist=0.7200189604924729, poni1=0.034089307266644636, poni2=0.004, rot1=0.0, offset=-71.59991818231154, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032 --> 0.034089307266644636\n", " Number of peaks found and used for refinement\n", "1093\n", "Cost function before refinement: 5.557202432497131e-07\n", "[ 7.20018960e-01 3.40893073e-02 4.00000000e-03 0.00000000e+00\n", " -7.15999182e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 1.196098457275966e-07\n", " x: [ 7.200e-01 3.457e-02 4.000e-03 0.000e+00 -7.160e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [-9.442e-07 2.309e-08 nan nan -1.687e-11\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 1.196098457275966e-07\n", "GonioParam(dist=0.7200183446946208, poni1=0.03456504217138477, poni2=0.004, rot1=0.0, offset=-71.5999122000852, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.034089307266644636 --> 0.03456504217138477\n", "Cost function before refinement: 1.196098457275966e-07\n", "[ 7.20018345e-01 3.45650422e-02 4.00000000e-03 0.00000000e+00\n", " -7.15999122e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 6.570414630415977e-10\n", " x: [ 7.207e-01 3.482e-02 4.043e-03 -3.377e-05 -7.160e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 10\n", " jac: [ 2.182e-08 1.739e-08 -1.608e-07 1.158e-07 -1.824e-10\n", " 8.080e-09 nan]\n", " nfev: 70\n", " njev: 10\n", "Cost function after refinement: 6.570414630415977e-10\n", "GonioParam(dist=0.7206864291995188, poni1=0.03482474083000964, poni2=0.004043166292632227, rot1=-3.376839659234428e-05, offset=-71.59990881340703, scale=0.9989828730377052, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 1.0 --> 0.9989828730377052\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":99: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " p.figure.show()\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "25659\n", "71 54\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":107: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "add_module(ds_names[2],\n", " 92,\n", " 131,\n", " 151)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.0825377842185958e-06\n", "Cost function before refinement: 1.0825377842185958e-06\n", "[ 7.20000000e-01 3.20000000e-02 4.00000000e-03 0.00000000e+00\n", " -6.57999444e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 2.4921937668954493e-11\n", " x: [ 7.200e-01 3.275e-02 4.000e-03 0.000e+00 -6.580e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [-8.600e-08 7.994e-08 nan nan 6.189e-10\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 2.4921937668954493e-11\n", "GonioParam(dist=0.7200067449756247, poni1=0.03274966118487238, poni2=0.004, rot1=0.0, offset=-65.7999350248995, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032 --> 0.03274966118487238\n", " Number of peaks found and used for refinement\n", "978\n", "Cost function before refinement: 4.7051020473788555e-07\n", "[ 7.20006745e-01 3.27496612e-02 4.00000000e-03 0.00000000e+00\n", " -6.57999350e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 9.923942799045285e-08\n", " x: [ 7.205e-01 3.319e-02 4.000e-03 0.000e+00 -6.580e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 7\n", " jac: [-1.340e-09 -9.660e-12 nan nan -3.958e-10\n", " nan nan]\n", " nfev: 29\n", " njev: 7\n", "Cost function after refinement: 9.923942799045285e-08\n", "GonioParam(dist=0.7204818160598766, poni1=0.0331886324835486, poni2=0.004, rot1=0.0, offset=-65.79992934734076, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: dist (0) 0.7200067449756247 --> 0.7204818160598766\n", "Cost function before refinement: 9.923942799045285e-08\n", "[ 7.20481816e-01 3.31886325e-02 4.00000000e-03 0.00000000e+00\n", " -6.57999293e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 5.124872429526667e-10\n", " x: [ 7.205e-01 3.341e-02 3.978e-03 1.591e-05 -6.580e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 5\n", " jac: [-5.053e-07 -5.371e-09 -1.298e-07 9.555e-08 -4.364e-10\n", " 2.566e-09 nan]\n", " nfev: 36\n", " njev: 5\n", "Cost function after refinement: 5.124872429526667e-10\n", "GonioParam(dist=0.7204829252945651, poni1=0.03340994866310485, poni2=0.003977911642230838, rot1=1.5909826714569855e-05, offset=-65.79992655969455, scale=0.9989991199295621, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 1.0 --> 0.9989991199295621\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":99: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " p.figure.show()\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "24025\n", "64 54\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":107: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "add_module(ds_names[3],\n", " 121,\n", " 159,\n", " 179)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.319300124385771e-07\n", "Cost function before refinement: 2.319300124385771e-07\n", "[ 7.20000000e-01 3.20000000e-02 4.00000000e-03 0.00000000e+00\n", " -6.00000556e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 2.0856624761988845e-10\n", " x: [ 7.200e-01 3.165e-02 4.000e-03 0.000e+00 -6.000e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [-2.720e-07 2.346e-08 nan nan -9.144e-11\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 2.0856624761988845e-10\n", "GonioParam(dist=0.719996884226615, poni1=0.03165314623341409, poni2=0.004, rot1=0.0, offset=-60.000059921076755, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032 --> 0.03165314623341409\n", " Number of peaks found and used for refinement\n", "864\n", "Cost function before refinement: 3.88327645072857e-07\n", "[ 7.19996884e-01 3.16531462e-02 4.00000000e-03 0.00000000e+00\n", " -6.00000599e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 8.355695006101576e-08\n", " x: [ 7.206e-01 3.205e-02 4.000e-03 0.000e+00 -6.000e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 7\n", " jac: [-2.494e-09 -1.973e-11 nan nan -2.941e-10\n", " nan nan]\n", " nfev: 29\n", " njev: 7\n", "Cost function after refinement: 8.355695006101576e-08\n", "GonioParam(dist=0.7206442263327708, poni1=0.03204960860935797, poni2=0.004, rot1=0.0, offset=-60.00005480029715, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: dist (0) 0.719996884226615 --> 0.7206442263327708\n", "Cost function before refinement: 8.355695006101576e-08\n", "[ 7.20644226e-01 3.20496086e-02 4.00000000e-03 0.00000000e+00\n", " -6.00000548e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 3.3388350811582614e-10\n", " x: [ 7.206e-01 3.224e-02 3.976e-03 1.754e-05 -6.000e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 5\n", " jac: [-3.349e-07 -1.351e-09 -1.135e-07 8.314e-08 -3.434e-10\n", " 3.682e-09 nan]\n", " nfev: 36\n", " njev: 5\n", "Cost function after refinement: 3.3388350811582614e-10\n", "GonioParam(dist=0.7206453076627379, poni1=0.0322371168044828, poni2=0.003975651575863446, rot1=1.7542244320799353e-05, offset=-60.000052437901985, scale=0.9990118655645687, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 1.0 --> 0.9990118655645687\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":99: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " p.figure.show()\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "22251\n", "56 54\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":107: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "add_module(ds_names[4],\n", " 150,\n", " 188,\n", " 208)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.4965819410817444e-06\n", "Cost function before refinement: 1.4965819410817444e-06\n", "[ 7.20000000e-01 3.20000000e-02 4.00000000e-03 0.00000000e+00\n", " -5.43998333e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 2.0171535051300557e-10\n", " x: [ 7.200e-01 3.288e-02 4.000e-03 0.000e+00 -5.440e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [-2.790e-07 1.127e-07 nan nan 1.017e-09\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 2.0171535051300557e-10\n", "GonioParam(dist=0.7200081377941879, poni1=0.032881397945235105, poni2=0.004, rot1=0.0, offset=-54.399822256645166, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032 --> 0.032881397945235105\n", " Number of peaks found and used for refinement\n", "754\n", "Cost function before refinement: 3.084364540025083e-07\n", "[ 7.20008138e-01 3.28813979e-02 4.00000000e-03 0.00000000e+00\n", " -5.43998223e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 6.550962572082017e-08\n", " x: [ 7.205e-01 3.324e-02 4.000e-03 0.000e+00 -5.440e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 7\n", " jac: [-1.597e-09 -1.653e-11 nan nan -3.335e-10\n", " nan nan]\n", " nfev: 29\n", " njev: 7\n", "Cost function after refinement: 6.550962572082017e-08\n", "GonioParam(dist=0.7205268321085441, poni1=0.033236366248085354, poni2=0.004, rot1=0.0, offset=-54.3998176624037, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: dist (0) 0.7200081377941879 --> 0.7205268321085441\n", "Cost function before refinement: 6.550962572082017e-08\n", "[ 7.20526832e-01 3.32363662e-02 4.00000000e-03 0.00000000e+00\n", " -5.43998177e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 2.9801327203467305e-10\n", " x: [ 7.205e-01 3.339e-02 3.973e-03 1.948e-05 -5.440e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 5\n", " jac: [-6.288e-07 -6.165e-09 -8.418e-08 6.319e-08 -4.255e-10\n", " 1.871e-09 nan]\n", " nfev: 36\n", " njev: 5\n", "Cost function after refinement: 2.9801327203467305e-10\n", "GonioParam(dist=0.7205282661866322, poni1=0.03339481352066476, poni2=0.003972951169578437, rot1=1.948366989428078e-05, offset=-54.399815665343084, scale=0.9990259510565376, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 1.0 --> 0.9990259510565376\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":99: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " p.figure.show()\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "20549\n", "54 54\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":107: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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uylmlgF1D+Dz5s1jwIABjBkzBqmSO0Y2p4hg8eLFzJs3j+22267ezTGzDKj7EMp7773H4MGDWzp4A0hi8ODB/iRiVm9PXg8/GQdnDUr+Pnl9vVtUVN174EDLB+9OPg5mdfbk9XDrybAqvX3K0rnJNMAujfebx3XvgTeCtrY2xo8fv+4xZ84cJkyYwKxZswBYvXo1/fv3Z9q0aevWmThxIo899hhXXHEFX//61zeob8qUKevy3ceMGcN+++23wfLx48czbty42u6UmXXdnWevD96dVq1I5jegzAXwmx+fz+Tz7mK7029j8nl3cfPj3flFqQ11dHQwa9asdY8xY8YwefJkpk9PfqDkiSee4AMf+MC66eXLl/PSSy+x6667VlT/smXLmDs3+am+2bNn97i9ZlYjS4v8hGax+XWWqQB+8+PzOePGp5i/ZAUBzF+ygjNufKoqQTzfPvvssy5gT58+na997WvreuSPPPIIEydOpK2traK6jjzySK67Lvk1s2uuuYajjz666u01syoYWOQnNIvNr7NMBfDz//A8K1at2WDeilVrOP8Pz/eo3hUrVqwbPpk6dSrABj3w6dOn8+EPf5jNNtuMZcuWMX36dPbZZ59161933XUbDMHk3y7giCOO4MYbk188u/XWWzn44IN71F4zq5H9vwftHRvOa+9I5jeghriIWalXlxS+L3ux+ZXqHELJNXr0aFauXMmCBQt47rnnGDt2LLvvvjsPP/ww06dP5xvf+Ma6skcddRQXXXTRuukpU6ZsUNfgwYPZYostuPbaa9lxxx3p168fZtaAOi9U3nl2MmwycGQSvBvwAiZkLIAPH9TB/ALBevigjgKle26fffbh17/+NcOGDUMSe+21Fw888ACPPPIIe++9d5fqOuqoozjppJO44ooratJWM6uSXY5s2ICdL1NDKKceNJaO9g3HnTva2zj1oLE12d4+++zDBRdcsC5Y77333lx11VVss802DBw4sEt1TZ06ldNOO42DDjqoFk01sxaUqQB+2IQRnHv4zowY1IGAEYM6OPfwnTlswoiabG/y5Mm8/PLL6wL4sGHDWLNmzQbj35UaMGAA3/nOd+jTp0+1m2lmLapXfxNz0qRJkX+Bb/bs2ey444691oZG5+NhZvkkzYyISfnzM9UDNzOz9RzAzcwyygHczCyjHMDNzDLKAdzMWlOGbhtb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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "add_module(ds_names[5],\n", " 178,\n", " 216,\n", " 236)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7.41484379835199e-08\n", "Cost function before refinement: 7.41484379835199e-08\n", "[ 7.20000000e-01 3.20000000e-02 4.00000000e-03 0.00000000e+00\n", " -4.85998889e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 5.651340369404608e-11\n", " x: [ 7.200e-01 3.180e-02 4.000e-03 0.000e+00 -4.860e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [-2.813e-07 1.905e-08 nan nan -1.234e-10\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 5.651340369404608e-11\n", "GonioParam(dist=0.7199985717445607, poni1=0.03180385768846998, poni2=0.004, rot1=0.0, offset=-48.599891358723, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032 --> 0.03180385768846998\n", " Number of peaks found and used for refinement\n", "626\n", "Cost function before refinement: 2.383303034849477e-07\n", "[ 7.19998572e-01 3.18038577e-02 4.00000000e-03 0.00000000e+00\n", " -4.85998914e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 5.198330810552424e-08\n", " x: [ 7.206e-01 3.211e-02 4.000e-03 0.000e+00 -4.860e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 7\n", " jac: [-2.199e-09 -2.359e-11 nan nan -2.599e-10\n", " nan nan]\n", " nfev: 29\n", " njev: 7\n", "Cost function after refinement: 5.198330810552424e-08\n", "GonioParam(dist=0.7206068541828302, poni1=0.032113848914074164, poni2=0.004, rot1=0.0, offset=-48.59988734247567, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: dist (0) 0.7199985717445607 --> 0.7206068541828302\n", "Cost function before refinement: 5.198330810552424e-08\n", "[ 7.20606854e-01 3.21138489e-02 4.00000000e-03 0.00000000e+00\n", " -4.85998873e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 2.556084755886736e-10\n", " x: [ 7.206e-01 3.225e-02 3.969e-03 2.238e-05 -4.860e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 6\n", " jac: [-6.637e-07 8.690e-08 -6.746e-08 5.130e-08 7.874e-10\n", " 2.881e-09 nan]\n", " nfev: 42\n", " njev: 6\n", "Cost function after refinement: 2.556084755886736e-10\n", "GonioParam(dist=0.7206092933284303, poni1=0.0322472572293433, poni2=0.003968935506720823, rot1=2.2375489038523132e-05, offset=-48.59988566020599, scale=0.9990409081102396, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 1.0 --> 0.9990409081102396\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":99: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " p.figure.show()\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "18650\n", "54 54\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":107: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "add_module(ds_names[6],\n", " 207,\n", " 245,\n", " 266)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4.377487894658635e-06\n", "Cost function before refinement: 4.377487894658635e-06\n", "[ 7.20000000e-01 3.20000000e-02 4.00000000e-03 0.00000000e+00\n", " -4.27998889e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 9.109058146293743e-11\n", " x: [ 7.200e-01 3.049e-02 4.000e-03 0.000e+00 -4.280e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [-3.538e-07 3.502e-09 nan nan -3.652e-10\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 9.109058146293743e-11\n", "GonioParam(dist=0.7199860337927957, poni1=0.030492505461750096, poni2=0.004, rot1=0.0, offset=-42.79990784449265, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032 --> 0.030492505461750096\n", " Number of peaks found and used for refinement\n", "543\n", "Cost function before refinement: 1.9115344534723355e-07\n", "[ 7.19986034e-01 3.04925055e-02 4.00000000e-03 0.00000000e+00\n", " -4.27999078e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 4.1213003335648066e-08\n", " x: [ 7.207e-01 3.077e-02 4.000e-03 0.000e+00 -4.280e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 7\n", " jac: [-3.060e-09 -2.445e-11 nan nan -3.621e-10\n", " nan nan]\n", " nfev: 29\n", " njev: 7\n", "Cost function after refinement: 4.1213003335648066e-08\n", "GonioParam(dist=0.7207055546218871, poni1=0.030768430906894705, poni2=0.004, rot1=0.0, offset=-42.79990417397939, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: dist (0) 0.7199860337927957 --> 0.7207055546218871\n", "Cost function before refinement: 4.1213003335648066e-08\n", "[ 7.20705555e-01 3.07684309e-02 4.00000000e-03 0.00000000e+00\n", " -4.27999042e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 1.9055738692529888e-10\n", " x: [ 7.207e-01 3.086e-02 3.965e-03 2.507e-05 -4.280e+01\n", " 9.991e-01 1.703e+01]\n", " nit: 5\n", " jac: [-5.207e-07 -3.451e-07 -5.785e-08 4.380e-08 -4.683e-09\n", " 9.352e-08 nan]\n", " nfev: 35\n", " njev: 5\n", "Cost function after refinement: 1.9055738692529888e-10\n", "GonioParam(dist=0.7207071581327096, poni1=0.030863392389826882, poni2=0.003965206218806199, rot1=2.50696591730669e-05, offset=-42.799902973938835, scale=0.9990506059525829, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 1.0 --> 0.9990506059525829\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":99: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " p.figure.show()\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "16803\n", "45 54\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":107: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "add_module(ds_names[7],\n", " 236,\n", " 273,\n", " 293)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9.734136493812359e-08\n", "Cost function before refinement: 9.734136493812359e-08\n", "[ 7.20000000e-01 3.20000000e-02 4.00000000e-03 0.00000000e+00\n", " -3.72000000e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 1.3838346593948452e-10\n", " x: [ 7.200e-01 3.178e-02 4.000e-03 0.000e+00 -3.720e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 2\n", " jac: [-5.987e-07 2.236e-08 nan nan -2.112e-10\n", " nan nan]\n", " nfev: 9\n", " njev: 2\n", "Cost function after refinement: 1.3838346593948452e-10\n", "GonioParam(dist=0.7199980533133429, poni1=0.031775349005215406, poni2=0.004, rot1=0.0, offset=-37.20000282728476, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032 --> 0.031775349005215406\n", " Number of peaks found and used for refinement\n", "454\n", "Cost function before refinement: 1.4308139308482607e-07\n", "[ 7.19998053e-01 3.17753490e-02 4.00000000e-03 0.00000000e+00\n", " -3.72000028e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 3.226788268488173e-08\n", " x: [ 7.208e-01 3.201e-02 4.000e-03 0.000e+00 -3.720e+01\n", " 1.000e+00 1.703e+01]\n", " nit: 7\n", " jac: [-3.925e-09 -5.278e-11 nan nan -3.042e-10\n", " nan nan]\n", " nfev: 29\n", " njev: 7\n", "Cost function after refinement: 3.226788268488173e-08\n", "GonioParam(dist=0.7208093283946152, poni1=0.03201295264882314, poni2=0.004, rot1=0.0, offset=-37.19999969774526, scale=1.0, nrj=17.027082549190933)\n", "maxdelta on: dist (0) 0.7199980533133429 --> 0.7208093283946152\n", "Cost function before refinement: 3.226788268488173e-08\n", "[ 7.20809328e-01 3.20129526e-02 4.00000000e-03 0.00000000e+00\n", " -3.71999997e+01 1.00000000e+00 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 1.851171758694135e-10\n", " x: [ 7.208e-01 3.208e-02 3.960e-03 2.909e-05 -3.720e+01\n", " 9.991e-01 1.703e+01]\n", " nit: 5\n", " jac: [-5.574e-07 1.084e-09 -4.859e-08 3.728e-08 -3.498e-10\n", " 3.440e-09 nan]\n", " nfev: 35\n", " njev: 5\n", "Cost function after refinement: 1.851171758694135e-10\n", "GonioParam(dist=0.7208107860401025, poni1=0.03208175644866908, poni2=0.003959633637265279, rot1=2.90905939606598e-05, offset=-37.199998826575715, scale=0.9990588539456343, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 1.0 --> 0.9990588539456343\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":99: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " p.figure.show()\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "16875\n", "45 54\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":107: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "add_module(ds_names[8],\n", " 264,\n", " 302,\n", " 322)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "9" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(goniometers)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "data_02 7.2310e-01 3.2054e-02 3.9849e-03 1.0948e-05 -8.2800e+01 9.9942e-01 1.7027e+01\n", "data_03 7.2068e-01 3.3678e-02 4.0580e-03 -4.4486e-05 -7.7200e+01 9.9897e-01 1.7027e+01\n", "data_04 7.2069e-01 3.4825e-02 4.0432e-03 -3.3768e-05 -7.1600e+01 9.9898e-01 1.7027e+01\n", "data_05 7.2048e-01 3.3410e-02 3.9779e-03 1.5910e-05 -6.5800e+01 9.9900e-01 1.7027e+01\n", "data_07 7.2065e-01 3.2237e-02 3.9757e-03 1.7542e-05 -6.0000e+01 9.9901e-01 1.7027e+01\n", "data_08 7.2053e-01 3.3395e-02 3.9730e-03 1.9484e-05 -5.4400e+01 9.9903e-01 1.7027e+01\n", "data_09 7.2061e-01 3.2247e-02 3.9689e-03 2.2375e-05 -4.8600e+01 9.9904e-01 1.7027e+01\n", "data_10 7.2071e-01 3.0863e-02 3.9652e-03 2.5070e-05 -4.2800e+01 9.9905e-01 1.7027e+01\n", "data_11 7.2081e-01 3.2082e-02 3.9596e-03 2.9091e-05 -3.7200e+01 9.9906e-01 1.7027e+01\n", "data_12 7.2081e-01 3.2082e-02 3.9596e-03 2.9091e-05 -3.7200e+01 9.9906e-01 1.7027e+01\n" ] } ], "source": [ "# print all the parameters to be able to compare them visually\n", "goniometers[\"data_12\"] = goniometers[\"data_11\"]\n", "for name in ds_names:\n", " print(name, *[\"%8.4e\"%i for i in goniometers[name].param])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Use the negative part of the spectum ...\n", "\n", "Until now, we used only the data where 2th >0 \n", "For the last modules, this thows away half of the data.\n", "\n", "We setup here a way to assign the peaks for the negative part of the spectrum." ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "def complete_gonio(module_id=None, name=None):\n", " \"Scan missing frames for un-indexed peaks\"\n", " if name is None:\n", " name = ds_names[module_id]\n", " gonioref = goniometers[name]\n", " ds = data[name]\n", " print(\"Number of peaks previously found:\",\n", " sum([len(sg.geometry_refinement.data) for sg in gonioref.single_geometries.values()]))\n", "\n", " tths = LaB6.get_2th()\n", "\n", " for i in range(ds.shape[0]):\n", " frame_name = \"%s_%04i\"%(name, i)\n", " if frame_name in gonioref.single_geometries:\n", " continue\n", " peak = peak_picking(name, i)\n", " ai=gonioref.get_ai(get_position(i))\n", " tth = ai.array_from_unit(unit=\"2th_rad\", scale=False)\n", " tth_low = tth[20]\n", " tth_hi = tth[-20]\n", " ttmin, ttmax = min(tth_low, tth_hi), max(tth_low, tth_hi)\n", " valid_peaks = numpy.logical_and(ttmin<=tths, tths0: \n", " cp = ControlPoints(calibrant=LaB6, wavelength=wl)\n", " #revert the order of assignment if needed !!\n", " if tth_hi < tth_low:\n", " peak = peak[-1::-1]\n", " for p, r in zip(peak, numpy.where(valid_peaks)[0]):\n", " cp.append([p], ring=r)\n", " img = ds[i].reshape((-1,1))\n", " sg = gonioref.new_geometry(frame_name, \n", " image=img, \n", " metadata=i, \n", " control_points=cp, \n", " calibrant=LaB6)\n", " sg.geometry_refinement.data = numpy.array(cp.getList())\n", " #print(frame_name, len(sg.geometry_refinement.data))\n", "\n", " print(\"Number of peaks found after re-scan:\",\n", " sum([len(sg.geometry_refinement.data) for sg in gonioref.single_geometries.values()]))\n", " return gonioref" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 454\n", "Number of peaks found after re-scan: 1006\n", "Cost function before refinement: 4.70708266491699e-09\n", "[ 7.20810786e-01 3.20817564e-02 3.95963364e-03 2.90905940e-05\n", " -3.71999988e+01 9.99058854e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 9.80271531341448e-10\n", " x: [ 7.208e-01 3.208e-02 3.962e-03 2.771e-05 -3.720e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 4\n", " jac: [-8.293e-07 1.798e-08 -2.226e-07 1.638e-07 -1.374e-10\n", " -3.004e-08 nan]\n", " nfev: 29\n", " njev: 4\n", "Cost function after refinement: 9.80271531341448e-10\n", "GonioParam(dist=0.7208134356283892, poni1=0.032084918686756565, poni2=0.003961539926573026, rot1=2.770579470925171e-05, offset=-37.19999878568301, scale=0.9989913574687115, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 0.9990588539456343 --> 0.9989913574687115\n" ] }, { "data": { "text/plain": [ "array([ 7.20813436e-01, 3.20849187e-02, 3.96153993e-03, 2.77057947e-05,\n", " -3.71999988e+01, 9.98991357e-01, 1.70270825e+01])" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonio8 = complete_gonio(module_id=8)\n", "gonio8.refine2()" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 543\n", "Number of peaks found after re-scan: 1004\n" ] } ], "source": [ "gonio7 = complete_gonio(module_id=7)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cost function before refinement: 2.049771586732014e-09\n", "[ 7.20707158e-01 3.08633924e-02 3.96520622e-03 2.50696592e-05\n", " -4.27999030e+01 9.99050606e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 6.98216618419778e-10\n", " x: [ 7.207e-01 3.087e-02 3.967e-03 2.399e-05 -4.280e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 4\n", " jac: [-6.616e-07 1.821e-08 -2.311e-07 1.692e-07 -1.059e-10\n", " -2.989e-08 nan]\n", " nfev: 29\n", " njev: 4\n", "Cost function after refinement: 6.98216618419778e-10\n", "GonioParam(dist=0.720709214442203, poni1=0.03086624488929287, poni2=0.0039666907721100705, rot1=2.3991415326512732e-05, offset=-42.79990293705691, scale=0.9990066875069397, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 0.9990506059525829 --> 0.9990066875069397\n" ] }, { "data": { "text/plain": [ "array([ 7.20709214e-01, 3.08662449e-02, 3.96669077e-03, 2.39914153e-05,\n", " -4.27999029e+01, 9.99006688e-01, 1.70270825e+01])" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonio7.refine2()" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 626\n", "Number of peaks found after re-scan: 990\n", "Cost function before refinement: 9.054150799194566e-10\n", "[ 7.20609293e-01 3.22472572e-02 3.96893551e-03 2.23754890e-05\n", " -4.85998857e+01 9.99040908e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 6.093707809212381e-10\n", " x: [ 7.206e-01 3.225e-02 3.970e-03 2.155e-05 -4.860e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 4\n", " jac: [-8.022e-07 3.637e-08 -2.332e-07 1.713e-07 1.531e-10\n", " -6.906e-08 nan]\n", " nfev: 29\n", " njev: 4\n", "Cost function after refinement: 6.093707809212381e-10\n", "GonioParam(dist=0.7206117521177711, poni1=0.03224903534860273, poni2=0.003970067520600401, rot1=2.1549818979054536e-05, offset=-48.59988563691411, scale=0.9990180421528526, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 0.9990409081102396 --> 0.9990180421528526\n" ] }, { "data": { "text/plain": [ "array([ 7.20611752e-01, 3.22490353e-02, 3.97006752e-03, 2.15498190e-05,\n", " -4.85998856e+01, 9.99018042e-01, 1.70270825e+01])" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonio6 = complete_gonio(module_id=6)\n", "gonio6.refine2()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 754\n", "Number of peaks found after re-scan: 1038\n", "Cost function before refinement: 5.322293237710593e-10\n", "[ 7.20528266e-01 3.33948135e-02 3.97295117e-03 1.94836699e-05\n", " -5.43998157e+01 9.99025951e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 5.247776760667795e-10\n", " x: [ 7.205e-01 3.340e-02 3.974e-03 1.898e-05 -5.440e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 4\n", " jac: [-6.548e-07 1.292e-07 -1.627e-07 1.198e-07 1.289e-09\n", " -2.774e-07 nan]\n", " nfev: 29\n", " njev: 4\n", "Cost function after refinement: 5.247776760667795e-10\n", "GonioParam(dist=0.7205306819340235, poni1=0.033395338635169546, poni2=0.003973636918904946, rot1=1.8979819424984276e-05, offset=-54.39981565750616, scale=0.9990218992359475, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 0.9990259510565376 --> 0.9990218992359475\n" ] }, { "data": { "text/plain": [ "array([ 7.20530682e-01, 3.33953386e-02, 3.97363692e-03, 1.89798194e-05,\n", " -5.43998157e+01, 9.99021899e-01, 1.70270825e+01])" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonio5 = complete_gonio(module_id=5)\n", "gonio5.refine2()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 864\n", "Number of peaks found after re-scan: 1081\n", "Cost function before refinement: 4.522892051482172e-10\n", "[ 7.20645308e-01 3.22371168e-02 3.97565158e-03 1.75422443e-05\n", " -6.00000524e+01 9.99011866e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 4.3299107269375743e-10\n", " x: [ 7.206e-01 3.224e-02 3.976e-03 1.742e-05 -6.000e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 4\n", " jac: [-3.236e-07 -1.338e-08 -8.079e-08 5.953e-08 -4.927e-10\n", " 3.166e-08 nan]\n", " nfev: 29\n", " njev: 4\n", "Cost function after refinement: 4.3299107269375743e-10\n", "GonioParam(dist=0.7206464170800312, poni1=0.032235988252634566, poni2=0.003975819586239342, rot1=1.7416686730645905e-05, offset=-60.00005245097538, scale=0.9990197113106509, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 0.9990118655645687 --> 0.9990197113106509\n" ] }, { "data": { "text/plain": [ "array([ 7.20646417e-01, 3.22359883e-02, 3.97581959e-03, 1.74166867e-05,\n", " -6.00000525e+01, 9.99019711e-01, 1.70270825e+01])" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonio4 = complete_gonio(module_id=4)\n", "gonio4.refine2()" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 978\n", "Number of peaks found after re-scan: 1156\n", "Cost function before refinement: 7.053066687141914e-10\n", "[ 7.20482925e-01 3.34099487e-02 3.97791164e-03 1.59098267e-05\n", " -6.57999266e+01 9.98999120e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 6.316703679729696e-10\n", " x: [ 7.205e-01 3.341e-02 3.978e-03 1.605e-05 -6.580e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 4\n", " jac: [-4.998e-07 -1.632e-08 9.666e-09 -4.950e-09 -5.754e-10\n", " 3.901e-08 nan]\n", " nfev: 29\n", " njev: 4\n", "Cost function after refinement: 6.316703679729696e-10\n", "GonioParam(dist=0.7204847938379576, poni1=0.03340748825027609, poni2=0.003977700789074132, rot1=1.6054211747525078e-05, offset=-65.79992658926287, scale=0.9990156265501668, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 0.9989991199295621 --> 0.9990156265501668\n" ] }, { "data": { "text/plain": [ "array([ 7.20484794e-01, 3.34074883e-02, 3.97770079e-03, 1.60542117e-05,\n", " -6.57999266e+01, 9.99015627e-01, 1.70270825e+01])" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonio3 = complete_gonio(module_id=3)\n", "gonio3.refine2()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 1093\n", "Number of peaks found after re-scan: 1229\n", "Cost function before refinement: 8.306329045500625e-10\n", "[ 7.20686429e-01 3.48247408e-02 4.04316629e-03 -3.37683966e-05\n", " -7.15999088e+01 9.98982873e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 7.77171881108816e-10\n", " x: [ 7.207e-01 3.482e-02 4.043e-03 -3.357e-05 -7.160e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 4\n", " jac: [ 9.152e-08 -1.052e-09 5.616e-08 -4.083e-08 -4.257e-10\n", " 2.851e-09 nan]\n", " nfev: 29\n", " njev: 4\n", "Cost function after refinement: 7.77171881108816e-10\n", "GonioParam(dist=0.7206860334778521, poni1=0.03482262187955647, poni2=0.004042896907016237, rot1=-3.3572702282314364e-05, offset=-71.5999088383209, scale=0.9989982448524656, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 0.9989828730377052 --> 0.9989982448524656\n" ] }, { "data": { "text/plain": [ "array([ 7.20686033e-01, 3.48226219e-02, 4.04289691e-03, -3.35727023e-05,\n", " -7.15999088e+01, 9.98998245e-01, 1.70270825e+01])" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonio2 = complete_gonio(module_id=2)\n", "gonio2.refine2()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 1183\n", "Number of peaks found after re-scan: 1285\n", "Cost function before refinement: 9.822430104344508e-10\n", "[ 7.20682073e-01 3.36782330e-02 4.05801068e-03 -4.44855659e-05\n", " -7.71999788e+01 9.98967233e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 9.683583557485058e-10\n", " x: [ 7.207e-01 3.368e-02 4.058e-03 -4.454e-05 -7.720e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 4\n", " jac: [ 1.052e-07 -1.409e-09 -2.647e-09 1.496e-09 -3.432e-10\n", " 4.363e-09 nan]\n", " nfev: 29\n", " njev: 4\n", "Cost function after refinement: 9.683583557485058e-10\n", "GonioParam(dist=0.7206815883828414, poni1=0.03367666939062012, poni2=0.004058082310428429, rot1=-4.453529297359146e-05, offset=-77.19997881135518, scale=0.998975905641853, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 0.9989672333400683 --> 0.998975905641853\n" ] }, { "data": { "text/plain": [ "array([ 7.20681588e-01, 3.36766694e-02, 4.05808231e-03, -4.45352930e-05,\n", " -7.71999788e+01, 9.98975906e-01, 1.70270825e+01])" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonio1 = complete_gonio(module_id=1)\n", "gonio1.refine2()\n" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 1203\n", "Number of peaks found after re-scan: 1255\n", "Cost function before refinement: 2.580092915553823e-06\n", "[ 7.23096244e-01 3.20537008e-02 3.98485488e-03 1.09477702e-05\n", " -8.27999440e+01 9.99415058e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 2.579987978563334e-06\n", " x: [ 7.231e-01 3.207e-02 3.981e-03 1.351e-05 -8.280e+01\n", " 9.994e-01 1.703e+01]\n", " nit: 4\n", " jac: [-1.439e-07 3.613e-08 5.528e-07 -3.992e-07 1.021e-09\n", " -1.146e-07 nan]\n", " nfev: 29\n", " njev: 4\n", "Cost function after refinement: 2.579987978563334e-06\n", "GonioParam(dist=0.7230969947734238, poni1=0.03206584436046777, poni2=0.0039813020995294445, rot1=1.3513751444584455e-05, offset=-82.79994383845344, scale=0.9993962397688153, nrj=17.027082549190933)\n", "maxdelta on: scale (5) 0.9994150576472143 --> 0.9993962397688153\n" ] }, { "data": { "text/plain": [ "array([ 7.23096995e-01, 3.20658444e-02, 3.98130210e-03, 1.35137514e-05,\n", " -8.27999438e+01, 9.99396240e-01, 1.70270825e+01])" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gonio0 = complete_gonio(module_id=0)\n", "gonio0.refine2()" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of peaks previously found: 0\n", "Number of peaks found after re-scan: 1250\n", "Cost function before refinement: 9.454139688783061e-07\n", "[ 7.23096995e-01 3.20658444e-02 3.98130210e-03 1.35137514e-05\n", " -8.27999438e+01 9.99396240e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 9.315197978919561e-07\n", " x: [ 7.220e-01 3.220e-02 3.944e-03 4.514e-05 -8.280e+01\n", " 9.991e-01 1.703e+01]\n", " nit: 9\n", " jac: [-1.206e-08 -1.145e-08 1.037e-07 -7.484e-08 1.332e-10\n", " -9.529e-09 nan]\n", " nfev: 64\n", " njev: 9\n", "Cost function after refinement: 9.315197978919561e-07\n", "GonioParam(dist=0.7219737516574156, poni1=0.03220031516651301, poni2=0.003943811306578325, rot1=4.514209993152478e-05, offset=-82.79994226182613, scale=0.9991407871099522, nrj=17.027082549190933)\n", "maxdelta on: dist (0) 0.7230969947734238 --> 0.7219737516574156\n" ] }, { "data": { "text/plain": [ "array([ 7.21973752e-01, 3.22003152e-02, 3.94381131e-03, 4.51420999e-05,\n", " -8.27999423e+01, 9.99140787e-01, 1.70270825e+01])" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Rescan module0 which looks much different:\n", "gonio0.single_geometries.clear()\n", "gonio0 = complete_gonio(module_id=0)\n", "gonio0.refine2()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Discard wronly assigned peaks\n", "\n", "We have seen previously that some modules have a much higher residual error, while all have almost the same number of peaks recorded and fitted.\n", "\n", "Some frames are contributing much more than all the other in those badly-fitted data. \n", "Let's spot them and re-assign them" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "data_02_0455 6.313037376229225e-07\n", "data_02_0464 6.523610354376743e-07\n", "data_02_0465 6.891635784533209e-07\n", "data_02_0457 7.370412438549099e-07\n", "data_02_0456 7.376223648967419e-07\n", "data_02_0460 7.458554081403769e-07\n", "data_02_0466 7.671413725143998e-07\n", "data_02_0461 7.935694034310535e-07\n", "data_02_0462 7.971541383592315e-07\n", "data_02_0480 0.0011307660991106366\n" ] } ], "source": [ "#search for mis-assigned peaks in module #0\n", "labels = []\n", "errors = []\n", "\n", "for lbl,sg in gonio0.single_geometries.items():\n", " labels.append(lbl)\n", " errors.append(sg.geometry_refinement.chi2())\n", "\n", "s = numpy.argsort(errors)\n", "for i in s[-10:]:\n", " print(labels[i], errors[i])\n", " \n", " " ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ControlPoints instance containing 4 group of point:\n", "LaB6 Calibrant with 109 reflections at wavelength 7.281587910025816e-11\n", "Containing 4 groups of points:\n", "#psg ring 52: 1 points\n", "#psh ring 53: 1 points\n", "#psi ring 54: 1 points\n", "#psj ring 55: 1 points\n", "Cost function before refinement: 8.041212761797189e-09\n", "[ 7.21973752e-01 3.22003152e-02 3.94381131e-03 4.51420999e-05\n", " -8.27999423e+01 9.99140787e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 9.214244938591865e-10\n", " x: [ 7.206e-01 3.228e-02 4.043e-03 -2.053e-05 -8.280e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 9\n", " jac: [-3.087e-08 -3.829e-08 -1.829e-07 1.319e-07 -8.443e-10\n", " -1.615e-08 nan]\n", " nfev: 64\n", " njev: 9\n", "Cost function after refinement: 9.214244938591865e-10\n", "GonioParam(dist=0.7205957893874516, poni1=0.03228440830812512, poni2=0.00404252549764979, rot1=-2.053391818186055e-05, offset=-82.79994103787172, scale=0.998975174801073, nrj=17.027082549190933)\n", "maxdelta on: dist (0) 0.7219737516574156 --> 0.7205957893874516\n", "Number of peaks previously found: 1246\n", "Number of peaks found after re-scan: 1263\n", "Cost function before refinement: 9.385076296783189e-10\n", "[ 7.20595789e-01 3.22844083e-02 4.04252550e-03 -2.05339182e-05\n", " -8.27999410e+01 9.98975175e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 9.382098917207145e-10\n", " x: [ 7.206e-01 3.228e-02 4.043e-03 -2.057e-05 -8.280e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 1\n", " jac: [-2.666e-08 -1.466e-06 -1.817e-07 1.310e-07 -1.881e-08\n", " -4.389e-08 nan]\n", " nfev: 9\n", " njev: 1\n", "Cost function after refinement: 9.382098917207145e-10\n", "GonioParam(dist=0.7205957963976899, poni1=0.03228479377438343, poni2=0.004042573274141478, rot1=-2.0568374189891214e-05, offset=-82.79994103292513, scale=0.9989751863414432, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.03228440830812512 --> 0.03228479377438343\n" ] }, { "data": { "text/plain": [ "array([ 7.20595796e-01, 3.22847938e-02, 4.04257327e-03, -2.05683742e-05,\n", " -8.27999410e+01, 9.98975186e-01, 1.70270825e+01])" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#remove wrongly assigned peak for frame 480\n", "print(gonio0.single_geometries.pop(\"data_02_0480\").control_points)\n", "gonio0.refine2()\n", "gonio0 = complete_gonio(module_id=0)\n", "\n", "gonio0.refine2()" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "data_11_0495 1.465326424860063e-06 1.465326424860063e-06 1.0\n", "data_11_0496 1.4360706723304346e-06 1.465326424860063e-06 1.0203720841134876\n", "data_11_0499 1.4166274578619404e-06 1.4360706723304346e-06 1.0137250018419373\n", "data_11_0497 1.4084298974827966e-06 1.4166274578619404e-06 1.0058203538520412\n", "data_11_0498 1.3832745249726834e-06 1.4084298974827966e-06 1.0181853797319154\n", "data_11_0500 1.3708837484278925e-06 1.3832745249726834e-06 1.0090385319389776\n", "data_11_0492 1.329563509601561e-06 1.3708837484278925e-06 1.0310780481924584\n", "data_11_0489 1.328744438946604e-06 1.329563509601561e-06 1.0006164245214877\n", "data_11_0491 1.3215889751287176e-06 1.328744438946604e-06 1.0054142883699446\n", "data_11_0490 1.301797579259692e-06 1.3215889751287176e-06 1.015203128492742\n", "data_11_0494 1.2865330381985967e-06 1.301797579259692e-06 1.0118648651903015\n", "data_11_0493 1.2861198600451933e-06 1.2865330381985967e-06 1.0003212594457478\n", "data_11_0483 1.224424745072622e-06 1.2861198600451933e-06 1.0503870206975539\n", "data_11_0486 1.207349392777562e-06 1.224424745072622e-06 1.0141428424921617\n", "data_11_0485 1.2017864447065466e-06 1.207349392777562e-06 1.0046288989990844\n", "data_11_0484 1.199457920840169e-06 1.2017864447065466e-06 1.0019413135099784\n", "data_11_0487 1.1764421082118776e-06 1.199457920840169e-06 1.0195639143376753\n", "data_11_0477 1.1389376207700437e-06 1.1764421082118776e-06 1.032929360447745\n", "data_11_0478 1.1156529806074908e-06 1.1389376207700437e-06 1.020870862685164\n", "data_11_0481 1.1104608438150525e-06 1.1156529806074908e-06 1.0046756594988082\n", "data_11_0479 1.1057542147152647e-06 1.1104608438150525e-06 1.0042564875965676\n", "data_11_0480 1.1002197562639265e-06 1.1057542147152647e-06 1.0050303209152796\n", "data_11_0482 8.673122808629696e-07 1.1002197562639265e-06 1.2685393491364099\n", "Cost function before refinement: 1.0594739815701638e-09\n", "[ 7.20813436e-01 3.20849187e-02 3.96153993e-03 2.77057947e-05\n", " -3.71999988e+01 9.98991357e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 1.0589425492798256e-09\n", " x: [ 7.208e-01 3.209e-02 3.962e-03 2.762e-05 -3.720e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 1\n", " jac: [-8.451e-07 -1.253e-06 -2.518e-07 1.849e-07 -1.614e-08\n", " 9.174e-08 nan]\n", " nfev: 9\n", " njev: 1\n", "Cost function after refinement: 1.0589425492798256e-09\n", "GonioParam(dist=0.7208138053467276, poni1=0.032085466901404895, poni2=0.003961650094174231, rot1=2.7624888491723393e-05, offset=-37.19999877862184, scale=0.9989913173307039, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032084918686756565 --> 0.032085466901404895\n", "Number of peaks previously found: 918\n", "Number of peaks found after re-scan: 1006\n", "Cost function before refinement: 9.804577380710388e-10\n", "[ 7.20813805e-01 3.20854669e-02 3.96165009e-03 2.76248885e-05\n", " -3.71999988e+01 9.98991317e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 9.797992160755848e-10\n", " x: [ 7.208e-01 3.209e-02 3.962e-03 2.759e-05 -3.720e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 1\n", " jac: [-8.288e-07 2.044e-06 -2.226e-07 1.638e-07 2.536e-08\n", " 1.004e-06 nan]\n", " nfev: 9\n", " njev: 1\n", "Cost function after refinement: 9.797992160755848e-10\n", "GonioParam(dist=0.7208139923453484, poni1=0.03208500579330537, poni2=0.003961700327630729, rot1=2.7587922995196375e-05, offset=-37.19999878434437, scale=0.9989910907851859, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.032085466901404895 --> 0.03208500579330537\n" ] }, { "data": { "text/plain": [ "array([ 7.20813992e-01, 3.20850058e-02, 3.96170033e-03, 2.75879230e-05,\n", " -3.71999988e+01, 9.98991091e-01, 1.70270825e+01])" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def search_outliers(module_id=None, name=None, threshold=1.2):\n", " \"Search for wrongly assigned peaks\"\n", " if name is None:\n", " name = ds_names[module_id]\n", " gonioref = goniometers[name]\n", " labels = []\n", " errors = []\n", "\n", " for lbl,sg in gonioref.single_geometries.items():\n", " labels.append(lbl)\n", " errors.append(sg.geometry_refinement.chi2())\n", " s = numpy.argsort(errors)\n", " last = errors[s[-1]]\n", " to_remove = []\n", " for i in s[-1::-1]:\n", " lbl = labels[i]\n", " current = errors[i]\n", " print(lbl , current, last, last/current)\n", " if threshold*current 0.03086564460420738\n", "Number of peaks previously found: 985\n", "Number of peaks found after re-scan: 1004\n", "Cost function before refinement: 6.991408418442968e-10\n", "[ 7.20709353e-01 3.08656446e-02 3.96672298e-03 2.39676402e-05\n", " -4.27999029e+01 9.99006442e-01 1.70270825e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 6.980019649241363e-10\n", " x: [ 7.207e-01 3.087e-02 3.967e-03 2.393e-05 -4.280e+01\n", " 9.990e-01 1.703e+01]\n", " nit: 2\n", " jac: [-6.609e-07 1.522e-07 -2.321e-07 1.700e-07 1.580e-09\n", " 9.613e-08 nan]\n", " nfev: 15\n", " njev: 2\n", "Cost function after refinement: 6.980019649241363e-10\n", "GonioParam(dist=0.7207094971365863, poni1=0.030866238233237652, poni2=0.003966772614681739, rot1=2.393128798437873e-05, offset=-42.7999029369946, scale=0.9990067735020023, nrj=17.027082549190933)\n", "maxdelta on: poni1 (1) 0.03086564460420738 --> 0.030866238233237652\n" ] }, { "data": { "text/plain": [ "array([ 7.20709497e-01, 3.08662382e-02, 3.96677261e-03, 2.39312880e-05,\n", " -4.27999029e+01, 9.99006774e-01, 1.70270825e+01])" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(gonio7.chi2())\n", "for lbl in search_outliers(7):\n", " gonio7.single_geometries.pop(lbl)\n", "gonio7.refine2()\n", "gonio7 = complete_gonio(module_id=7)\n", "gonio7.refine2()" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9.382098917207145e-10\n", "data_02_0462 7.971541383592315e-07 7.971541383592315e-07 1.0\n", "data_02_0461 7.935694034310535e-07 7.971541383592315e-07 1.0045172292589397\n", "data_02_0466 7.671413725143998e-07 7.935694034310535e-07 1.0344500138612425\n", "data_02_0460 7.458554081403769e-07 7.671413725143998e-07 1.0285389958183646\n", "data_02_0456 7.376223648967419e-07 7.458554081403769e-07 1.0111615965505432\n", "data_02_0457 7.370412438549099e-07 7.376223648967419e-07 1.000788451184621\n", "data_02_0465 6.891635784533209e-07 7.370412438549099e-07 1.0694721353514358\n", "data_02_0464 6.523610354376743e-07 6.891635784533209e-07 1.0564143794868979\n", "data_02_0455 6.313037376229225e-07 6.523610354376743e-07 1.0333552560516113\n", "data_02_0463 6.240793018859902e-07 6.313037376229225e-07 1.0115761502025462\n", "data_02_0459 6.163884625324197e-07 6.240793018859902e-07 1.012477260398374\n", "data_02_0448 6.082013535587733e-07 6.163884625324197e-07 1.0134611817710386\n", "data_02_0454 5.868915926138719e-07 6.082013535587733e-07 1.0363095352073335\n", "data_02_0439 5.868104673105387e-07 5.868915926138719e-07 1.0001382478804528\n", "data_02_0435 5.859904555714726e-07 5.868104673105387e-07 1.0013993602306481\n", "data_02_0426 5.755880410766981e-07 5.859904555714726e-07 1.0180726730793705\n", "data_02_0458 5.724204045086455e-07 5.755880410766981e-07 1.005533759004925\n", "data_02_0453 5.590326810656076e-07 5.724204045086455e-07 1.0239480157358936\n", "data_02_0434 5.570140355534997e-07 5.590326810656076e-07 1.0036240478394802\n", "data_02_0444 5.524794596805079e-07 5.570140355534997e-07 1.0082076822830919\n", "data_02_0430 5.489352907178469e-07 5.524794596805079e-07 1.0064564421755908\n", "data_02_0443 5.459467871390915e-07 5.489352907178469e-07 1.0054739832693511\n", "data_02_0447 5.424205085181835e-07 5.459467871390915e-07 1.0065010053372454\n", "data_02_0468 5.360712035478987e-07 5.424205085181835e-07 1.011844144823044\n", "data_02_0425 5.340449951225031e-07 5.360712035478987e-07 1.0037940781093375\n", "data_02_0467 5.066723540804425e-07 5.340449951225031e-07 1.054024342993292\n", "data_02_0438 5.014370092167499e-07 5.066723540804425e-07 1.0104406830119506\n", "data_02_0429 4.994038918066035e-07 5.014370092167499e-07 1.0040710884386415\n", "data_02_0442 4.988910402085017e-07 4.994038918066035e-07 1.00102798318023\n", "data_02_0421 4.887205487635657e-07 4.988910402085017e-07 1.020810443658788\n", "data_02_0452 4.818395002871005e-07 4.887205487635657e-07 1.014280789500166\n", "data_02_0441 4.7080825196106415e-07 4.818395002871005e-07 1.0234304481284848\n", "data_02_0433 4.690750465319513e-07 4.7080825196106415e-07 1.0036949427216968\n", "data_02_0437 4.674410331405129e-07 4.690750465319513e-07 1.0034956567258553\n", "data_02_0420 4.5997632178011953e-07 4.674410331405129e-07 1.0162284687427057\n", "data_02_0451 4.5329039220439244e-07 4.5997632178011953e-07 1.0147497712078406\n", "data_02_0446 4.453788918120156e-07 4.5329039220439244e-07 1.0177635279485049\n", "data_02_0428 4.424565896011663e-07 4.453788918120156e-07 1.006604720733131\n", "data_02_0424 4.3749908369213206e-07 4.424565896011663e-07 1.0113314658106183\n", "data_02_0432 4.3734558209974527e-07 4.3749908369213206e-07 1.000350984664461\n", "data_02_0436 4.3318674322151904e-07 4.3734558209974527e-07 1.0096005682152178\n", "data_02_0450 4.262100641221257e-07 4.3318674322151904e-07 1.0163691092413862\n", "data_02_0445 4.1944403134349654e-07 4.262100641221257e-07 1.0161309549618749\n", "data_02_0427 4.184056122213615e-07 4.1944403134349654e-07 1.0024818479767084\n", "data_02_0423 4.1311974462174437e-07 4.184056122213615e-07 1.012795001130863\n", "data_02_0419 3.8768794142524627e-07 4.1311974462174437e-07 1.0655986438551683\n", "data_02_0408 3.542344482717018e-07 3.8768794142524627e-07 1.0944388478217264\n", "data_02_0418 3.436568182824559e-07 3.542344482717018e-07 1.0307796308017727\n", "data_02_0412 3.436508350200033e-07 3.436568182824559e-07 1.0000174108770963\n", "data_02_0398 3.357912171790021e-07 3.436508350200033e-07 1.0234062638893007\n", "data_02_0389 3.2715501976740725e-07 3.357912171790021e-07 1.0263978752877911\n", "data_02_0394 3.2138367696552696e-07 3.2715501976740725e-07 1.017957796912316\n", "data_02_0416 3.194680972472967e-07 3.2138367696552696e-07 1.005996153402283\n", "data_02_0403 3.071335990321196e-07 3.194680972472967e-07 1.0401600419297896\n", "data_02_0411 3.0688039545695554e-07 3.071335990321196e-07 1.0008250887932644\n", "data_02_0407 3.062881042731559e-07 3.0688039545695554e-07 1.0019337714248\n", "data_02_0402 3.049021910877446e-07 3.062881042731559e-07 1.0045454353098187\n", "data_02_0393 2.9809089008092075e-07 3.049021910877446e-07 1.022849745609384\n", "data_02_0388 2.945098238482041e-07 2.9809089008092075e-07 1.0121594118183386\n", "data_02_0397 2.9208260134706256e-07 2.945098238482041e-07 1.0083100550664346\n", "data_02_0384 2.824644866830826e-07 2.9208260134706256e-07 1.0340507041324851\n", "data_02_0406 2.8172360974302977e-07 2.824644866830826e-07 1.002629800678504\n", "data_02_0401 2.8153111478043374e-07 2.8172360974302977e-07 1.0006837431192859\n", "data_02_0417 2.810858764680368e-07 2.8153111478043374e-07 1.0015839938953588\n", "data_02_0392 2.739812566500345e-07 2.810858764680368e-07 1.025931043257741\n", "data_02_0410 2.7025876923260697e-07 2.739812566500345e-07 1.0137737895721106\n", "data_02_0415 2.650179609765315e-07 2.7025876923260697e-07 1.0197752946131058\n", "data_02_0405 2.6433964094778335e-07 2.650179609765315e-07 1.002566092721909\n", "data_02_0414 2.5775849616492943e-07 2.6433964094778335e-07 1.0255322128301172\n", "data_02_0396 2.5700836086138224e-07 2.5775849616492943e-07 1.002918719457348\n", "data_02_0391 2.485179358769336e-07 2.5700836086138224e-07 1.034164234281477\n", "data_02_0387 2.4757391546634e-07 2.485179358769336e-07 1.0038130851096143\n", "data_02_0383 2.436324550470703e-07 2.4757391546634e-07 1.016177895586646\n", "data_02_0400 2.411211184995836e-07 2.436324550470703e-07 1.0104152492453333\n", "data_02_0395 2.386285802215298e-07 2.411211184995836e-07 1.0104452629929737\n", "data_02_0399 2.307242924224641e-07 2.386285802215298e-07 1.0342585850673784\n", "data_02_0386 2.2832964938605536e-07 2.307242924224641e-07 1.0104876569593462\n", "data_02_0409 2.209925804911588e-07 2.2832964938605536e-07 1.0332005213866902\n", "data_02_0404 2.200632471515531e-07 2.209925804911588e-07 1.0042230283867695\n", "data_02_0390 2.1855319254474957e-07 2.200632471515531e-07 1.006909323031254\n", "data_02_0382 2.173831522586647e-07 2.1855319254474957e-07 1.0053823871534102\n", "data_02_0381 2.0686221829839521e-07 2.173831522586647e-07 1.0508596207021874\n", "data_02_0413 2.0388155188199395e-07 2.0686221829839521e-07 1.0146195984329494\n", "data_02_0385 2.014030584110105e-07 2.0388155188199395e-07 1.0123061362152976\n", "data_02_0360 1.9864899804127048e-07 2.014030584110105e-07 1.0138639529869053\n", "data_02_0375 1.9263548760005817e-07 1.9864899804127048e-07 1.03121704373442\n", "data_02_0370 1.9203022481550336e-07 1.9263548760005817e-07 1.003151914159015\n", "data_02_0365 1.911260702481893e-07 1.9203022481550336e-07 1.004730671049428\n", "data_02_0380 1.896072463025197e-07 1.911260702481893e-07 1.0080103686714923\n", "data_02_0369 1.7565562213219791e-07 1.896072463025197e-07 1.0794260041379253\n", "data_02_0355 1.7104081410688557e-07 1.7565562213219791e-07 1.0269807416984609\n", "data_02_0374 1.6999505684652706e-07 1.7104081410688557e-07 1.0061516921712768\n", "data_02_0364 1.694072422991218e-07 1.6999505684652706e-07 1.0034698312741988\n", "data_02_0350 1.6598945975060975e-07 1.694072422991218e-07 1.0205903588917458\n", "data_02_0363 1.5748137975093087e-07 1.6598945975060975e-07 1.0540259427059573\n", "data_02_0373 1.5391538880364847e-07 1.5748137975093087e-07 1.0231685146949898\n", "data_02_0354 1.5253345660434522e-07 1.5391538880364847e-07 1.0090598628659404\n", "data_02_0358 1.5111666453375018e-07 1.5253345660434522e-07 1.0093754853243113\n", "data_02_0349 1.452482237806647e-07 1.5111666453375018e-07 1.0404028400508858\n", "data_02_0368 1.4209152242578323e-07 1.452482237806647e-07 1.0222159725013171\n", "data_02_0359 1.372053520546384e-07 1.4209152242578323e-07 1.0356120974726921\n", "data_02_0379 1.370664689286464e-07 1.372053520546384e-07 1.0010132538401082\n", "data_02_0367 1.3261333165400434e-07 1.370664689286464e-07 1.033579861233413\n", "data_02_0378 1.325185368645295e-07 1.3261333165400434e-07 1.0007153322977882\n", "data_02_0362 1.2827295093725083e-07 1.325185368645295e-07 1.0330980607856721\n", "data_02_0372 1.2748598803605932e-07 1.2827295093725083e-07 1.006172936440426\n", "data_02_0344 1.2738010149606113e-07 1.2748598803605932e-07 1.0008312643713937\n", "data_02_0353 1.2704938988446473e-07 1.2738010149606113e-07 1.0026030161333095\n", "data_02_0345 1.2601085957679468e-07 1.2704938988446473e-07 1.0082415937099227\n", "data_02_0343 1.216743623001515e-07 1.2601085957679468e-07 1.0356401890641984\n", "data_02_0357 1.1836471180962112e-07 1.216743623001515e-07 1.0279614628374516\n", "data_02_0348 1.1627477364692665e-07 1.1836471180962112e-07 1.017974132282903\n", "data_02_0371 1.1505417473274633e-07 1.1627477364692665e-07 1.0106089059090257\n", "data_02_0366 1.1444872514963532e-07 1.1505417473274633e-07 1.005290138289609\n", "data_02_0352 1.1166505000103068e-07 1.1444872514963532e-07 1.0249287950758\n", "data_02_0356 1.1066799539378786e-07 1.1166505000103068e-07 1.0090094214112673\n", "data_02_0377 1.0535397743098524e-07 1.1066799539378786e-07 1.050439652041459\n", "data_02_0351 1.024389242356505e-07 1.0535397743098524e-07 1.028456499490652\n", "data_02_0361 1.0153767963564204e-07 1.024389242356505e-07 1.008875962137824\n", "data_02_0347 1.0134012736906253e-07 1.0153767963564204e-07 1.0019493982463636\n", "data_02_0376 9.832303420881312e-08 1.0134012736906253e-07 1.030685517229278\n", "data_02_0342 9.289929706956034e-08 9.832303420881312e-08 1.0583829728570673\n", "data_02_0329 9.160053376660972e-08 9.289929706956034e-08 1.0141785560579784\n", "data_02_0346 9.11694229508457e-08 9.160053376660972e-08 1.0047286776839255\n", "data_02_0111 9.091592748881475e-08 9.11694229508457e-08 1.0027882404000348\n", "data_02_0074 9.069444008367644e-08 9.091592748881475e-08 1.0024421277085338\n", "data_02_0137 9.032979636101275e-08 9.069444008367644e-08 1.004036804436117\n", "data_02_0095 8.745287729949787e-08 9.032979636101275e-08 1.0328967913961522\n", "data_02_0148 8.648924272107816e-08 8.745287729949787e-08 1.011141669739523\n", "data_02_0125 8.424422939458488e-08 8.648924272107816e-08 1.0266488677340502\n", "data_02_0334 8.326863601499629e-08 8.424422939458488e-08 1.0117162166486418\n", "data_02_0112 8.320700382561938e-08 8.326863601499629e-08 1.0007407091535956\n", "data_02_0075 8.138272522950375e-08 8.320700382561938e-08 1.0224160421142332\n", "data_02_0126 8.103538161033434e-08 8.138272522950375e-08 1.0042863205215673\n", "data_02_0096 8.04529530328609e-08 8.103538161033434e-08 1.007239368544192\n", "data_02_0076 8.03161118419718e-08 8.04529530328609e-08 1.0017037825630595\n", "data_02_0341 7.826190779854336e-08 8.03161118419718e-08 1.0262478145653724\n", "data_02_0138 7.73441165303848e-08 7.826190779854336e-08 1.011866335919656\n", "data_02_0313 7.682170527795377e-08 7.73441165303848e-08 1.0068003079408463\n", "data_02_0097 7.680681819199071e-08 7.682170527795377e-08 1.000193825057638\n", "data_02_0176 7.66773188177075e-08 7.680681819199071e-08 1.001688887617355\n", "data_02_0328 7.592391064574658e-08 7.66773188177075e-08 1.0099232002876701\n", "data_02_0113 7.555670244097317e-08 7.592391064574658e-08 1.004860034820343\n", "data_02_0327 7.544625046424394e-08 7.555670244097317e-08 1.0014639823191953\n", "data_02_0127 7.131655318571188e-08 7.544625046424394e-08 1.057906574197131\n", "data_02_0312 6.9114916843674e-08 7.131655318571188e-08 1.0318547202627415\n", "data_02_0139 6.909313831848126e-08 6.9114916843674e-08 1.0003152053260682\n", "data_02_0340 6.902051779125408e-08 6.909313831848126e-08 1.0010521585399694\n", "data_02_0333 6.774037272934449e-08 6.902051779125408e-08 1.018897815443449\n", "data_02_0307 6.766458522400373e-08 6.774037272934449e-08 1.0011200468471042\n", "data_02_0185 6.763927671203422e-08 6.766458522400373e-08 1.0003741688734678\n", "data_02_0150 6.745632682542282e-08 6.763927671203422e-08 1.0027121234615233\n", "data_02_0177 6.735833860900495e-08 6.745632682542282e-08 1.0014547303042414\n", "data_02_0193 6.662207488596927e-08 6.735833860900495e-08 1.011051347834721\n", "data_02_0208 6.626149627555743e-08 6.662207488596927e-08 1.0054417517061842\n", "data_02_0098 6.592270735973779e-08 6.626149627555743e-08 1.0051391838925985\n", "data_02_0302 6.582978203072585e-08 6.592270735973779e-08 1.0014116001321192\n", "data_02_0140 6.57620486951575e-08 6.582978203072585e-08 1.0010299760562864\n", "data_02_0077 6.529940874175905e-08 6.57620486951575e-08 1.007084902640207\n", "data_02_0201 6.30318615248224e-08 6.529940874175905e-08 1.0359746192176742\n", "data_02_0114 6.245921319803077e-08 6.30318615248224e-08 1.0091683563956533\n", "data_02_0318 6.239185556929697e-08 6.245921319803077e-08 1.001079590086225\n", "data_02_0178 6.168574049096606e-08 6.239185556929697e-08 1.0114469741744336\n", "data_02_0326 6.156214131519181e-08 6.168574049096606e-08 1.0020077140452512\n", "data_02_0215 6.154482629620753e-08 6.156214131519181e-08 1.0002813399602584\n", "data_02_0311 6.138472410942559e-08 6.154482629620753e-08 1.0026081763680577\n", "data_02_0099 6.0730378062034e-08 6.138472410942559e-08 1.0107746084953266\n", "data_02_0301 6.069713498226437e-08 6.0730378062034e-08 1.0005476877908546\n", "data_02_0186 6.061854749380371e-08 6.069713498226437e-08 1.0012964264521298\n", "data_02_0078 6.055514982039741e-08 6.061854749380371e-08 1.0010469410709797\n", "data_02_0079 5.949129213300473e-08 6.055514982039741e-08 1.0178825782606002\n", "data_02_0306 5.91244260488755e-08 5.949129213300473e-08 1.0062049834331745\n", "data_02_0332 5.727316434403084e-08 5.91244260488755e-08 1.0323233703960273\n", "data_02_0141 5.719419670667194e-08 5.727316434403084e-08 1.001380693180532\n", "data_02_0115 5.716266762862783e-08 5.719419670667194e-08 1.0005515676463692\n", "data_02_0128 5.69555024196704e-08 5.716266762862783e-08 1.0036373168553752\n", "data_02_0168 5.6797071300329324e-08 5.69555024196704e-08 1.0027894240972977\n", "data_02_0100 5.659626681287352e-08 5.6797071300329324e-08 1.0035480164817183\n", "data_02_0216 5.52523403110799e-08 5.659626681287352e-08 1.024323431265121\n", "data_02_0217 5.47644941180883e-08 5.52523403110799e-08 1.008908074489644\n", "data_02_0278 5.440684246618147e-08 5.47644941180883e-08 1.00657365205726\n", "data_02_0194 5.336290930438235e-08 5.440684246618147e-08 1.019562898189162\n", "data_02_0169 5.33316427844242e-08 5.336290930438235e-08 1.0005862658325477\n", "data_02_0325 5.3061671911245655e-08 5.33316427844242e-08 1.0050878697081034\n", "data_02_0284 5.276553591771626e-08 5.3061671911245655e-08 1.0056122995508128\n", "data_02_0151 5.236707142103079e-08 5.276553591771626e-08 1.0076090658857324\n", "data_02_0116 5.235342965295829e-08 5.236707142103079e-08 1.0002605706667724\n", "data_02_0129 5.1837413048961746e-08 5.235342965295829e-08 1.0099545207533631\n", "data_02_0209 5.183708040770919e-08 5.1837413048961746e-08 1.0000064170522325\n", "data_02_0101 5.1669753255601975e-08 5.183708040770919e-08 1.0032383965775775\n", "data_02_0331 5.107873307696695e-08 5.1669753255601975e-08 1.0115707681657737\n", "data_02_0117 5.10137341413657e-08 5.107873307696695e-08 1.0012741458098544\n", "data_02_0170 4.9929659581962395e-08 5.10137341413657e-08 1.0217120358616452\n", "data_02_0202 4.97999691571996e-08 4.9929659581962395e-08 1.0026042270097277\n", "data_02_0187 4.912206238348923e-08 4.97999691571996e-08 1.0138004542321135\n", "data_02_0195 4.909545697928861e-08 4.912206238348923e-08 1.0005419117335408\n", "data_02_0179 4.884858914365607e-08 4.909545697928861e-08 1.005053735224707\n", "data_02_0152 4.8736593849818535e-08 4.884858914365607e-08 1.0022979712981717\n", "data_02_0338 4.863241454752601e-08 4.8736593849818535e-08 1.0021421782829787\n", "data_02_0080 4.776368500103665e-08 4.863241454752601e-08 1.0181880762857913\n", "data_02_0300 4.730771729074619e-08 4.776368500103665e-08 1.0096383367535606\n", "data_02_0289 4.716165846814214e-08 4.730771729074619e-08 1.0030969823231028\n", "data_02_0305 4.6948542791565873e-08 4.716165846814214e-08 1.0045393459286356\n", "data_02_0130 4.6783812999108644e-08 4.6948542791565873e-08 1.0035210852193763\n", "data_02_0317 4.676572950679156e-08 4.6783812999108644e-08 1.000386682566653\n", "data_02_0142 4.6327681479980905e-08 4.676572950679156e-08 1.0094554273561034\n", "data_02_0203 4.572493317313839e-08 4.6327681479980905e-08 1.0131820489394747\n", "data_02_0180 4.515687271376087e-08 4.572493317313839e-08 1.0125797121288342\n", "data_02_0236 4.4905309913886836e-08 4.515687271376087e-08 1.0056020724577215\n", "data_02_0210 4.400392577456567e-08 4.4905309913886836e-08 1.0204841755242249\n", "data_02_0081 4.364525646736216e-08 4.400392577456567e-08 1.0082178302118976\n", "data_02_0131 4.354492864855354e-08 4.364525646736216e-08 1.0023040069629774\n", "data_02_0310 4.337831336396784e-08 4.354492864855354e-08 1.0038409811646596\n", "data_02_0153 4.317816058687787e-08 4.337831336396784e-08 1.0046355095809893\n", "data_02_0339 4.314213555749596e-08 4.317816058687787e-08 1.0008350312036338\n", "data_02_0196 4.23775629408846e-08 4.314213555749596e-08 1.01804192038315\n", "data_02_0188 4.2228768481487626e-08 4.23775629408846e-08 1.0035235330024412\n", "data_02_0229 4.208906135417072e-08 4.2228768481487626e-08 1.0033193215249279\n", "data_02_0290 4.1538868891419455e-08 4.208906135417072e-08 1.0132452442118594\n", "data_02_0172 4.115915270056277e-08 4.1538868891419455e-08 1.0092255589812347\n", "data_02_0102 4.110164335007903e-08 4.115915270056277e-08 1.0013991983238701\n", "data_02_0330 4.090697832851984e-08 4.110164335007903e-08 1.004758724049375\n", "data_02_0337 4.0521742966527407e-08 4.090697832851984e-08 1.0095068803508933\n", "data_02_0309 3.974405981438906e-08 4.0521742966527407e-08 1.0195672801362077\n", "data_02_0232 3.9588237640243336e-08 3.974405981438906e-08 1.0039360725163307\n", "data_02_0171 3.952384984565909e-08 3.9588237640243336e-08 1.0016290871166569\n", "data_02_0230 3.945230415583387e-08 3.952384984565909e-08 1.0018134730367743\n", "data_02_0242 3.921650266905879e-08 3.945230415583387e-08 1.0060128127376622\n", "data_02_0316 3.909765867391486e-08 3.921650266905879e-08 1.003039670383721\n", "data_02_0239 3.8972549190214436e-08 3.909765867391486e-08 1.0032101950295782\n", "data_02_0237 3.875843721078654e-08 3.8972549190214436e-08 1.0055242676133576\n", "data_02_0299 3.8590618949182734e-08 3.875843721078654e-08 1.004348680227824\n", "data_02_0324 3.8269657665395815e-08 3.8590618949182734e-08 1.0083868344627795\n", "data_02_0249 3.8109111998342565e-08 3.8269657665395815e-08 1.0042127895045214\n", "data_02_0143 3.81075391790093e-08 3.8109111998342565e-08 1.000041273180246\n", "data_02_0118 3.8101098363225644e-08 3.81075391790093e-08 1.0001690454097216\n", "data_02_0189 3.800245193459355e-08 3.8101098363225644e-08 1.0025957911558412\n", "data_02_0082 3.7742316519203115e-08 3.800245193459355e-08 1.0068924072336174\n", "data_02_0238 3.756009448605654e-08 3.7742316519203115e-08 1.0048514796259158\n", "data_02_0323 3.751518306258622e-08 3.756009448605654e-08 1.001197153253801\n", "data_02_0181 3.706270956353247e-08 3.751518306258622e-08 1.0122083221756393\n", "data_02_0231 3.682098674305962e-08 3.706270956353247e-08 1.0065648110453862\n", "data_02_0103 3.677846288057728e-08 3.682098674305962e-08 1.0011562164144927\n", "data_02_0255 3.6284794666359044e-08 3.677846288057728e-08 1.0136053743381366\n", "data_02_0204 3.616483795118732e-08 3.6284794666359044e-08 1.0033169432511666\n", "data_02_0272 3.5992364955312874e-08 3.616483795118732e-08 1.0047919328471075\n", "data_02_0154 3.5938992759256385e-08 3.5992364955312874e-08 1.001485077681893\n", "data_02_0083 3.589503422205851e-08 3.5938992759256385e-08 1.0012246411836783\n", "data_02_0315 3.540837869950097e-08 3.589503422205851e-08 1.013744078108959\n", "data_02_0271 3.540526187431156e-08 3.540837869950097e-08 1.0000880328240607\n", "data_02_0132 3.5391466146159544e-08 3.540526187431156e-08 1.00038980380454\n", "data_02_0211 3.531823528704799e-08 3.5391466146159544e-08 1.0020734574792984\n", "data_02_0283 3.5082251142443155e-08 3.531823528704799e-08 1.0067265964104377\n", "data_02_0304 3.4693944862226126e-08 3.5082251142443155e-08 1.0111923357738373\n", "data_02_0266 3.438015840623516e-08 3.4693944862226126e-08 1.0091269636481388\n", "data_02_0282 3.424046100777206e-08 3.438015840623516e-08 1.0040798924532992\n", "data_02_0308 3.4026211474780814e-08 3.424046100777206e-08 1.0062966026397044\n", "data_02_0259 3.394382336929748e-08 3.4026211474780814e-08 1.0024271899068935\n", "data_02_0119 3.3927979328715124e-08 3.394382336929748e-08 1.0004669903983627\n", "data_02_0253 3.3906648726021295e-08 3.3927979328715124e-08 1.0006290979349268\n", "data_02_0197 3.380955191293169e-08 3.3906648726021295e-08 1.002871875183074\n", "data_02_0251 3.359312442011387e-08 3.380955191293169e-08 1.0064426127832347\n", "data_02_0144 3.324770433476301e-08 3.359312442011387e-08 1.010389291298819\n", "data_02_0182 3.304672707119537e-08 3.324770433476301e-08 1.0060816087213313\n", "data_02_0336 3.291690626091583e-08 3.304672707119537e-08 1.0039438946433943\n", "data_02_0264 3.273172069285836e-08 3.291690626091583e-08 1.0056576789773803\n", "data_02_0104 3.252849058747102e-08 3.273172069285836e-08 1.0062477570190613\n", "data_02_0298 3.249594062884612e-08 3.252849058747102e-08 1.0010016622998137\n", "data_02_0250 3.242477208092828e-08 3.249594062884612e-08 1.0021948819791302\n", "data_02_0256 3.23632897138752e-08 3.242477208092828e-08 1.0018997564090872\n", "data_02_0173 3.2333302089077816e-08 3.23632897138752e-08 1.0009274532095351\n", "data_02_0258 3.22693739170363e-08 3.2333302089077816e-08 1.0019810787840469\n", "data_02_0243 3.21705518617872e-08 3.22693739170363e-08 1.0030718172219633\n", "data_02_0190 3.214098309363574e-08 3.21705518617872e-08 1.0009199708691334\n", "data_02_0262 3.193217453326343e-08 3.214098309363574e-08 1.0065391274920785\n", "data_02_0269 3.151817992901874e-08 3.193217453326343e-08 1.0131351050465807\n", "data_02_0120 3.150506414970302e-08 3.151817992901874e-08 1.0004163070182432\n", "data_02_0191 3.141980375375175e-08 3.150506414970302e-08 1.0027135877938476\n", "data_02_0261 3.124496701944196e-08 3.141980375375175e-08 1.0055956767117404\n", "data_02_0218 3.055804546327236e-08 3.124496701944196e-08 1.022479237325411\n", "data_02_0252 3.0186530033837795e-08 3.055804546327236e-08 1.0123073247908294\n", "data_02_0322 3.0117442642990743e-08 3.0186530033837795e-08 1.0022939328437015\n", "data_02_0314 3.009793464370751e-08 3.0117442642990743e-08 1.0006481507623086\n", "data_02_0265 3.005155814323877e-08 3.009793464370751e-08 1.0015432311445445\n", "data_02_0268 2.9905636453243234e-08 3.005155814323877e-08 1.0048794042629283\n", "data_02_0155 2.9791696455670336e-08 2.9905636453243234e-08 1.0038245555348766\n", "data_02_0267 2.959674789256824e-08 2.9791696455670336e-08 1.0065868237892126\n", "data_02_0198 2.8804755286080425e-08 2.959674789256824e-08 1.027495203435057\n", "data_02_0084 2.8541810283806125e-08 2.8804755286080425e-08 1.0092126252560611\n", "data_02_0303 2.846204854188475e-08 2.8541810283806125e-08 1.0028023893573226\n", "data_02_0257 2.8461991094541266e-08 2.846204854188475e-08 1.0000020183880773\n", "data_02_0281 2.8445644744530024e-08 2.8461991094541266e-08 1.000574652118384\n", "data_02_0219 2.8276179870352716e-08 2.8445644744530024e-08 1.0059932025809113\n", "data_02_0174 2.7830212773979406e-08 2.8276179870352716e-08 1.0160245665383585\n", "data_02_0212 2.7693025488395505e-08 2.7830212773979406e-08 1.0049538569067287\n", "data_02_0133 2.7647622286096888e-08 2.7693025488395505e-08 1.0016422100182354\n", "data_02_0297 2.7424003583534e-08 2.7647622286096888e-08 1.0081541231527973\n", "data_02_0205 2.719201753826118e-08 2.7424003583534e-08 1.008531402458328\n", "data_02_0321 2.6960865849891603e-08 2.719201753826118e-08 1.0085736003308108\n", "data_02_0277 2.6917632473839484e-08 2.6960865849891603e-08 1.0016061359071655\n", "data_02_0105 2.682414247631298e-08 2.6917632473839484e-08 1.0034852930567701\n", "data_02_0199 2.6596847855458792e-08 2.682414247631298e-08 1.008545923264645\n", "data_02_0145 2.6322022042612023e-08 2.6596847855458792e-08 1.0104409080883627\n", "data_02_0134 2.5886623017233462e-08 2.6322022042612023e-08 1.0168194601933478\n", "data_02_0244 2.586085837913866e-08 2.5886623017233462e-08 1.000996279308176\n", "data_02_0288 2.5814320024567325e-08 2.586085837913866e-08 1.001802811560678\n", "data_02_0280 2.5567505217879908e-08 2.5814320024567325e-08 1.009653456783684\n", "data_02_0200 2.5161855134809113e-08 2.5567505217879908e-08 1.0161216285880932\n", "data_02_0286 2.5066605124049343e-08 2.5161855134809113e-08 1.003799876779819\n", "data_02_0085 2.5060032212241507e-08 2.5066605124049343e-08 1.0002622866464084\n", "data_02_0270 2.501478009837129e-08 2.5060032212241507e-08 1.0018090150579881\n", "data_02_0263 2.4817553536481463e-08 2.501478009837129e-08 1.0079470589879016\n", "data_02_0156 2.461345700260151e-08 2.4817553536481463e-08 1.008292071034897\n", "data_02_0276 2.4560455607394448e-08 2.461345700260151e-08 1.0021579972315784\n", "data_02_0285 2.4538554136531483e-08 2.4560455607394448e-08 1.0008925330620992\n", "data_02_0121 2.405860616838822e-08 2.4538554136531483e-08 1.0199491177828035\n", "data_02_0296 2.405840293667572e-08 2.405860616838822e-08 1.0000084474315705\n", "data_02_0207 2.3903482341567128e-08 2.405840293667572e-08 1.0064810889432285\n", "data_02_0449 2.3732450803006916e-08 2.3903482341567128e-08 1.0072066530330084\n", "data_02_0275 2.3517630583804178e-08 2.3732450803006916e-08 1.0091344329284038\n", "data_02_0183 2.350059371293589e-08 2.3517630583804178e-08 1.0007249549129011\n", "data_02_0206 2.3061833868340542e-08 2.350059371293589e-08 1.0190253666339033\n", "data_02_0220 2.2994991724143692e-08 2.3061833868340542e-08 1.0029068131443017\n", "data_02_0146 2.274100321319186e-08 2.2994991724143692e-08 1.0111687469796626\n", "data_02_0221 2.25730278406735e-08 2.274100321319186e-08 1.0074414196316053\n", "data_02_0295 2.2222329238385043e-08 2.25730278406735e-08 1.0157813611042485\n", "data_02_0106 2.220331189048818e-08 2.2222329238385043e-08 1.0008565095149167\n", "data_02_0287 2.1985352902847122e-08 2.220331189048818e-08 1.00991382711045\n", "data_02_0335 2.1740529587537427e-08 2.1985352902847122e-08 1.0112611477252162\n", "data_02_0157 2.1600877912403635e-08 2.1740529587537427e-08 1.0064650925624463\n", "data_02_0086 2.128119346174364e-08 2.1600877912403635e-08 1.0150219230530788\n", "data_02_0135 2.0605336844278892e-08 2.128119346174364e-08 1.0328000761439822\n", "data_02_0245 2.0214721336813185e-08 2.0605336844278892e-08 1.019323318929673\n", "data_02_0147 2.012244450124676e-08 2.0214721336813185e-08 1.004585766682607\n", "data_02_0122 2.00493566983083e-08 2.012244450124676e-08 1.0036453939165355\n", "data_02_0107 1.938732662337907e-08 2.00493566983083e-08 1.0341475690686972\n", "data_02_0184 1.9329828054146482e-08 1.938732662337907e-08 1.0029746032438325\n", "data_02_0233 1.924222296865813e-08 1.9329828054146482e-08 1.004552752851427\n", "data_02_0175 1.9132002251777512e-08 1.924222296865813e-08 1.0057610654352906\n", "data_02_0192 1.906093847893854e-08 1.9132002251777512e-08 1.0037282410264057\n", "data_02_0214 1.8668537337049456e-08 1.906093847893854e-08 1.0210193832973902\n", "data_02_0246 1.8085101445965826e-08 1.8668537337049456e-08 1.0322605816078392\n", "data_02_0224 1.7865150745960694e-08 1.8085101445965826e-08 1.012311718111579\n", "data_02_0123 1.7784121263186588e-08 1.7865150745960694e-08 1.0045562826284726\n", "data_02_0234 1.7743078014120953e-08 1.7784121263186588e-08 1.0023131978021498\n", "data_02_0087 1.768952147617265e-08 1.7743078014120953e-08 1.0030275854561947\n", "data_02_0136 1.6856231726262295e-08 1.768952147617265e-08 1.049435114766017\n", "data_02_0222 1.685224351916152e-08 1.6856231726262295e-08 1.0002366573386055\n", "data_02_0223 1.6841140219094164e-08 1.685224351916152e-08 1.0006592962188372\n", "data_02_0108 1.6692853350424656e-08 1.6841140219094164e-08 1.0088832547412114\n", "data_02_0124 1.6497853114554667e-08 1.6692853350424656e-08 1.0118197340293906\n", "data_02_0274 1.6468220100291053e-08 1.6497853114554667e-08 1.0017994060124986\n", "data_02_0158 1.6092249696010172e-08 1.6468220100291053e-08 1.0233634458440013\n", "data_02_0240 1.5068606562892854e-08 1.6092249696010172e-08 1.067932169364491\n", "data_02_0320 1.503695553233086e-08 1.5068606562892854e-08 1.0021048828995964\n", "data_02_0247 1.417393337054734e-08 1.503695553233086e-08 1.060887979308329\n", "data_02_0248 1.4169020848167241e-08 1.417393337054734e-08 1.0003467086704678\n", "data_02_0088 1.3875326621797155e-08 1.4169020848167241e-08 1.021166653180525\n", "data_02_0235 1.346834787193108e-08 1.3875326621797155e-08 1.0302174218943547\n", "data_02_0160 1.3120044854721955e-08 1.346834787193108e-08 1.0265473953074002\n", "data_02_0161 1.2298610270804686e-08 1.3120044854721955e-08 1.0667908459435655\n", "data_02_0260 1.2167262041760474e-08 1.2298610270804686e-08 1.0107952165896812\n", "data_02_0159 1.1999987829094322e-08 1.2167262041760474e-08 1.01393953186024\n", "data_02_0294 1.1975931948430658e-08 1.1999987829094322e-08 1.0020086854841235\n", "data_02_0273 1.1970562880034427e-08 1.1975931948430658e-08 1.0004485226342352\n", "data_02_0241 1.1800058078610208e-08 1.1970562880034427e-08 1.0144494883235609\n", "data_02_0109 1.1756312711164799e-08 1.1800058078610208e-08 1.0037210108747672\n", "data_02_0254 1.1681364901973924e-08 1.1756312711164799e-08 1.0064160147225785\n", "data_02_0089 1.0944847533250584e-08 1.1681364901973924e-08 1.0672935247828526\n", "data_02_0319 1.0710358622772656e-08 1.0944847533250584e-08 1.0218936562945102\n", "data_02_0291 9.647637171764193e-09 1.0710358622772656e-08 1.1101535466236994\n", "data_02_0110 9.297541194942495e-09 9.647637171764193e-09 1.0376546841235978\n", "data_02_0090 8.946145284495091e-09 9.297541194942495e-09 1.0392790301602213\n", "data_02_0440 8.921394664214538e-09 8.946145284495091e-09 1.002774299446681\n", "data_02_0292 8.845596524401773e-09 8.921394664214538e-09 1.0085690252323476\n", "data_02_0293 8.013189234840733e-09 8.845596524401773e-09 1.10387964955848\n", "data_02_0091 5.400196979058821e-09 8.013189234840733e-09 1.4838698043635659\n", "376\n" ] } ], "source": [ "print(gonio0.chi2())\n", "print(len(search_outliers(0)))\n", "# for lbl in search_outliers(7):\n", "# gonio7.single_geometries.pop(lbl)\n", "# gonio7.refine2()\n", "# gonio7 = complete_gonio(module_id=7)\n", "# gonio7.refine2()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Overlay of the differents results\n", "\n", "We are getting to an end. Here are the first actually integrated data" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":22: RuntimeWarning: invalid value encountered in divide\n", " ax.plot(radial, summed/counted, label=\"Merged\")\n", ":24: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEbCAYAAADERMP2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAAsTAAALEwEAmpwYAABYYElEQVR4nO2dd5gV1fn4P+8uCwsC0hFBRAQFBESKoChBUUGi8DWWCHYSTSxRY/QnsRtNRE00RmKMMSoaATWJEQsKFuwlYEBQVFBRl97bsrDl/P6Yucvs3DMz595dtsD7eZ59ds7bZ245d8o5R4wxKIqiKEoUOTVdgKIoilK70Y5CURRFiUU7CkVRFCUW7SgURVGUWLSjUBRFUWLRjkJRFEWJRTsKRQkhIh1FZIuI5NZ0LdlQ1+tXah/aUSh1HhG5TERmi8h2EXkspBsqImX+F+cWESkQkadFZEBUPGPMd8aYxsaYUofcnUTEiEi9KtiVrBCRJSJyXKqdSf2K4oJ2FMruwDLgduCRKL0xpjHQBBgEfA68LSLDqqm+rKnJDkhRUmhHodR5jDH/Nsb8B1ibYGeMMQXGmJuAh4E7bXbhswQRmSUit4nIuyKyWURmiEgr3/wt//8G/4zlCN9nnIgsFJH1IvKKiOwfiH+CiHwhIhtF5AEReVNEfurrzvfz3Csia4FbRORAEXldRNaKyBoReVJEmvn2TwAdgef9/P/PUv++IjJNRNaJyGIRuTBQyy3+Gdbj/r59KiL9M3sFlN0d7SiUPZV/A31FZC9H+7HABUAboD5wtS8f4v9v5l/ueV9ERgPXAT8CWgNvA1MA/A7mn8CvgZbAF8CRoVwDga+BtsBvAQHuAPYFugP7AbcAGGPOAb4DTvbz32WpfSpQ4PufBvxORI4N6Ef5Ns2AacBEx2Oi7CHsth2FiDwiIqtEZIGD7RAR+VhESkTktJDuZRHZICIv7LpqlRpgGd4XcDNH+0eNMV8aY7YBTwN9Ymx/DtxhjFlojCkBfgf08c8qRgKf+mdBJcCfgBXh2owx9xtjSowx24wxi40xM40x240xq4F7gB+4FC0i+wGDgWuNMUXGmLl4Z1PnBszeMca85N/TeAI41CW2suew23YUwGPACEfb74DzgckW3d3AOVVTklKLaA8YYIOjffDLvBBoHGO7P3Cf/wNjA7AOr1Nqj/er/vuUofFm5SwI+X8fbIhIWxGZKiJLRWQT8A+gFW7sC6wzxmwOyL71a0kR3rd8vTeiBNltOwpjzFt4H9By/Gu9L4vIHBF5W0S6+bZLjDGfAGWWOK8Bm8Nypc5zCvCxMWZrJePYpl/+HviZMaZZ4K+hMeY9YDnQIWUoIhJsR8T8nS/rZYxpCpyN1/HE1ZBiGdBCRJoEZB2BpXE7pShBdtuOIoKHgF8YY/rhXWN+oIbrUaoAEaknIvlALpArItZfxOLRXkRuBn6Kdx+hsqzG+4HROSB7EPi1iBzi591bRE73dS8CvUTk//waLwX2ScjRBNgCbBSR9sA1If3KUP5yjDHfA+8Bd/jHpTfwE7yzEkVxYo/pKESkMd5Nw2dEZC7wV6BdjRalVBU3ANuA8Xi/trf5shT7isgWvC/b/wK9gKHGmBmVTWyMKcS74fyuf6lpkDHmWbwnqqb6l4oWACf69muA04G78J7S6gHMBrbHpLkV6AtsxOto/h3S3wHc4Oe/OuwMjAE64Z1dPAvcbIx5NYvdVfZQZHdeuEhEOgEvGGN6ikhT4AtjTGTn4A/WesEY88+QfChwtTHmpF1XrbInIiI5ePcozjLGvFHT9SiKjT3mjMIYswn4JnUJwL8MoU93KNWOiAwXkWYi0gDv8pcAH9RwWYoSyW7bUYjIFOB94GDxpm34CXAW8BMRmQd8Coz2bQeISAHeJYG/isingThvA88Aw/w4w6t7X5TdjiOAr4A1wMnA//mP3SpKrWS3vvSkKIqiVJ7d9oxCURRFqRq0o1AURVFi2e1GX7Zq1cp06tSppstQFEWpU8yZM2eNMaa1TbfbdRSdOnVi9uzZNV2GoihKnUJEvo3S6aUnRVEUJRbtKBRFUZRYtKNQFEVRYtnt7lEoirJ7UVxcTEFBAUVFRTVdym5Bfn4+HTp0IC8vz9lHOwpFUWo1BQUFNGnShE6dOuHNyq5kizGGtWvXUlBQwAEHHODsp5eeFEWp1RQVFdGyZUvtJKoAEaFly5YZn51pR6EoSq1HO4mqI5tjqR2FoiiKEot2FIqiKAm8/PLLHHzwwXTp0oUJEyYk2i9ZsoSePXsm2kyePDnrmiZNmkTXrl3p2rUrkyZNAqCwsJAf/vCHdOvWjUMOOYTx48dnHT+I3syual71Fw477jh3vYssqR2VI2k7RZxtVMwk4uIAfPwx9O1b0T5sE5aHfYLY4tlqtcVIyVx8ovJE1RbWh3PExY7L4VJTNjlsPjZ9lMyG62tto2VL2LSpoqxp03S7sE3Q1uafkgVjBWX+dulee3HpxRcz8z//oUP37gzo149Rxx5Lj8MPt+fbtAk2b7bHDJDqKMaOHRtpE+W/bt06br31VmbPno2I0K9fP0YNHUqDBg24+uqrOeaYY9ixYwfDhg1j+vTpnHjiifZaHdntphnv37+/qdEpPIYO9f7PmuWud5EltaNyJG2niLONiplEXByAuXOhT5+K9mGbsDzsE8QWz1arLUZK5uITlSeqtrA+nCMudlwOl5qyyWHzsemjZDZcX2sLC2++me777gvArR+u5rN126Fho3TDbYX2AA0bpesCsh4H7sPNJx/iyb/4wvt/8MHl2++vW8ct11zDK3//Oxx8MHdcdRUAv77nngoh58yZw7hx42D7dk4YPJjpH37IggULWPLaa5xz7bVsLSsDYOLEiRx55JEMGjSIhQsXcsABB3DeiSdyynHHcc4tt7B169YKdhVq8pkyZQqzZs3ir3/9KwA/+9nPGHrQQYw56aQKdldccQU9e/bkwgsvrHhMFy6ke/fuFWQiMscY0992CPXSk6IoSgxLly5lv3Y7V1DusM8+LF25Ms3uggsu4P7772fec89VkLdp2ZKZjzzCxx9/zFNPPcXll18OwIQJEzj66KOZO3cuvzz/fM9u5sw0u8ia9ttvZ00dOqTVtGHDBp5//nmGDRuW1X4H0UtPiqLUGW4e6E9uGvjVXE7ql3eYwNmBVWaLlSEbNmxgw4YNDBkyBL74gnNGj2b6hx8CUFxSwmW33cbcr78mNzeXL7/80hqjuKSEyy68kLlz58bauVBSUsKYMWO4/PLL6dy5c9ZxUmhHoSiKEkP79u35fvny8nbBihW0b9vW2f/exx6jbcuWzHv2WcrKysjPz4+2a9uWefPmxdqlapoVuOxcUFDA0IMOKm9fdNFFdO3alSuvvNK5zjj00pOiKEoMAwYMYNG33/JNQQE7duxg6ksvMerYYyvYNGvWjGbNmvHOO+8A8OTzz5frNm7ZQrvWrcnJyeGJJ56gtLQUgCZNmrA5cNN745YttGvXLs3OxvDhw5kxYwbr169n/fr1zJgxg+FHHQXADTfcwMaNG/njH/9YVYdAb2ZXOUmnsza9iyypHZUjaTtFnG1UzCTi4gB8/TUET4ttNmF52CeILZ6tVluMlMzFJypPVG1hfThHXOy4HC41ZZPD5mPTR8lsuL7WFhZu3073wK9lAGy/tqNGG+fnp+uCsmCsoCyw/dJ//sOV11xDaVkZ4849l+uvvTathtTNbAFOGDaMl2bMYMGCBSxasIBTx4xBcnIYMWIEf/7zn9myZQvFxcUMHz6ctWvXcv5ZZ3HSyJGcOnYsIlLBzlon8Mgjj/C73/0OgOuvv54LxoyhoKCA/bp2pVu3bjRo0ACAyy67jJ/+9KcVj2mGN7O1o1AUpVZj+1JTKkemHYXeo6hqUoNsFixw17vIktpROZK2U8TZRsVMIi4OwKJF0LVrRfuwTVge9glii2er1RYjJXPxicoTVVtYH84RFzsuh0tN2eSw+dj0UTIbrq+1jfvuA//R0nIOOSTd7tNP7f6HHJKuC8qCsYIyl20bYX2SfZKNi38mdlmgHUVVU1CQud5FltSO0rlsu+iTfF1qCbd37HA/Hil5lE9UPJutzS4oS/KJyhNXW1gfdRwyieFSUzY5bD42fZwsTKavdZCSEs/fJUcmuiSZy7ZLrkrUPn/+fM457TSv0bAhAA0aNOBD/4mqjPNkiXYUiqIotZRevXoxd+pUr3HYYTVWR4099SQi+4nIGyLymYh8KiJXWGxERP4kIotF5BMRiZi7QVEURdlV1OQZRQnwK2PMxyLSBJgjIjONMZ8FbE4Euvp/A4G/+P8VRVGUaqLGOgpjzHJgub+9WUQWAu2BYEcxGnjceI9mfSAizUSkne9bO0m6kWTTu8iS2lE6l20XfZKvSy3h9vz57scjJY/yiYpns7XZBWVJPlF54moL66OOQyYxXGrKJofNx6aPk4XJ9LUOUr9++fX5WOJsbLokmcu2S65dUXtl7LKgVjweKyKdgLeAnsaYTQH5C8AEY8w7fvs14FpjTOTzrzX+eOz333v/A/OwJOpdZEntqBxJ2ynibKNiJhEXB2DZMvAne4u0CcvDPkFs8Wy12mKkZC4+UXmiagvrwzniYsflcKkpmxw2H5s+SmbD9bW2sHDDBrqHxwvVr59uGHUzt379dF1QFowVlLls2wjrk+yTbFz8M7GjDj4eKyKNgX8BVwY7iQxjXARcBNCxY8cqrC4LXnvN+3/++e56F1lSOypH0naKONuomEnExQF45x3wR5NG2oTlYZ8gtni2Wm0xUjIXn6g8UbWF9eEccbHjcrjUlE0Om49NHyWz4fpa2zjkkPRpwlu1SreLmma8VSu7f0oWjBWUBbbHnX8+L8ycSZu2bVmQmjrDVkMgRuNOnbwBc7Y8ePNDTZ48mUsuuSTSJq2mAC+//DJXXHEFpaWl/PSnP2W8P6juJ9dey+zZszHGcNBBB/HYY4/RuHFje62O1OgZhYjkAS8Arxhj7rHo/wrMMsZM8dtfAEPjLj3V+BlFI3/648KIKY9tehdZUjsqR9J2ijjbqJhJxMUB2Lat4umyzSYsD/sEscWz1WqLkZK5+ETliaotrA/niIsdl8Olpmxy2Hxs+iiZDdfX2sLCZ5+le+vWFYW29TQ+/tgeoG/fdF1QFowVlAW233r4YRo3bMi5d9zBgscfj64hEKPxkCFeR2HLg7cexUknncSCBQsibdJq8iktLeWggw5i5syZdOjQgQEDBjDlxhvp0bkzm7p0oam/dsVVV11FmzZt0hYwqjNnFOIt3Pp3YKGtk/CZBlwmIlPxbmJvrNX3JyDzZ6xdZZk8m53ts+Bx+kyeI4/yc2nHxU/JM3lePilWJvFdjo9r7dkcX5uv62uWaQ7XdlwsFzsXX2N2Drj79M+w8SuY1yTdLrhYUJB5TdJ1QdnKI+FEf9W64MC+wPaQPn1YsmxZuk2Ab775hrFjx7Jl9WpG/+AH5fItW7Yw+le/Yn1pKcXFxdx+++2MHj2a8ePH89VXX9GnTx+O79WLmy+8kNHDhrF+/foKdrZ8H330EV26dCmfGfbMM8/kuTfeoEenTuWdhDGGbdu2Vcl64zV56WkwcA4wX0Tm+rLrgI4AxpgHgZeAkcBioBC4oPrLVBRFSeaKK67g4osv5twePfjz00+Xy/Pr1+fZu++m6dChrFmzhkGDBjFq1CgmTJjAggULmDt3LsyeTUlJCc8++yxNmzatYGf7mretR/Hh//5X3r7gggt46aWX6NGjB3/4wx8qvW81+dTTO2A9BkEbA1xaPRUpilLrOcT/OuhvuUISdcm5f/90XVBmi5UF7777Lv/6179g3jzOGTmSax94AAADXPfAA7x1+eXk5OSwdOlSVloWPjLAddddx1tvvVXBbp8sann00UcpLS3lF7/4BU899RQXXFC539g1fjN7tyPpppFN7yJLakfpXLZd9Em+LrWE2xs3uh+PlDzKJyqezdZmF5Ql+UTliastrI86DpnEcKkpmxw2H5s+ThYm09c6iAjk5ibbxdnYdEmy8HaqHZNHUrUGbJ585RVWb9jAnDlzyMvLo1OnThSFZ7PNzeXJF19k9erV6XaWfO3bt+f7wBNjBQUF3hoZAdvc3FzOPPNM7rrrLu0oah29e2eud5EltaN0Ltsu+iRfl1rC7Xnz3I9HSh7lExXPZmuzC8qSfKLyxNUW1kcdh0xiuNSUTQ6bj00fJwuT6WsdpLaMo0hN8x2RZ/DgwUydOpWz+/fnyf/8p1y+cft22rRpQ15eHm+88QbffvstEFqPomHDSDtbvgEDBrBo0SK++eYb2rdvz9SpU5l8++2Y/Hy+WryYLl26YIxh2rRpdOvWLfKwuKIdRVWTtD6tTe8iS2pH6Vy2XfRJvi61hNs5OXDMMck+QXmUT1Q8WyybXVCW5BOVJ662sD7qOGQSw6WmbHLYfGz6OFmYTF/rIPn54N+gjSXOxqZLkgW2x4wfz6z332fNunV0OOYYbr36an4S+gK+7777GDt2LHdu2MDoE04ol581diwnn3cevXr1on///uVf3C1btmTw4MH07NmTE48+mmsvvZSTL7wwzc5WZ7169Zg4cSLDhw+ntLSUcePGcUi/fpSVlXHej3/Mpk2bMMZw6KGH8pe//CX6uDhSKwbcVSU1/nhsy5be/7Vr3fUusqR2VI6k7RRxtlExk4iLA7BuHbRoUdE+bBOWh32C2OLZarXFSMlcfKLyRNUW1odzxMWOy+FSUzY5bD42fZTMhutrbWHhlCl0b9OmorBPn3TDuXPtAfr0SdcFZcFYQZnLto2wPsk+ycbFPxM76tDjsbst69dnrneRJbWjdC7bLvokX5daXNpx8VNy1313iZVJfJfj41p7NsfX5uv6mmWaw7UdF8vFzsW3rMybajyJOBubLknmsu2Sa1fUXhm7LNCOoqpJOkOz6V1kSe0oncu2iz7J16UWl3Zc/JTcdd9dYmUS3+X4uNaezfG1+bq+ZpnmcG3HxXKx282uaFQ1a9euZdjYsV4jMDjxtddeo6XrmX0VoB2FoihKLaVly5bMnTzZa1TRY7zZUGPrUSiKoih1Az2jqGrqJRxSm95FltSO0rlsu+iTfF1qCbdLStyPR0oe5RMVz2ZrswvKknyi8sTVFtZHHYdMYrjUlE0Om49NHycLk+lrHcZlGoo4G5suSeay7ZJrV9ReGbss0I6iqhk8OHO9iyypHaVz2XbRJ/m61BJuz51rf0IjKv7gwdE+UfFssWx2QVmST1SeuNrC+qjjkEkMl5qyyWHzsenjZGEyfa2DNGjgNjDPdRCqqyyTwapxcXdF7ZWxywLtKKqao4/OXO8iS2pH6Vy2XfRJvi61hNulpe7HIyWP8omKZ7O12QVlST5ReeJqC+ujjkMmMVxqyiaHzcemj5OFyfS1DpKfrx2FC7uwo9BxFFVNs2be/w0b3PUusqR2VI6k7RRxtlExk4iLA960DnvvXdE+bBOWh32C2OLZarXFSMlcfKLyRNUW1odzxMWOy+FSUzY5bD42fZTMhutrbWHhU0+lj6M47LB0w8CkeGm2YV1QFowVlPnb37dqxbk/+hEr165FGjbkopEjuWLsWHsNgRiNjz7am2bclofQehQRNmk1BUhbj2L48Ap2l19+OY888ohXQwgdR1HTbNyYud5FltSO0rlsu+iTfF1qcWnHxU/JXffdJVYm8V2Oj2vt2Rxfm6/ra5ZpDtd2XCwXOxdfY7wzkiTibGy6JJm/Xa9ePf5wxRX07daNzQcfTL+ePTl+wAB6RHUU4bgRdW3YsIEHHnjA6ygyrL20tJRLL720wnoUozp3poc/7fjs2bNZn8l4pwS0o1AUpc5w5/LJfF70HazJYD2KNZb1KAKybmUDuPbwayNztmvXjnb+dBpNmjShe6dOLF29mh4hu8j1KAoLK7cehQXrehRvvkmPzp0pLS3lmmuuYfLkyTz77LOR+5UJ2lEoiqI4smTJEv73xRcMPOSQNF1tWY9i4sSJjBo1inbt2lXZfmtHoShKneHadv4o5RpYj2JLYSGnnnoqf7zqKppabhzXhvUolq1ezTPPPMOs1LreVYR2FIqiKAkUl5Rw6rXXctZZZ/GjIUMi7WzLjj45fTqr16+PX48iZWdbj8KCdT2K1q353xdfsNifZhygsLCQLl26sHjx4kx3uQLaUVQ19etnrneRJbWjdC7bLvokX5dawu0dO9yPR0oe5RMVz2ZrswvKknyi8sTVFtZHHYdMYrjUlE0Om49NHycLk+lrHaYGB9wZY/jJbbfR/YADuOqqq2DOHGuK8vUounfnyVdeKZdv3LqVNi1axK9HIeLZ2dajsNRpXY/i+us55MADWXHlleV2jRs3rnQnAdpRVD1t22aud5EltaN0Ltsu+iRfl1rC7WXL3I9HSh7lExXPZmuzC8qSfKLyxNUW1kcdh0xiuNSUTQ6bj00fJwuT6WsdJDcX8vKS7eJsbLokmb/97rvv8sRLL9Gra1f69OkDRUX87he/YGS/fhVcy9ejWLOG0YG1N846+WROvvzy+PUo+vfn2gsu4OTx49PXo7DUaV2PogoWKIpCx1FUNcFfba56F1lSOyqH66/PONuomEnExQEoLq74IbDZhOVhnyC2eLZabTFSMhefqDxRtYX14RxxseNyuNSUTQ6bj00fJbPh+lpbWDhtGt1bt64oDH1JA5G/9OnXL10XlAVjBWUu2zbC+iT7JBsX/0zs0HEUNU9xceZ6F1lSO0rnsu2iT/J1qcWlHRc/JXfdd5dYmcR3OT6utWdzfG2+rq9Zpjlc23GxXOxcfV1+0GYy/byLLJMp+uPi7oraK2OXBdpRKIqi1FJ0PQpARB4BTgJWGWN6WvRDgeeAb3zRv40xv6m2AhVFUWqQ2rIeRU2fUTwGTAQej7F52xhzUvWUoyiKooSp0YWLjDFvAetqsgZFURQlnpo+o3DhCBGZBywDrjbGfFrTBcWS6aImrrJMFkPJdvGVOH0mC7dE+YXbxrgfj5Q8yicqns3WZheUJflE5YmrLayPOg6ZxHCpKZscNh+bPk4WJtPXWqlV1PaO4mNgf2PMFhEZCfwH6Bo2EpGLgIsAOnbsWK0FppH0vHc2z3O7tKN0Ltsu+iRfl1rC7R073I9HSh7lExUv6jHQsDwoS/KJyhNXW1gfdRwyieFSUzY5bD42fZwsTKavdRhd4a5yMSpJre4ojDGbAtsvicgDItLKGLMmZPcQ8BB44yiqucyKRI2fiNO7yJLaUTqXbRd9kq9LLS7tuPgpueu+u8TKJL7L8XGtPZvja/N1fc0yzeHajovlYufqW4OPxxYVFTHk3HPZXlxMSV4epx15JLf+7GexuZYsW8ZJ553HggULIutasmQJ7733HmPHjs3q8dhJkyZx++23A3DDDTdwnj9R4dChQ1m+fDkNGzYEYMaMGbQJr+eRIbW6oxCRfYCVxhgjIofj3VNZW8NlKYqyB9GgQQNe/8tfaNyoEcWHHspRhx3GiUceyaBKPoW0ZMkSJk+e7HUUGbJu3TpuvfVWZs+ejYjQr18/Rj38MM2bNgXgySefpH8VPiVV04/HTgGGAq1EpAC4GcgDMMY8CJwGXCwiJcA24Eyzuw0lVxTFmRVP/IPt334LTTJYj6KJZT2KgKzB4QPY57rrInOKCI39MQzFxcUUl5RYJ/+bM2cO48aNg23bOGHgwHL5kmXLOOfmm9nq+0ycOJEjjzyS8ePHs3DhQvr06cN5xx7LKUOHcs7RR7N169YKdjZeeeUVjj/+eFq0aAHA8ccfz8vvv8+Y1Cp3VUyNdhTGmDEJ+ol4j88qiqLUGKWlpfQ75xwWL1vGpaeeysCeacO+uOCCC5g4cSJDGjXimvvuK5e3adGCmRMnkj94MIsWLWLMmDHMnj2bCRMm8Pvf/54XXngBZs+msKiImTNnkp+fX8HOhm09iqWrVlWoJTc3l1NPPZUbbrjB2rFlQq2+9KQoihJkn3PO9jaqeT2K3Nxc5k6ezIYuXTjluONYsHgxPQN+GzZsYMOGDQwZMgRmz+ackSOZ7i8kVFxSwmV33cXc778nNzeXL7/80pqjuKSEyy68kLlz58baJfHkk0/Svn17Nm/ezKmnnsoTTzzBueeem1WsFDU6jkJRFKUu0axZM47p14+X33/f2efeyZNp26IF8+bNY/bs2eyIuIF/7+TJtG3bNtEOItaj8G9Yt2/fHvCmMR87diwfffSRc61RaEehKIoSw+rVq9ng38/Ytm0bMz/6iG6dOlWwadasGc2aNeOdd94B4MmXXy7XbdyyhXatWpGTk8MTTzxBaWkpEFqPImXXrl2anY3hw4czY8YM1q9fz/r165kxYwbDBw2ipKSENWu8h0KLi4t54YUX6Gm5TJYpeumpqtEBd9F+4bYOuHOLHRVDB9xVC8uXL+e8n/+c0rIyyho04IzBgznp6KPT7B599FHGjRuHbNvGCYMGlcsvOe00Tr32Wh5/4w1GjBjBXnvtBUDv3r3Jzc3l0EMP5fxhwzy7W27h8ccfr2Bno0WLFtx4440MGDAAgJtuuokWe+/N1m3bGD58OMXFxZSWlnLcccdx4YUXVvoY6HoUVU3wwxji+3WFdGjpvfgS1Nt8wrKkdlQNrl8qcbZRMZOIixNlb7Nx8U3KX5M+YX111FUd+5FtnpQfOPkunD6d7q1aVRTuqnsUQZnLto2w3uVeSJyN672UDO65ZLoehV56qkbe+2pNspGiKEotQy89VSM7SgtrugRFUeoQ8+fP55zQehQNGjTgww8/rNY6tKOoRlYvup/SfCG3aPe63Kcoyq6hV69etWI9Cr30VI3sV/AFmw9uwPZWuTVdiqIoijPaUVQjZQ2955x3NHZYjF5RFKWWoJeeqpEc8ihqVY+SRk1oWtPFKIqiOKIdRVWT8LjfZ9e1oejLduwXFOo4inifoFzHUeg4CqXa0UtPVY0xiXPnt1q1PNknLEtqR/kmbbvYJvlG/cXFscWy2VjWB3DKF2cbt/8uPlF5knyj7FyOr83XpaZscmRyPONej2xe6yjfWkBpaSmHHXYYJ/3yl4m2S5YtSxwRnZpmPFsmTZpE165d6dq1K5MmTQJg89at9OnTp/yvVatWXHnllVnnSKFnFNWJEbr+eQ35BWVwU00XoyhKJtw3dSrdu3dnU2COpcqwq9ajmDt3brldv379+NGPflTpWrWjqE4Emny1g3rra8+vJEWpS7z9fhFr1pbCmx+nKzdvtTu9+XG6LiBr9fWXHH3GQbF5C1au5MV33uH6O+/knptvttrUtvUovvzyS1atWsXRlulGMkU7ippAL8sqSp3iynvu4a7LL2dzTvTV+tq0HgXA1KlT+fGPf1zptShAOwpFUeoQRx+R723075uujJzrqa9lrqeArH/82cQLL7xAm+bN6de9O7O2bLHa1Kb1KFJMnTqVJ554olIxUmhHUQOU5eiAO0WpK7z77rtMe/ttXnrvPYrKyti0YQNn33gj/5g+3cm/fD2KF16grKyM/Pz8aDt/PYo4O/DWnJg1a1Z5u6CggKEdO5a3582bR0lJCf369XPbyQT0qadqprBDHus7tqjpMhRFceSOO+6g4MUXWTJtGlOnTuXYAQP4x223VbCpLetRpJgyZQpjxsSuNJ0R2lFUM59f1ZpPz9wv2VBRlDrFo48+yqWXXkqfsWMJLt9wyWmnMenFFzn00EP5/PPPretR3Dt5smc3aVKanY3gehQDBgwoX48ixdNPP12lHYVeeqoBWq9cUdMlKIqSBUOHDmXovfdadf369WPevHnl9z7u8ifx69qxI59MmVI+qd+dd94JQF5eHq+//rrn7Pt88skn5fFSdlGMGzfOe8oqReA+zNdff53BXiWjZxTVTLd7VtP5uVXJhoqiKLUEPaOoZhoVFFNvg46jUBQlGV2PAhCRR4CTgFXGmLTx7uI9AHwfMBIoBM43xlhG2tQNatFsBIqi1AF0PQqPx4ARMfoTga7+30XAX6qhJkVRFCVAjXYUxpi3gHUxJqOBx43HB0AzEWlXPdXtOspydRyFoih1h5o+o0iiPRCcgavAl1VARC4SkdkiMnv16tXVVlymCLD5wPqs6dKqpktRFEVxxqmjEJGWu7qQymCMecgY098Y079169Y1XU4MwqJLW/H5j/at6UIURVGccT2j+EBEnhGRkVIVM0y5sxQqrPHTwZfVSQze3ew2Oo5CUeoUnUaNoteZZ9KnTx/6n3uuk0/jxo1j9Rs2bOCBBx7IuqaXX36Zgw8+mC5dujBhwoRy+WuvvUbfvn3p06cPRx11FIsXL846RwrXjuIg4CHgHGCRiPxOROJn0qoapgHniscgYKMxZnmSU22mx+9WceA/dRyFotQ13njwQebOncvsxx+vkniV6ShKS0u59NJLmT59Op999hlTpkzhM3+Q3cUXX8yTTz7J3LlzGTt2LLfffnula3V6PNZ449FnAjNF5BjgH8AlIjIPGG+MeT+b5CIyBRgKtBKRAuBmIM/P+SDwEt6jsYvxHo+9IJs8tQchf00J9Tbpc7KKkg1vvD6dVatWwIv/TFcG5k2qwIv/TNcFZG0WfMwx519U6dq++eYbxo4dy5bVqxn9gx+Uy7cUFjL6V79ifWkpxcXF3H777YwePZrx48fz1Vdf0adPH47v1YubL7yQ0cOGsX79+gp2Nj766CO6dOlC586dATjzzDN57s036dG5MyLCpk2bANi4cSP77lv5S91OHYV/j+JsvDOKlcAv8H7t9wGeAQ7IJrkxJnYyEr+DujSb2IqiKFWFiHDCZZche+3Fz4YP5yLLqnFXXHEFF198Mef26MGfn366XJ5fvz7P3n03TYcOZc2aNQwaNIhRo0YxYcIEFixY4K1IN3s2JSUlPPvsszRt2rSCne1av209ig/9ac0ffvhhRo4cScOGDWnatCkffPBBpfffdcDd+8ATwP8ZYwoC8tki8mClq9hj0DMJRakMxxx7ordhG3wWuR5Ff8t6FAGZw0C2d/72N9q3acOqjh05/qij6NapE0NCfu+++y7/+te/YN48zhk5kmv9y0oGuO6BB3jr8svJyclh6dKlrFy5Mi2HAa677jreeuutCnb7JFZXkXvvvZeXXnqJgQMHcvfdd3PVVVfx8MMPZxilIq4dxQ3GmKeDAhE53RjzjDEmfuYqpZzUL4PSXJ05RVHqEu3btAGgTZs2nDJ0KB99+ilDLHa2Z32enD6d1evXM2fOHPLy8ujUqRNFRUV2u9WrE+3AW4/i+8Da3QUFBbRv3ZrV69czb948BvpLsf74xz9mxIi4Mc1uuN7MHm+R/brS2fcwDLCxRz6rerSp6VIURXFk69atbPbXsd66dSszPviAngcemGY3ePBgpk6dCqSvR9GmRQvy8vJ44403+PbbbwH7ehRt2rRJs7MxYMAAFi1axDfffMOOHTuYOnUqo4YMoXmTJmzcuLF8dbyZM2fSvXv3Sh+D2J+2InIi3s3k9iLyp4CqKVBS6ex7IF/9tAXbF7WmOh4ZUxSl8qxcuZJTLrwQgJK8PMb+4AeMOPLINLv77ruPsWPHcmfoZvZZJ57IyVddRa9evejfvz/dunUDoGXLlgwePJiePXty4mGHce1553HyjTem2dmoV68eEydOZPjw4ZSWljJu3DgO8Tuvv/3tb5x66qnk5OTQvHlzHnnkkUofg6RrIMuA2cAoYE5Avhn4ZaWz72GIf/GpzYo6/YSvouxRdO7cmXnBifki7oUccMABvP/+++X62//+dwBaNWvG+488Yr0XMjkV1/d5/33LA6Rr1ljzjRw5kpEjR+4U+DFOOeUUTjnllMT9yoTYjsIYMw+YJyJPGmP0DKIK6HXLCvLWGO9BYEVRlDpA0qWnp40xZwD/E5HgIzuC9/Rq711a3e6GgbxNZdQr1KefFEVJZu3atQwLrUcB3ujrli2rb2alpEtPV/j/T9rVhewJaPegKEomtGzZsvavRxGYLmMN8L0x5lugAXAo3v0LJYTBoUPIYrYsp7iKoii7ANfHY98C8kWkPTADb4T2Y7uqqLqOSegIdByFoih1CddvLDHGFIrIT4AHjDF3icjcXVhXneWbER0x+2wm/Slrj3WHNWTHphY0yzBusd+l169EbYqiKNng3FGIyBHAWcBPfJku02bhm2vqAc3pbIx1lOaSc5qzfVErMh0Ck6vXnRRFqSFcLz1dgTcS+1ljzKci0hl4Y9eVVfcpLS2N1LVdkfntnTVH78UXV9XmRZkUZfdlw+bNnHbttXTr1o3up5/O+598kuhTU+tRvP766/Tt25eePXty3nnnUVJS+ZENTh2FMeYtY8yo1LxOxpivjTGXVzr7bsih45dz6PjlFBfbX5xDxy+nyz8yX641d1sZbd7aUtnyFEXJgiv+8AdGHHEEn3/+OfMmT6b7AVlNmF2BXbEeRVlZGeeddx5Tp05lwYIF7L///kyaNKnStbpOM34QcDXQKehjjDm20hXsZuTu8K4RGWM/o8jdYcgpzvw6UiquouzJbJi7gx0bDMyx/KLfvN3uNOeTdF1AVn/5VzQ7Oequoremw1v/+x+P3eyNkq2fl0f9vLw0u9qwHkXr5s2pX78+Bx3kTRJ0/PHHc8cdd/CTn/zEGscV13sUzwAPAg8D0ddUlJ2UltV0BYqiVAHffPMNrZs144Jbb2Xe0qX0239/7vvVr9grZFcb1qNo1awZJSUlzJ49m/79+/PPf/6zwiyz2eLaUZQYY/5S6Wx7ELG//6tz1XFF2Y1o1sd/7q+/ZVKIyPUoelvWowjI+kefTQCUlJTw8RdfcP811zDw/PO54swzmfDYY9x29NEV7GrDehQiwtSpU/nlL3/J9u3bOeGEE8jNrfxzR64dxfMicgnwLFB+DmeMWVfpCnZTSkujbyCV5lY8bU11Ktp/KErto0OHDnRo04aBPXsCcNqwYUyIuO5f0+tRABxxxBG8/fbbAMyYMaN8yvHK4PrU03nANcB7eLPIzsGbVVYJsWZQI9YMakRZmf3S05pBjSgY0K6CzEjyIL1UXEVRqpd99tmH/dq25YslSwB47b//pYflZnZtWI8CYNWqVQBs376dO++8k5///OeVOwA4nlEYYyp/i38P4bszmgHQKuKM4rszmrF9UTN6BmTbm+SwvU292EF4qbhdq6JIRVEy4v6rr+asm25ix29+Q+cWLXj0ppvSbGrLehR33303L7zwAmVlZVx88cUce2zlnzlyfeqpEXAV0NEYc5GIdAUONsa8UOkKdlOMsd2l8NejWLmignT2Xzuyo00Ow6qhLkVRMqfPwQcz+/HH68R6FHfffTd3332303654nqP4lG8y02pZZ2W4j0JpR1FiL5XeYPpyl62X3rqe9Uy6m00EPhB0nOC33HMTY4bZ6MoirIrcO0oDjTG/FhExgD48z5V+t6riIwA7sObDuRhY8yEkP584G68jglgojHm4crm3aUYQIi8R6EoiuJKXVmPIsUOEWmI/4COiBxI4OmnbBCRXODPwPFAAfBfEZlmjPksZPqUMeayyuSqCUq1o1AUpZLUifUoAtwCvAzsJyJPAq8B11Yy9+HAYn86kB3AVMA+DLFOoiOpFUXZPXB96mmGiMwBBuHdkb3CGGO/w+JOeyA4ZLAAGGixO1VEhgBfAr80xqQNMxSRi4CLADp27FjJsqoGEzOOoqRe+vB/RVGU2orrU0+vGWOGAS9aZLuS54EpxpjtIvIzYBKQ9qyXMeYh4CGA/v371+hP+ZU/aAxi2DuiipU/2IvtG1rRPCQDKshsfkk2NlIXwFxPHRVFUcLEfn+ISL6ItABaiUhzEWnh/3XCOyOoDEuB/QLtDuy8aQ2AMWatMSZ1L+RhoF8lc+5yCkY3ZenovSmLmGZ86ei9WX5EkzTZ0tF7x8Z1sbGhS6gqSuX44osv6DN2rPfXpw9Nhw7lj6n7BjHs6mnGx40bR5s2bejZs2cF+bp16zj++OPp2rUrxx9/POvXr886R4qkH5o/w3ssths7R2TPAZ4DJlYy93+BriJygIjUB84EpgUNRCQ4hHkUsLCSOXc5uYWl5BSVRYyjgJyiMtosXZEmyymKv/ntYmP1Q88mFKUyHHzwwcydPJm5kyczZ84cGjVowCnHHFPpuJXtKM4//3xeDowATzFhwgSGDRvGokWLGDZsWIW1KrIl9tKTMeY+4D4R+YUx5v5KZ6sYu0RELgNewXs89hF/UaTfALONMdOAy0VkFFACrAPOr8oadgV9blgJAlufsXcUfa5b4Y2juK2iDICRVhdnGxtl9QWMLkeoKFXBa6+9xoEdOrB/u3ZpuuqcZhxgyJAhLPGnFQny3HPPMWvWLADOO+88hg4dyp133lmp/Xa9mX2/iBxJ+noUj1cmuTHmJeClkOymwPav8VbWq3OUllV+Vak4XCcS3NS9AZD5vQ1FqY1M//RTVmzcCPPnpysD8yZVYP78dF1Ats/q1Zx44olO+adOncqY4cOtuuqcZjyOlStX0s7vyPbZZx/rTLWZ4nRVQkSeAH4PHAUM8P9q7qHeOkDElSdFUeooO4qLmTZtGqcPsz/D8+677zJmzBgAzglMrZGaZrx3794cd9xxidOMJ9llgohYZ7TNFNcBd/2BHibqwruSRtzjsVXB9ubeS5e/S7MoSu3ixEMO8TZsg88i16OwzM8UlDkOZJv+3nv07duXtjEjoqtrmvE42rZty/Lly2nXrh3Lly+nTZs2GccI43qfcwFktH7GHo+JedaoxLKMYqZs61iPbR1d+3lFUSrLlFdeKT9jsFGd04zHMWrUqPJ1sidNmhR7n8MV12+aVsBnIvIRFRcuGlXpCnYzlp7QhByB/IgpPJaf0ISi0DiK5Sd4j8vG3UcI27j4hO3K/F87+hSUomTG1m3bmPnRR/z1mWdg0SKrTXVOMw4wZswYZs2axZo1a+jQoQO3XnABP/Fvkp9xxhn8/e9/Z//99+fpwP2SbHHtKG6pdKY9hBXDmyI5hgNsJxQGlo9oQskXFRcgWj7C+zLvUdEU2HmzOmxj87ERtNtRrwE5xlDfZUcURSlnr4YNWfvqq7B39Fim6p5mfMqUKRUFfoyWLVvy2muvxe5Pprg+9fRmlWbdjam/vhjqCWUt7APu8jaW0vK7FWmyMMV7CVJmyIuwsflE5SuvrTjz652KoiixHYWIbMY+sFcAY4xpukuqqsP0un0VCKx5LEJ/60pvHMUdFWUAnLJTtrVLAzA7Ly2FbWw+UflSdpsPakBukSF+vKiiKLWFOjHNuDGmSZxeicaYKphmvPJPtVWgrKFQ1jA56PaiwvLLU1VcgqIoGVDXphlXMsSU1d0niSffVNkZ5BVF2Z3QjmIXUVYVZxQ1ROk2Q0l+jk4mqCgK4P7Uk5IpcetR5NXu544atShly8H1kfX1aVbTxSiKUuNoR1HFfH/y3oiYiEn4hIKTm7J9XasK858UnOw9E9A8RpbUjiJol9puvGM7K9v1ZO+NBTQp3JDmU69psVfn+lbWeVpWNWvB3ls206CkOCG7oii7A3rpqYpZNbQxq45pHHmPYtUxjVnXs0GabNUxjWNlSe3IegJ2qe0tG9dT2mYLhU2in1VYdUxj1vZukCZf8uUC6pWVsjW/YWJuRdlduHfyZA454wx69uzJmOuvp2j79lj7JcuWpa0TkWazZMnOcRRZMGLECJo1a8ZJJ51UQT5x4kS6dOmCiLAmYgxGpmhHUcXkr9hBg1UlmIiR2Q1WldD265VpsgarSmJlSe0ognap7dKSUr4fX8ayiyLGYhihwaoS9vk6fUKyravWsaNbLo3ydsTm1fsbyu7C0qVL+dNTTzH78cdZsGABpWVlTJ0xo9JxK9tRXHPNNTzxxBNp8sGDB/Pqq6+y//77V6a8CuilpyrmkLtWQw58f7+9ozhkwipvHMXdFWWAt3RThCypHSQ4qjtol9ouHlzsbUd8m6f8cjcZCK15Ulq8jQbbC9ne2tBg/U77tPySw8x7/8jx9hTldmU5OeSUleljuEqtpqSkhG3bt5NXUkJhURH7tm6dZjNnzhzGjRsH27ZxwsCB5fIly5Zxzs03s9WfQmfixIkceeSRjB8/noULF9KnTx/OO/ZYThk6lHOOPpqtW7dWsIti2LBh5etOBDnssMMqubfpaEexi8hmnt2y0lJyciu/xFBJwxxyiqPukyT/2o/Tm1xPW1ZfMDk53hd86OzJSA7FefUo/Dr+rAOgOC+PvOJiciPOwBQlyJdFj7G59Fv42HLZdGvEehQfN0nXBWRNvjycgw66MTJn+/btufrss+l48sk03GsvTujXjxMGDUqzu+CCC5g4cSJDGjXimvvuK5e3adGCmRMnkj94MIsWLWLMmDHMnj2bCRMm8Pvf/54XXngBZs+msKiImTNnkp+fX8GuNqCXnnYVWfQUJcVVc3N4y0H12dQt/f5CCmPsl5zK19c2/u9728/8wDTKG3vVZ0OP9Ce4duyVS2HXHDY22eRUr6mC+fIVZVexfv16nnvrLb557jmWLVvG1qIi/vFShfXW2LBhAxs2bGDIkCFAxfUoiktKuPC3v6VXr16cfvrpfPbZZ9Y8xSUlXHjhhYl2NYGeUewi4kZmm4jvxdJSt/mbnIg5MSkttt/b2LF3HmX1KvQFaeTk+L8tUjaWPMUtcqAeNGzzXWyJJge2dRP2WpQDhTv3vSynHkgOOaXJZyTKnsVB+ed7G30zWI+ir2U9iqDsoPgRz6+++ioH7LsvrZs3h7w8fnTMMbz3ySec7VjzvZMn07ZFC+a98AJlZWXk59tXkbl38mTatm3LvHnzYu1qAj2jqGr8L9CoX+0QPY6iSqb9cKDM+B1FqEMo7JRLUYed3/wl9dLrFL+jMDF3FYrre2czSScKZXlerMJWFZ+gKmm5PyUt9ot3VpRqomPHjnwwfz6FRUUYY3jtv/+l+wEHVLBp1qwZzZo145133gHS16No16oVOTk5PPHEE+U/CG3rUbRr1y7NrjagZxRVzJJTm5OTE/2F/91pe1O0rjUDQzKAAwPrbKdkzR3b4RwpnW27WanZKZ9XlOZnjHh1bmhZoU5P59mVleWSk1NaIcaK9gdT0rEPBf2+oGHb5RhgQ7PWNNuw2nosvh7akW1HbWPHlx0Y8MSccnlhD+8WeP03v0rzKQUKm7aiyabMHvsr9ju9vBI9S1EyY+DAgZw2bBh9zz6beo0bc1jHjlx0SvpsnI8++ijjxo1Dtm2rcA/jktNO49Rrr+XxN95gxIgR7LXXXgD07t2b3NxcDj30UM4fNsyzu+UWHn/88Qp2URx99NF8/vnnbNmyhQ4dOvD3a69l+BFH8Kc//Ym77rqLFStW0Lt3b0aOHMnDDz9cqWOgHUUVs2bQXuTUK6NFxM3ZNUfuRdnn9dJkAAeUmjSZaztKZ9veu6TU6l8um+Ntl36dfkZhSo23D8W55OR5HUWp5FKWW49l/fem4PSvabgml6299iLn0zymjRrJ8Blv0NZS56rD89l+ZA45W3N47bgR9F+3jr1btKDR569H7hs59WjQsAUbynZQRgnNtxQCyZMXbmnkPaXSfNPSBEtFSefWn/2MW3/2M/uyqj79+vVj3rx55fq7/En8unbsyCdTppRP6nfnnXcCkJeXx+uv++913+eTTz4pj5eyi+Ltt9+uKPBjXH755Vx++eUZ7F0y2lFUMU2+24bJE+hg1zf6fgeNF61MkwGU9SpOk7m2o3S27bI2xVb/lGytv93oy1UV9AYwpaU0+n4Hst1gGnhfzxu77sXmzg0oO2IprUuEBusM278X1rRYRtdjF1CyoNBa5/5zllJw4N40WbUMabeM6fc9xJm3jqfeuu8j9y2nrARZ9z1NS4rAmLQFngBSXXTwuureER1E8JEDW2eTpFeUPYEa7ShEZARwH94t0YeNMRNC+gbA40A/vO+vHxtjllR3nZlw8J/WQg58c7fljMJAt3vXUG+TgXt3irvd611GMSeaNBnnubWDBHW27XWTynbmBEob5FC2bVu57PuzPNvczQbu8txL6wnb9snjq9kfcsw/1njfxqlv4obQdPkOmj1qKMsXcgoNZY2E9b9bRrfr1pC3xjsW7/3nOQ5r3ID6hcXsaFiPfV/dTOOlOzvHhX2WASAl3qhXIznY7oZIyfa0p8qCHYb1YS2LXRgTIQ/rw8+zuXYgttxR9cTVqew5zJ8/n3NC61E0aNCADz/8sFrrqLGOQkRygT8DxwMFwH9FZJoxJvhM2E+A9caYLiJyJnAn8OPqrzZzjOXxWBP+tgpRWpI80rq0tJTcSo61KA1MWFjUMo+iDrm8cs+vGF4uTS+wsEN9SvYWSnO/zjyhv99LFrxB9wOF4k31KW0KeYtCX4Niu3nnn7WsWk1T69d0RcLaKOukTiHKNy5eFMGqo3Iai62i9OrVq1asR1GTZxSHA4uNMV8DiMhUYDQQ7ChGs3O97n8CE0VEjO1buJKsX7WcV16cyuotK5CGm5DcUqTM/8lscjAmBwwIgjGCIGBy/A92DmI824FtOwLwwZKZvP/nNzHGswPI228b37TuCM3h3ft/7cUCBrf2fN771wNALsbklMum/PkGAAb57fcf+A1lQf3EW/09MJBThuSUMdDXPfGnmzjK3/7HX64t93nnrefL5bK3wdQXNhy40asNWLtPmbfdAj6YeCtSBgM77Q/1YN2+xeV2aQTPMoC1+U35pnVHpInh3T/dQs7+fg5/UGujbTsobL3zPsjKvUt54L7bOfbAik+UvPHHO2iwJZ8ju3Qmd3sJpQ3qgeUJsdwdZZTW31nAzPtu44RQLICcHWWU1c+xyl6/79a0/GGfsP8rD/6W4QceYI0L8Nr9tzIsoJ/14N0MDeSIi53i82enMDpNqijVQ012FO2B4MXoAkh7yKbcxhhTIiIbgZZA1cx0FWD+268wc/+NvChjKhfourMS9BZZzzPSZb1CT1X0OC2kj/nauC5g2+tHAXlg3w61nJgFa7vusuh8tn2IrCXcviLR5TcPnWRXDD4mg8Qev/3byRn73Pq3zL+Sf/e3H8bqfxOO+be4yU3SOXrzh9pRKDXGbnEzW0QuAi4C75nnbOg99CR6Pn0nrfJeY98D+rLvwb3Ytm0zOwoLKd6+ndLiHZiSYkpLSygtLaGsrJiyslJEDDlSSm6OIUcM+979CEZy+PT8MzBlJZSVloIp9S9FGXo+8wrkwCenHOtfZjcc+twbmBxh3kk/AAwiZfR+4V0A5o0cgjGGw56fhamXw7wfHk0OZfR68T1P/8PBO3fCP/M5dPqbCDD/pKPoNe1tEGH+yGPp9cLrkAvzTx5Mzxff9a/0GMrqCQtGHEXv59+BHPjfD4+kz0vvImXCvJMGY3IMfaa9Q1m9HD4ZcTSHvvg2YgxGDIJ3H8HkCFJiMPUEKTWYXOGTE4+k93Qvz7yTjyJH8PN6+vyNRRQ1yUfKPL/5Jx9OGXDotA93DsIw8MmowzEChz73EQ02F7G9aUNPEbrT3GBTEdub7hykNP/kQfR6/oO01zpsF5R9cvIgeif4pOX54SB6vfiBNS7AJz8cSO8XP9yZw2+7xE6x+vjD02SKUl3ILriK45ZY5AjgFmPMcL/9awBjzB0Bm1d8m/dFpB6wAmgdd+mpf//+pkbnRyn/gouacc+id5EltaNyJG2niLONiplEXJwoe5uNi29S/pr0Ceuro67q2I9s86T8wMl34fTpdG/VqqLQdr0+6nNve6Q1KAvGCsoC2yLCWSNG8I/p02H2bEpKSmh38skMHDjQm6vJVkcqri1PVO1x+9W/P7Nmzdo5P1QmMUIsXLiQ7t27V5CJyBxjjNW5Jkdm/xfoKiIHiEh9vHlQp4VsprHzuZ7TgNd3xf0JRVGUOPZq2JAFX33Ftm3bAJj54Ye0b98+oxglDg+r1FZqrKMwxpQAlwGvAAuBp40xn4rIb0RklG/2d6CliCwGrgLG10y1iqLs6YwcPJgXX3wRgCkzZjBmzM57flu3bmXcuHEcfvjhHHbWWTz35psAPPbYY4y66iqOvfhihg0bRmFhIWeccQY9evTglFNOYeDAgeUzxM744AOOOOII+vbty+mnn86WLVsAePm99+h22mn07duXf//739W81x41OteTMeYlY8xBxpgDjTG/9WU3GWOm+dtFxpjTjTFdjDGHp56QUhRFqW7OPOEEpk6dStH27XyyaBEDA2tO/Pa3v+XYY4/lo48+4o0HH+SaP/2pfF2Jj7/4gn9OmMCbb77JAw88QPPmzfnss8+47bbbmDPHm7pmzYYN3P7II7z66qt8/PHH9O/fn3vuuYeioiIu/O1vef6ee5gzZw4rVqyokX3fLW5mK4qyZ3BjUQ4LygT+tyhdWRgxvuh/i9J1AVnPRQXc1jViKoUAvbt2ZcmSJUx55RVGDh5cQTdjxgymTZvG73//eygspGj7dr77zps9+fjDD6fF3t48au+88w5XXOE9+dezZ0969+4NwAfz5/PZ118z2I+7Y8cOjjjiCD7//HMOaN+erh07gghnn302Dz30UGKtVY12FIqiKI6MGjWKq++5h1kPPsjagNwYw7/+9S8OPvjgnTeVu3fnww8/ZK+GyevLG2M4fuBAprzySgX53Llzq674SqAdhaIodYbb8v2Blod1TVdGPfV0WNd0XVDmcDaRYty4cTTbtIleXbowy7+HADB8+HDuv/9+7r//fgT43xdfcJjl6aPBgwfz9NNPc8wxx/DZZ58xf/58AAb16sWld93F4sWL6dKlC1u3bmXp0qV069aNJcuW8VVBAQf278+UKVOca61KdD0KRVEURzp06MDlZ6YvVH/jjTdSXFxM7969OeSMM7jxwQet/pdccgmrV6+mR48e3HDDDRxyyCHsvffetG7enMduvpkxY8bQu3fv8stO+fn5PHTddfzwyivp27cvbdq02dW7aEXPKKqa+vZFiWL1LrKkdpTOZdtFn+TrUku4vWOH+/FIyaN8ouLZbG12QVmST1SeuNrC+qjjkEkMl5qyyWHzsenjZGEyfa3DuIzViLOx6ZJkge0twSm9ffnQoUMZOnQoAA0bNuSvf/2rp5+zc22V888/n/N79Spv5+fn849//IP8/Hy++uorjjvuOPbff3+YP59jDz+c/158cVpJIwYP5vPBg6Ffv+j9i9qfKkI7iqomad1rm95FltSO0rlsu+iTfF1qcWnHxU/JXffdJVYm8V2Oj2vt2Rxfm6/ra5ZpDtd2XCwXO1dfl+FTcTY2XZLMZdslV6BdWFjIMcccQ3FxMcYYHnjgAerXr5957ZWxywLtKKqaTN9ErrKkdpQukzd7nD6TD0qUn0s7Ln5KnsmHKilWJvFdjo9r7dkcX5uv62uWaQ7XdlwsF7s9bPxskyZNqNGZI7JE71EoiqIosWhHoShK7aasTNfoqEKymQVJOwpFUWo1+YsXs7akRDuLKsAYw9q1a8nPT5+hOA69R6EoSq2mwy23UHDLLazu0gVy/N+2CxemG66JWKZm4cJ0XVAWjBWUuWzbCOuT7JNsXPwzsMvPz6dDB/exI1CD04zvKmp8mvHUMqWltmU9I/QusqR2VI6k7RRxtlExk4iLA1BWtvODH2UTlod9gtji2Wq1xUjJXHyi8kTVFtaHc8TFjsvhUlM2OWw+Nn2UzIbra+1K3PveZpv0fg/HcPnsuH7Gk+yTbFz8M7GLIG6acT2jqGr22y9zvYssqR2lc9l20Sf5utQSbhcUgO2XTVT8/faL9omKZ4tlswvKknyi8sTVFtZHHYdMYrjUlE0Om49NHycLk+lrnQ2unwlXWSafnbi4LvuYae2VscsCPaOoaho08P5v3+6ud5EltaNyJG2niLONiplEXBxIH4RlswnLMxlwF1Vr3IA7F5+oPFG1hfXhHC6D4Ww5XGrKJofNx6aPktlwfa1diXvf22yT3u/hGC6fHdfPeJJ9ko2LfyZ2EegZRXWiA+6i/VzacfF1wF287e484C7b+JnmzvazExfXZR8zrb0ydlmgHUVVowPuov1c2nHxdcBdvO2ePuCuDozMzqi+TPwzscsCfTxWURRFiUU7CkVRFCUW7SgURVGUWPQeRVXTpEnmehdZUjtK57Ltok/ydakl3N682f14pORRPlHxbLY2u6AsyScqT1xtYX3UccgkhktN2eSw+dj0cbIwmb7W2eD6mXCVZfLZiYvrso+Z1l4ZuyzQjqKq+fWvM9e7yJLaUTqXbRd9kq9LLeH2rFngz+cf6xOUR/lExbPFstkFZUk+UXniagvro45DJjFcasomh83Hpo+Thcn0tc4G18+EqyyTz05cXJd9zLT2ythlgY6jqGratfP+L1/urneRJbWjciRtp4izjYqZRFwcgJUroW3bivZhm7A87BPEFs9Wqy1GSubiE5UnqrawPpwjLnZcDpeasslh87Hpo2Q2XF9rV+Le9zbbpPd7OIbLZ8f1M55kn2Tj4p+JXQRx4yhqpKMQkRbAU0AnYAlwhjFmvcWuFJjvN78zxoxKil3jHYVO4REdMxgHdAoPl9hxOXQKj4roFB5udhHUxgF344HXjDETRGS8377WYrfNGNOnWiurLGVlmetdZEntKJ3Ltos+ydelFpd2XPyU3HXfXWJlEt/l+LjWns3xtfm6vmaZ5nBtx8VyscvkvZRN/ExzZ/vZiYvrso+Z1l4ZuyyoqaeeRgOT/O1JwP/VUB2KoihKAjXVUbQ1xqQupK0AIi46ky8is0XkAxH5v+opTVEURQmyyy49icirwD4W1fXBhjHGiEjUjZL9jTFLRaQz8LqIzDfGfGXJdRFwEUDHjh0rWXklSbrmatO7yJLaUTqXbRd9kq9LLeF21PXtqPi5ufHXxG06m23SNeskn6g8cbWF9VHHIZMYLjVlk8PmY9PHycJk+lpng+tnwlWWyWcnLq7LPmZae2XssmCXdRTGmOOidCKyUkTaGWOWi0g7YFVEjKX+/69FZBZwGJDWURhjHgIeAu9mdhWUnz0DB2aud5EltaN0Ltsu+iRfl1rC7fnzoVevZJ+gPMonKp4tls0uKEvyicoTV1tYH3UcMonhUlM2OWw+Nn2cLEymr3U2uH4mXGWZfHbi4rrsY6a1V8YuC2rqZvY04Dxggv//ubCBiDQHCo0x20WkFTAYuKtaq8yGkSMz17vIktpROpdtF32Sr0st4XajRvZn66PijxwZ7RMVzxbLZheUJflE5YmrLayPOg6ZxHCpKZscNh+bPk4WJtPXOhtcPxOuskw+O3FxXfYx09orY5cFNfV4bEvgaaAj8C3e47HrRKQ/8HNjzE9F5Ejgr0AZ3r2UPxpj/p4Uu8Yfj+3Wzfv/+efuehdZUjsqR9J2ijjbqJhJxMUB+Ppr6Ny5on3YJiwP+wSxxbPVaouRkrn4ROWJqi2sD+eIix2Xw6WmbHLYfGz6KJkN19falbj3vc026f0ejuHy2XH9jCfZJ9m4+GdiF0GtG0exK6nxjqJRI+9/YaG73kWW1I7KkbSdIs42KmYScXEAtm2Dhg0r2odtwvKwTxBbPFutthgpmYtPVJ6o2sL6cI642HE5XGrKJofNx6aPktlwfa1diXvf22yT3u/hGC6fHdfPeJJ9ko2LfyZ2EdTGcRS7Lzt2ZK53kSW1o3Qu2y76JF+XWlzacfFTctd9d4mVSXyX4+NaezbH1+br+pplmsO1HRfLxS6T91I28TPNne1nJy6uyz5mWntl7LJAZ49VFEVRYtGOQlEURYlFLz1VNY0bZ653kSW1o3Qu2y76JF+XWsLtjRvdj0dKHuUTFc9ma7MLypJ8ovLE1RbWRx2HTGK41JRNDpuPTR8nC5Ppa50Nrp8JV1kmn524uC77mGntlbHLAu0oqprevTPXu8iS2lE6l20XfZKvSy3h9rx57scjJY/yiYpns7XZBWVJPlF54moL66OOQyYxXGrKJofNx6aPk4XJ9LXOBtfPhKssk89OXFyXfcy09srYZYE+9VTVrFnj/W/Vyl3vIktqR+VI2k4RZxsVM4m4OABr10LLlhXtwzZhedgniC2erVZbjJTMxScqT1RtYX04R1zsuBwuNWWTw+Zj00fJbLi+1q7Eve9ttknv93AMl8+O62c8yT7JxsU/E7sI9Kmn6uTpp73/l1zirneRJbWjciRtp4izjYqZRFwcgLfegiFDKtqHbcLysE8QWzxbrbYYKZmLT1SeqNrC+nCOuNhxOVxqyiaHzcemj5LZcH2tXYl739tsk97v4Rgunx3Xz3iSfZKNi38mdlmgZxRVjQ64i44ZjAM64M4ldlwOHXBXER1w52YXgZ5RVCcrVmSud5EltaN0Ltsu+iRfl1rC7eJi9+ORkkf5RMWz2drsgrIkn6g8cbWF9VHHIZMYLjVlk8PmY9PHycJk+lpng+tnwlWWyWcnLq7LPmZae2XsskAfj1UURVFi0Y5CURRFiUU7CkVRFCUWvUdR1fTpk7neRZbUjtK5bLvok3xdagm35851Px4peZRPVDybrc0uKEvyicoTV1tYH3UcMonhUlM2OWw+Nn2cLEymr3U2uH4mXGWZfHbi4rrsY6a1V8YuC/Spp6omaVZMm95FltSOypG0nSLONipmEnFxUtvB+qNmvwzK42YrtcWz1Ro3m6iLT1SeqNrC+nCOpJl9o3K41JRNDpuPTR8ls+H6WrsS97632Sa938MxXD47rp9xl5lyXT/PcVRyRl6dZlxRFEWJRR+PrU4eeMD7HzXoxaZ3kSW1o3IkbaeIs42KmURcHIgehGWrLSXPdMCdrdakAXdJPlF54gayBfXhHK6D4cI5XGrKJofNx6aPktlwfa1diXvf22yT3u/hGC6fHdfPeJJ9ko2LfyZ2WaBnFFVNarnHWbPc9S6ypHZUjqTtFHG2UTGTiIsD6detbTZheSb3KKJqjbtH4eITlSeqtrA+nMPl/oEth0tN2eSw+dj0UTIbrq+1K3Hve5tt0vs9HMPls+P6GU+yT7Jx8c/ELoK4Mwp96klRFEWJRTsKRVEUJRbtKBRFUZRYtKNQFEVRYtGb2YqiKErtu5ktIqeLyKciUiYi1sJ8uxEi8oWILBaR8dVZo6IoiuJRU5eeFgA/At6KMhCRXODPwIlAD2CMiPSonvIURVGUFDUy4M4YsxBAROLMDgcWG2O+9m2nAqOBz3Z5gYqiKEo5tflmdnvg+0C7wJcpiqIo1cguO6MQkVeBfSyq640xz1VxrouAiwA6duxYlaEVRVH2eHZZR2GMOa6SIZYC+wXaHXyZLddDwEPgPfVUybyKoihKgNp86em/QFcROUBE6gNnAtNquCZFUZQ9jpp6PPYUESkAjgBeFJFXfPm+IvISgDGmBLgMeAVYCDxtjPm0JupVFEXZk9ntBtyJyGrg20qEaAWsqaJydjV1qVbQenc1daneulQr7Bn17m+MaW1T7HYdRWURkdlRoxNrG3WpVtB6dzV1qd66VCtovbX5HoWiKIpSC9COQlEURYlFO4p0HqrpAjKgLtUKWu+upi7VW5dqhT28Xr1HoSiKosSiZxSKoihKLNpRKIqiKLFoR+FT29e+EJH9ROQNEfnMX8vjCl9+i4gsFZG5/t/Imq41hYgsEZH5fl2zfVkLEZkpIov8/81rQZ0HB47fXBHZJCJX1qZjKyKPiMgqEVkQkFmPpXj8yX8vfyIifWtJvXeLyOd+Tc+KSDNf3klEtgWO84O1pN7I119Efu0f3y9EZHgtqPWpQJ1LRGSuL6+aY2uM2eP/gFzgK6AzUB+YB/So6bpCNbYD+vrbTYAv8dbpuAW4uqbri6h5CdAqJLsLGO9vjwfurOk6Le+FFcD+tenYAkOAvsCCpGMJjASmAwIMAj6sJfWeANTzt+8M1NspaFeLjq/19fc/d/OABsAB/ndHbk3WGtL/AbipKo+tnlF4lK99YYzZAaTWvqg1GGOWG2M+9rc3401rUhenXR8NTPK3JwH/V3OlWBkGfGWMqczo/irHGPMWsC4kjjqWo4HHjccHQDMRaVcthfrY6jXGzDDe1DwAH+BN9FkriDi+UYwGphpjthtjvgEW432HVAtxtYq3yM8ZwJSqzKkdhUedWvtCRDoBhwEf+qLL/NP5R2rDpZwABpghInP8qeAB2hpjlvvbK4C2NVNaJGdS8UNWW48tRB/LuvB+Hod31pPiABH5n4i8KSJH11RRFmyvf20+vkcDK40xiwKySh9b7SjqGCLSGPgXcKUxZhPwF+BAoA+wHO+0s7ZwlDGmL95ytpeKyJCg0njnxrXm+WzxZikeBTzji2rzsa1AbTuWcYjI9UAJ8KQvWg50NMYcBlwFTBaRpjVVX4A68/oHGEPFHzpVcmy1o/BwXvuiJhGRPLxO4kljzL8BjDErjTGlxpgy4G9U4ylwEsaYpf7/VcCzeLWtTF0G8f+vqrkK0zgR+NgYsxJq97H1iTqWtfb9LCLnAycBZ/mdG/4lnLX+9hy8a/4H1ViRPjGvf608viJSD/gR8FRKVlXHVjsKj1q/9oV/7fHvwEJjzD0BefDa8ynAgrBvTSAie4lIk9Q23o3MBXjH9Tzf7DygSlc7rCQVfo3V1mMbIOpYTgPO9Z9+GgRsDFyiqjFEZATw/4BRxpjCgLy1iOT6252BrsDXNVPlTmJe/2nAmSLSQEQOwKv3o+quz8JxwOfGmIKUoMqObXXdqa/tf3hPinyJ1+NeX9P1WOo7Cu/SwifAXP9vJPAEMN+XTwPa1XStfr2d8Z4MmQd8mjqmQEvgNWAR8CrQoqZr9evaC1gL7B2Q1Zpji9eBLQeK8a6J/yTqWOI97fRn/708H+hfS+pdjHdtP/X+fdC3PdV/j8wFPgZOriX1Rr7+wPX+8f0COLGma/XljwE/D9lWybHVKTwURVGUWPTSk6IoihKLdhSKoihKLNpRKIqiKLFoR6EoiqLEoh2FoiiKEot2FIqiKEos2lEotQoRuV68adQ/8adFHpihfzMRuSSqnUU972Xru6sQkS0Z2Fqnpw/oc0XkPl833x+UFY7R0J8nKFdEGonIn0XkHhG5XUTqi8hb/qhgZTdFOwql1iAiR+BN79DXGNMbb6Tp9/FeaTQDLolpu9QhIpIDYIw5MsP8tY0S4FfGmB54U45fKiI9AvpfA18bYw4B/oT9WI0D/m2MKQUuBR4zxlwFdDPebMuvAT/elTuh1CzaUSi1iXbAGmPMdgBjzBpjzDIAETnXP8uYJyJP+LL/+DPTfhqYnXYCcKB/NnK3pY2InC0iH/myv/q/lDuJtwjN43hTNezn227xdQtF5G9+rhki0jBVtIjc6Pu+IyJTROTq8I7Zaq2iuGn7EtSbmOnp/alVTjHG3OebfwN0sbwuZ7FzepBDgDn+VDepaTj+49souyvVPVRe//Qv6g9ojDfVwJfAA8APfPkhvqyV324R+t8Q78u9JaGFWizt7sDzQJ7ffgA417crAwaFatri60qAPr7saeBsf3uAX3M+3oJSi7AvdhNVa8ZxgS1x+xJzfDsB3wFN/fZovIkE5/p/3wGPhHzqAysC7R8Cf/X/DvVlucDqmn7/6N+u+9PrikqtwRizRUT64c2pfwzwlHjL0jYBnjHGrPHtUou2XC4ip/jb++FNeLYiIc0woB/wX2+eRRrifVm+BXxrvIV+bHxjjJnrb8/B+9IFGAw8Z4wpAopE5PkI/6haKxM3al/SkPTp6cGbPvsmY8yDvs3DePMaBWkFbEg1jDEvAi8GDYwxpSKyQ0SaGO+sRdnN0I5CqVUY7zr4LGCWiMzHmxV1RthORIbi3cM4whhTKCKz8H59JyHAJGPMr0PxOgFbY/y2B7ZL8b6UnUioNeu4ROyLJX/a9PQ+zfEuN6WmqD4B+G3IfRtux7UBUORYt1LH0HsUSq1BRA4Wka4BUR/gW+B14HQRaenbtQD2Btb7X7zd8G7UAmzGOwMhov0acJqItEnFEpH9K1H2u8DJIpLv/2o/yWITVWtl4ybui4h9enqfLwO1/BJ40XhLe5ZjjFkP5IpIZGfhvy5rjDHFDvul1EH0jEKpTTQG7heRZnjX7hcDFxlj1ojIb4E3RaQU+B/wM+DnIrIQb6rnDwCMMWtF5F0RWQBMN8ZcY2nfgLdEaw7eVM2XknzJyoox5r8iMg3vks1KvGmpN4bMXrbVWtm4xpjPIvYluN73YOAcYL6IzPVl1xljXsKbrnq6iCwG3gcuws4MvGnuX43QH0PocpSye6HTjCtKJRGRxv79lUZ49zouMv6TRrUxbhZ19AV+aYw5J0L/b2C8MebL6q1MqS70jEJRKs9D/tiEfLx7BlX1Zb6r4maEMeZj8Qbt5fr3kMrxH5P9j3YSuzd6RqEoiqLEojezFUVRlFi0o1AURVFi0Y5CURRFiUU7CkVRFCUW7SgURVGUWLSjUBRFUWLRjkJRFEWJRTsKRVEUJRbtKBRFUZRY/j8fuxoeWevlzwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "summed, counted, radial = None, None, None\n", "\n", "for i in range(9):\n", " name = ds_names[i]\n", " ds = data[name]\n", " gonioref = goniometers[name]\n", " mg = gonioref.get_mg(position)\n", " mg.radial_range = (0, 95)\n", " images = [i.reshape(-1, 1) for i in ds]\n", " res_mg = mg.integrate1d(images, 50000)\n", " results[name] = res_mg \n", " if summed is None:\n", " summed = res_mg.sum\n", " counted = res_mg.count\n", " else:\n", " summed += res_mg.sum\n", " counted += res_mg.count\n", " radial = res_mg.radial\n", " jupyter.plot1d(res_mg, label=\"%i %s\"%(i, name), calibrant=LaB6, ax=ax )\n", " \n", "ax.plot(radial, summed/counted, label=\"Merged\")\n", "ax.legend()\n", "fig.show() " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multi-Gonio fit\n", "\n", "Can we fit everything togeather ?\n", "Just assume energy and scale parameter of the goniometer are the same for all modules and fit everything." ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "from scipy.optimize import minimize\n", "class MultiGoniometer:\n", " def __init__(self, list_of_goniometers,\n", " param_name_split,\n", " param_name_common):\n", " self.nb_gonio = len(list_of_goniometers)\n", " self.goniometers = list_of_goniometers\n", " self.names_split = param_name_split\n", " self.names_common = param_name_common\n", " self.param = None\n", " \n", " def init_param(self):\n", " param = []\n", " for gonio in self.goniometers:\n", " param += list(gonio.param[:len(self.names_split)])\n", " param += list(gonio.param[len(self.names_split):])\n", " self.param = numpy.array(param)\n", " \n", " def residu2(self, param):\n", " \"Actually performs the calulation of the average of the error squared\"\n", " sumsquare = 0.0\n", " npt = 0\n", " for idx, gonio in enumerate(self.goniometers):\n", " gonio_param = numpy.concatenate((param[len(self.names_split)*idx:len(self.names_split)*(1+idx)],\n", " param[len(self.names_split)*len(self.goniometers):]))\n", " sumsquare += gonio.residu2(gonio_param)\n", " return sumsquare\n", "\n", " def chi2(self, param=None):\n", " \"\"\"Calculate the average of the square of the error for a given parameter set\n", " \"\"\"\n", " if param is not None:\n", " return self.residu2(param)\n", " else:\n", " if self.param is None:\n", " self.init_param()\n", " return self.residu2(self.param)\n", " def refine2(self, method=\"slsqp\", **options):\n", " \"\"\"Geometry refinement tool\n", "\n", " See https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.optimize.minimize.html\n", "\n", " :param method: name of the minimizer\n", " :param options: options for the minimizer\n", " \"\"\"\n", " if method.lower() in [\"simplex\", \"nelder-mead\"]:\n", " method = \"Nelder-Mead\"\n", "\n", " former_error = self.chi2()\n", " print(\"Cost function before refinement: %s\" % former_error)\n", " param = numpy.asarray(self.param, dtype=numpy.float64)\n", " print(param)\n", " res = minimize(self.residu2, param, method=method,\n", " tol=1e-12,\n", " options=options)\n", " print(res)\n", " newparam = res.x\n", " new_error = res.fun\n", " print(\"Cost function after refinement: %s\" % new_error)\n", "\n", " if new_error < former_error:\n", " self.param = newparam\n", " return self.param\n", " \n", " def integrate(self, list_of_dataset, npt=50000, radial_range=(0,100)):\n", " summed = None\n", " counted = None\n", " param = self.param\n", " for idx, ds in enumerate(list_of_dataset):\n", " gonio = self.goniometers[idx]\n", " gonio_param = numpy.concatenate((param[len(self.names_split)*idx:len(self.names_split)*(1+idx)],\n", " param[len(self.names_split)*len(self.goniometers):]))\n", " print(gonio_param)\n", " gonio.param = gonio_param\n", " mg = gonio.get_mg(position)\n", " mg.radial_range = radial_range\n", " images = [i.reshape(-1, 1) for i in ds]\n", " res_mg = mg.integrate1d(images, 50000)\n", " if summed is None:\n", " summed = res_mg.sum\n", " counted = res_mg.count\n", " else:\n", " summed += res_mg.sum\n", " counted += res_mg.count\n", " radial = res_mg.radial\n", " res = Integrate1dResult(radial, summed/numpy.maximum(counted, 1e-10))\n", " res._set_unit(res_mg.unit)\n", " res._set_count(counted)\n", " res._set_sum(summed)\n", " return res" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "multigonio = MultiGoniometer([goniometers[ds_names[i]] for i in range(9)],\n", " [\"dist\", \"poni1\", \"poni2\", \"rot1\", \"offset\"], \n", " [\"scale\", \"nrj\"])\n" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8.603025165471922e-09\n", "CPU times: user 387 ms, sys: 20 ms, total: 407 ms\n", "Wall time: 406 ms\n", "6.1395059557657925e-09\n", "CPU times: user 382 ms, sys: 24 ms, total: 406 ms\n", "Wall time: 405 ms\n" ] } ], "source": [ "%time print(multigonio.chi2())\n", "multigonio.param = numpy.array([ 7.20594053e-01, 3.22408604e-02, 4.05228023e-03, -2.75578440e-05,\n", " -8.27999414e+01, 7.20612302e-01, 3.36369797e-02, 4.02094516e-03,\n", " -1.74996556e-05, -7.71999791e+01, 7.20636130e-01, 3.47920978e-02,\n", " 4.01341931e-03, -1.21330600e-05, -7.15999090e+01, 7.20757808e-01,\n", " 3.33850817e-02, 3.95036100e-03, 3.46517345e-05, -6.57999267e+01,\n", " 7.20813915e-01, 3.22167822e-02, 3.97128822e-03, 2.00055269e-05,\n", " -6.00000525e+01, 7.20881596e-01, 3.33801850e-02, 3.97760147e-03,\n", " 1.47074593e-05, -5.43998157e+01, 7.21048510e-01, 3.22346939e-02,\n", " 4.02104962e-03, -1.69519259e-05, -4.85998856e+01, 7.21074630e-01,\n", " 3.08484557e-02, 4.09385968e-03, -6.91378973e-05, -4.27999030e+01,\n", " 7.21154891e-01, 3.20619921e-02, 4.24950906e-03, -1.81328256e-04,\n", " -3.71999987e+01, 9.99038595e-01, 1.70266104e+01])\n", "%time print(multigonio.chi2())\n" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cost function before refinement: 6.1395059557657925e-09\n", "[ 7.20594053e-01 3.22408604e-02 4.05228023e-03 -2.75578440e-05\n", " -8.27999414e+01 7.20612302e-01 3.36369797e-02 4.02094516e-03\n", " -1.74996556e-05 -7.71999791e+01 7.20636130e-01 3.47920978e-02\n", " 4.01341931e-03 -1.21330600e-05 -7.15999090e+01 7.20757808e-01\n", " 3.33850817e-02 3.95036100e-03 3.46517345e-05 -6.57999267e+01\n", " 7.20813915e-01 3.22167822e-02 3.97128822e-03 2.00055269e-05\n", " -6.00000525e+01 7.20881596e-01 3.33801850e-02 3.97760147e-03\n", " 1.47074593e-05 -5.43998157e+01 7.21048510e-01 3.22346939e-02\n", " 4.02104962e-03 -1.69519259e-05 -4.85998856e+01 7.21074630e-01\n", " 3.08484557e-02 4.09385968e-03 -6.91378973e-05 -4.27999030e+01\n", " 7.21154891e-01 3.20619921e-02 4.24950906e-03 -1.81328256e-04\n", " -3.71999987e+01 9.99038595e-01 1.70266104e+01]\n", " message: Optimization terminated successfully\n", " success: True\n", " status: 0\n", " fun: 6.1395059557657925e-09\n", " x: [ 7.206e-01 3.224e-02 ... 9.990e-01 1.703e+01]\n", " nit: 1\n", " jac: [ 5.910e-08 -8.339e-08 ... -4.210e-08 6.458e-07]\n", " nfev: 48\n", " njev: 1\n", "Cost function after refinement: 6.1395059557657925e-09\n", "CPU times: user 19.2 s, sys: 464 ms, total: 19.7 s\n", "Wall time: 19.7 s\n" ] }, { "data": { "text/plain": [ "array([ 7.20594053e-01, 3.22408604e-02, 4.05228023e-03, -2.75578440e-05,\n", " -8.27999414e+01, 7.20612302e-01, 3.36369797e-02, 4.02094516e-03,\n", " -1.74996556e-05, -7.71999791e+01, 7.20636130e-01, 3.47920978e-02,\n", " 4.01341931e-03, -1.21330600e-05, -7.15999090e+01, 7.20757808e-01,\n", " 3.33850817e-02, 3.95036100e-03, 3.46517345e-05, -6.57999267e+01,\n", " 7.20813915e-01, 3.22167822e-02, 3.97128822e-03, 2.00055269e-05,\n", " -6.00000525e+01, 7.20881596e-01, 3.33801850e-02, 3.97760147e-03,\n", " 1.47074593e-05, -5.43998157e+01, 7.21048510e-01, 3.22346939e-02,\n", " 4.02104962e-03, -1.69519259e-05, -4.85998856e+01, 7.21074630e-01,\n", " 3.08484557e-02, 4.09385968e-03, -6.91378973e-05, -4.27999030e+01,\n", " 7.21154891e-01, 3.20619921e-02, 4.24950906e-03, -1.81328256e-04,\n", " -3.71999987e+01, 9.99038595e-01, 1.70266104e+01])" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time multigonio.refine2()" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LaB6 Calibrant with 109 reflections at wavelength 7.281789822635113e-11 \n", " LaB6 Calibrant with 109 reflections at wavelength 7.281789829007909e-11\n" ] } ], "source": [ "LaB6_new = get_calibrant(\"LaB6\")\n", "LaB6_new.wavelength = 1e-10*hc/multigonio.param[-1]\n", "print(LaB6,\"\\n\", LaB6_new)" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 7.20594053e-01 3.22408604e-02 4.05228023e-03 -2.75578440e-05\n", " -8.27999414e+01 9.99038595e-01 1.70266104e+01]\n", "[ 7.20612302e-01 3.36369797e-02 4.02094516e-03 -1.74996556e-05\n", " -7.71999791e+01 9.99038595e-01 1.70266104e+01]\n", "[ 7.20636130e-01 3.47920978e-02 4.01341931e-03 -1.21330600e-05\n", " -7.15999090e+01 9.99038595e-01 1.70266104e+01]\n", "[ 7.20757808e-01 3.33850817e-02 3.95036100e-03 3.46517345e-05\n", " -6.57999267e+01 9.99038595e-01 1.70266104e+01]\n", "[ 7.20813915e-01 3.22167822e-02 3.97128822e-03 2.00055269e-05\n", " -6.00000525e+01 9.99038595e-01 1.70266104e+01]\n", "[ 7.20881596e-01 3.33801850e-02 3.97760147e-03 1.47074593e-05\n", " -5.43998157e+01 9.99038595e-01 1.70266104e+01]\n", "[ 7.21048510e-01 3.22346939e-02 4.02104962e-03 -1.69519259e-05\n", " -4.85998856e+01 9.99038595e-01 1.70266104e+01]\n", "[ 7.21074630e-01 3.08484557e-02 4.09385968e-03 -6.91378973e-05\n", " -4.27999030e+01 9.99038595e-01 1.70266104e+01]\n", "[ 7.21154891e-01 3.20619921e-02 4.24950906e-03 -1.81328256e-04\n", " -3.71999987e+01 9.99038595e-01 1.70266104e+01]\n", "CPU times: user 6min 5s, sys: 913 ms, total: 6min 6s\n", "Wall time: 35.7 s\n" ] } ], "source": [ "%time res = multigonio.integrate([data[ds_names[i]] for i in range(9)])" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":2: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " ax.figure.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = jupyter.plot1d(res, calibrant=LaB6_new)\n", "ax.figure.show()" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "28454\n", "68 60\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ ":7: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n", " fig.show()\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(*calc_fwhm(res, LaB6_new, 10, 95), \"o\", label=\"FWHM\")\n", "ax.plot(*calc_peak_error(res, LaB6_new, 10, 95), \"o\", label=\"error\")\n", "ax.set_title(\"Peak shape & error as function of the angle\")\n", "ax.set_xlabel(res.unit.label)\n", "ax.legend()\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total run time: 956.6056206226349\n" ] } ], "source": [ "print(\"total run time: \", time.time()-start_time)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusion\n", "The calibration works and the FWHM of every single peak is pretty small: 0.02°. \n", "The geometry has been refined with the wavelength: \n", "The goniometer scale parameter refines to 0.999 instead of 1 and the wavelength is fitted with a change at the 5th digit which is pretty precise." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.9.5" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "00be1d22c3714f99b4998fbfa214c8a7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "013e6a7942fb40a6b72992b3f85f561a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "0150e71008d34e71a80301d2a9d1e76b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "0205d5daad574287a5e36dafcec7ecab": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "IntSliderModel", "state": { "description": "module_id", "layout": "IPY_MODEL_61007b90b4d04930a85fe7b55b9c65c1", "max": 9, "style": "IPY_MODEL_e87923908dee47598e73e14d161d2349" } }, "03c04b2b16674d1691bb790f76a8b467": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "040f091b7afb4b5faedad29670cde2c5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "IntSliderModel", "state": { "description": "module_id", "layout": "IPY_MODEL_a7e32f3234924ddaa85afa83a12f29de", "max": 9, "style": "IPY_MODEL_dcb97e7e3ff84fd1972570d86608ae86" } }, "04a886f335d14bc08afd4308ce6472a5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "0507af15cbd64bc3954c8955bbd5a1de": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_ce406a83f91a4492b820d715c0f66df2" } }, "070af2d9d61f4e0ba8b84f45dd383ea5": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_e7dedbc092f0422e943528d878bc7b91" } }, "08239fa193184ee28f28f29951ff2ab6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "0cbd50d48b8a476ca67f7eff91ed942d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "0d938ccb67e74edea9aa8f55108d8943": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_1161c0efee034045b4716939c217f8b2" } }, "0dd43bfdb5664d78a53630b07bf966e7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "1161c0efee034045b4716939c217f8b2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "1639c8b38d5e4c0091a402ac212117e3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "1ab6a052f2cb4341b0e7bb59593027cc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "1bbcc83ae38a4b6dadc93d0049db98c5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "1c514eb48a154c7688c4205f96328493": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_74c1ea6a280f41baa91ca8f9ef727774" } }, "2179b3cb4dbb4dd98728e17d9070ccf9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "25942cb3e2494e15803c2b1d32b6d4ff": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "2774ca85f5ed480d8593321207297a92": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "28357404eecc40c88018a9308d195bf2": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_0dd43bfdb5664d78a53630b07bf966e7" } }, "2bf4b349fc094ce487b5efb81aa42380": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_5f991c83f92345fbab1c3b19535c123f" } }, "307fd8cc829246458237712078718fdb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "394ca8987deb4b07a4c7a866e836c679": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "3b863574b18f49b893cff8153211bf06": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "3d199ff19a02415eae116528c5dc16f6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "41e0e4a35d294726b8fcda341f21e775": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_307fd8cc829246458237712078718fdb" } }, "425b83359dde4380ac0a4e4cfeb0283e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "IntSliderModel", "state": { "description": "frame_id", "layout": "IPY_MODEL_8559ac90ab924f8885feab7a2f46e293", "max": 500, "style": "IPY_MODEL_4343b6421068418db324226a69e2a33c", "value": 214 } }, "4343b6421068418db324226a69e2a33c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "44a238152860438585576e2a18626c93": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "4bb61694d54843b6b13421e600465348": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "4e7a7469400d4b328755ece3a70e9953": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_856dd89d9a4445e1b11c285ebeb2de20" } }, "5285e75b3f3b4edeb2f45474250f267d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "55033a5e8dd947e2886556cdb9d8e92d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "591b1e4e24ff4a6f8b1c44e2b64cecf0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "5a453b3b96bc41d4a62affc50ba873d8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "5b12719654274f1d842eeb2b60d298d2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "5c339a2d07da4e2abe205b8f3282fdbf": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_1ab6a052f2cb4341b0e7bb59593027cc" } }, "5f991c83f92345fbab1c3b19535c123f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "5fb082dca8264d6191ad7f07de0c4f9a": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_d18b801643a54baf97048a81b491e1c8" } }, "61007b90b4d04930a85fe7b55b9c65c1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "62c60c6ad25d44a3aeeb64cd2280576f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "62ce0c23ef574f639f9de0920030a78e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "6416199483114ebf9d034232e8033fc4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "644063599cd94a41961de434b1923475": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "6563060642ab4ebe84e9c9c17d928752": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "65d46021945a4d2d833e8a988972ee28": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "694bb2d7e05b4500ab105b7afae0918c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_0205d5daad574287a5e36dafcec7ecab", "IPY_MODEL_809d081102924a8695397a137bb45d4d", "IPY_MODEL_effe69d56e374ee28668c85a8959bcec" ], "layout": "IPY_MODEL_08239fa193184ee28f28f29951ff2ab6" } }, "6ce9a736558a4ab99c33f65e0cd932f3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "6f9689536e214a4190553796ba6bf091": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "709c2bb5cb9a47d58ad71ffaa9b14949": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_040f091b7afb4b5faedad29670cde2c5", "IPY_MODEL_908f72e622ba483194fa6e33551e491b", "IPY_MODEL_8bccbcf68c444b0fbab1bbc43e5df7af" ], "layout": "IPY_MODEL_591b1e4e24ff4a6f8b1c44e2b64cecf0" } }, "709d08c580cb4bb7a1b3144179de759e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "73761ce121a94af293289bbd1e5bcf02": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "74c1ea6a280f41baa91ca8f9ef727774": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "74d599e1b8bf492a844975dcd563213b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "IntSliderModel", "state": { "description": "frame_id", "layout": "IPY_MODEL_841889510bc64a6e9e17f3c76ab6327a", "max": 500, "style": "IPY_MODEL_73761ce121a94af293289bbd1e5bcf02", "value": 250 } }, "79e01aa171324ebfaa812305d8598e3a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_cca78b86c1d140d79ec5003709dffd15", "IPY_MODEL_425b83359dde4380ac0a4e4cfeb0283e", "IPY_MODEL_2bf4b349fc094ce487b5efb81aa42380" ], "layout": "IPY_MODEL_bf8985f8594c4bbe91d810b4780a4704" } }, "7a549c9118e34ac0bb49bc543eeaa5b1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "7dbf697ea64a4eb9be2fe116cac9d0f3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "7fd8c56dacd64c78879a1667e5804bd3": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_b941d34d7b8b426ebd8a63fbadbc598b" } }, "80774e3ee4d5422a89f2803e0beb04a0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "809d081102924a8695397a137bb45d4d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "IntSliderModel", "state": { "description": "frame_id", "layout": "IPY_MODEL_5b12719654274f1d842eeb2b60d298d2", "max": 500, "style": "IPY_MODEL_644063599cd94a41961de434b1923475", "value": 480 } }, "8330adbf332a4074b6a91b1d176d13ea": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_e6b238f1fb434d7e84fdbb96a4022d42" } }, "841889510bc64a6e9e17f3c76ab6327a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "84634a8f7dce472abe79b0e24069754f": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_6416199483114ebf9d034232e8033fc4" } }, "84f2c61385d543caaf09088fbed49402": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "8559ac90ab924f8885feab7a2f46e293": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "856dd89d9a4445e1b11c285ebeb2de20": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "89f8a8891a414ef7b84886a9fa0eb873": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_0150e71008d34e71a80301d2a9d1e76b" } }, "8ba0dc114726493fa636d40f818258a2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "8bccbcf68c444b0fbab1bbc43e5df7af": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_d25a2af2da9c4b2ab62016079e11fbb9" } }, "8f28275fdbba43b5a17d6553abfdce23": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "908f72e622ba483194fa6e33551e491b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "IntSliderModel", "state": { "description": "frame_id", "layout": "IPY_MODEL_b15d4bf3f52f4f1da53233143ef0b5bd", "max": 500, "style": "IPY_MODEL_c3ab50d1c01649fdb62018d0abc10db8", "value": 495 } }, "90f5051569e9467891e502389a4b803b": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_d8fe52e2b5e048ffbc7495127f6c79d6" } }, "934ad7f899ef41368b7f233e00506642": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_fff31fb004ae4bf6b7ccc8b2ac205de8", "IPY_MODEL_74d599e1b8bf492a844975dcd563213b", "IPY_MODEL_8330adbf332a4074b6a91b1d176d13ea" ], "layout": "IPY_MODEL_03c04b2b16674d1691bb790f76a8b467" } }, "96cb6816c0c94655ac5f1872cc7aee1f": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_f9492ba5e81e40fabeedf91cc29a812f" } }, "9968edfd33d0425ab43cf581e4ef50c7": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_2179b3cb4dbb4dd98728e17d9070ccf9" } }, "a60aa3bc8aa84668b11742bd9e7c495a": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_a927a844201b428b8140b5ee06629b77" } }, "a61d1c1bdc924b2e965f5a59653698df": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "a7e32f3234924ddaa85afa83a12f29de": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "a927a844201b428b8140b5ee06629b77": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "ac90715928094acba545a86e996c384c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "b15d4bf3f52f4f1da53233143ef0b5bd": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "b2306b33f90c4473bd7ec0198a32edfa": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "b73f32f580914908ae1c03cf4bb05e3f": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_e74470112e0b4253a6995395971459bf" } }, "b7f38bb28e44465e8cb468415685207e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "b941d34d7b8b426ebd8a63fbadbc598b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "ba8f82017a424118a591f055eab51c8b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "bebfe94de147496fa38f9f0954738683": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "bf8985f8594c4bbe91d810b4780a4704": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "c084be3c23c648058c01b4712b75bae1": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_1639c8b38d5e4c0091a402ac212117e3" } }, "c1c0ab3ef278440c83c1f6494b3eec33": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_62c60c6ad25d44a3aeeb64cd2280576f" } }, "c3ab50d1c01649fdb62018d0abc10db8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "c422f02a19b24cf59ffa27e59e6cbe76": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_3b863574b18f49b893cff8153211bf06" } }, "c474be73f07e4a6bbc12f49e07924ce1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "c516afff7ba44410b69f48d37b46cfa2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "c5576a2c1810481d879da75b01c08534": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "c826fa00cb0447e8b03b01940c449536": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "c9cb9135eace43da87b31436944104aa": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_7a549c9118e34ac0bb49bc543eeaa5b1" } }, "cca78b86c1d140d79ec5003709dffd15": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "IntSliderModel", "state": { "description": "module_id", "layout": "IPY_MODEL_80774e3ee4d5422a89f2803e0beb04a0", "max": 9, "style": "IPY_MODEL_f3b61123c15f4320ba75cb4b5f40a68a" } }, "ce406a83f91a4492b820d715c0f66df2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "d18b801643a54baf97048a81b491e1c8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "d1953c95a05140598de14c4222d5e471": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "d25a2af2da9c4b2ab62016079e11fbb9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "d8137862d3c5400dbfa0ad6e265b4ce3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "d8fe52e2b5e048ffbc7495127f6c79d6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "dcb882225ae9416aa0b9829d77dbd0cb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "dcb97e7e3ff84fd1972570d86608ae86": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "df5ecf54da984e68852e5c90bed11ad7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "e126c84b89cd4731ade33684de68df8c": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_fcce55c2ae964623b8bd523832bea047" } }, "e1e1012b18864633a1210945f8c320a5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "e3a4e8a244524b34a312540188a1468e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "e6b238f1fb434d7e84fdbb96a4022d42": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "e74470112e0b4253a6995395971459bf": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "e7dedbc092f0422e943528d878bc7b91": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "e87923908dee47598e73e14d161d2349": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "ef361c8bcf2e43cea87accf1f8a50258": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "efb9ab08375a43d89192229cbfece970": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "effe69d56e374ee28668c85a8959bcec": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_6563060642ab4ebe84e9c9c17d928752" } }, "f3b61123c15f4320ba75cb4b5f40a68a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "f4a882a6889a40b99a1289e8c480f13b": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_00be1d22c3714f99b4998fbfa214c8a7" } }, "f76dc12d5f8f4d2d9fa0ebe01319d9ae": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "f9492ba5e81e40fabeedf91cc29a812f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "fa9b3a8e1a0a4870bd35b5ca0507f82d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "faced9f196f1415090e677c0d225fcbf": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "fcce55c2ae964623b8bd523832bea047": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.0.0", "model_name": "LayoutModel", "state": {} }, "fd28abe8abec4d0e8e265f2f34affd0a": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.3.0", "model_name": "MPLCanvasModel", "state": { "_dom_classes": [], "_id": "", "_toolbar_items": [ [ "Home", "Reset original view", "fa fa-home icon-home", "home" ], [ "Back", "Back to previous view", "fa fa-arrow-left icon-arrow-left", "back" ], [ "Forward", "Forward to next view", "fa fa-arrow-right icon-arrow-right", "forward" ], [ "", "", "", "" ], [ "Pan", "Pan axes with left mouse, zoom with right", "fa fa-arrows icon-move", "pan" ], [ "Zoom", "Zoom to rectangle", "fa fa-square-o icon-check-empty", "zoom" ], [ "", "", "", "" ], [ "Download", "Download plot", "fa fa-floppy-o icon-save", "download" ] ], "layout": "IPY_MODEL_8ba0dc114726493fa636d40f818258a2" } }, "fff31fb004ae4bf6b7ccc8b2ac205de8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.1.0", "model_name": "IntSliderModel", "state": { "description": "module_id", "layout": "IPY_MODEL_ac90715928094acba545a86e996c384c", "max": 9, "style": "IPY_MODEL_f76dc12d5f8f4d2d9fa0ebe01319d9ae", "value": 4 } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }