{ "cells": [ { "cell_type": "code", "execution_count": 39, "id": "together-domain", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "id": "thrown-native", "metadata": {}, "source": [ "# Recovering ToF\n", "\n", "Time-of-flight (ToF) is an important concept in neutron scattering, enabling faster and more flexible measurements. \n", "However, in order to complete a ToF measurement, it is important that we keep a track of the pulses from the neutron source. \n", "In this exercise, we will look at recovering the ToF from a series of neutron pulses, where the pulse start points have been lost. \n", "*Note, this is a slightly contrived exercise, but hopefully it will help with your understanding of clustering methods.*\n", "\n", "The file [`tof.txt`](https://github.com/arm61/trad_ml_methods/raw/main/tof.txt) contains a numpy array consisting of absolute ToF and *θ*. \n", "Let's have a look at this data. " ] }, { "cell_type": "code", "execution_count": 40, "id": "liquid-visitor", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "tof, theta = np.loadtxt('tof.txt')\n", "plt.plot(tof, theta, 'o')\n", "plt.xlabel(r'Absolute ToF/$\\mu s$')\n", "plt.ylabel(r'$\\theta$/rad')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "applied-trinidad", "metadata": {}, "source": [ "## Exercise\n", "\n", "In this exercise, you should use *k*-means clustering to identify the different pulses from this data where the pulse data has been lost. \n", "You will need to try and determine how many pulses there are in the data. \n", "Once you have the cluster centers, you can normalise the data with respect to these (is you are stuggling with this there is some [help here](https://mccluskey.scot/trad_ml_methods/clustering_help.html), but try and work it out with this first!), note we should also offset to account for the position of the first centre. \n", "\n", "Once you have normalised the data, it should look something like this. \n", "\n", "![Normalised ToF data by theta](normalised_data.png)" ] }, { "cell_type": "code", "execution_count": null, "id": "congressional-sheffield", "metadata": {}, "outputs": [], "source": [] } ], "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.7.9" } }, "nbformat": 4, "nbformat_minor": 5 }