{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " **Chapter 4: [Spectroscopy](CH4_00-Spectroscopy.ipynb)** \n", "\n", "
\n", "\n", "\n", "\n", "# Introduction to Electron Energy-Loss Spectroscopy\n", "\n", "\n", "[Download](https://raw.githubusercontent.com/gduscher/MSE672-Introduction-to-TEM/main/Spectroscopy/CH4_01-Introduction.ipynb)\n", "\n", "part of \n", "\n", " **[MSE672: Introduction to Transmission Electron Microscopy](../_MSE672_Intro_TEM.ipynb)**\n", "\n", "by Gerd Duscher, Spring 2024\n", "\n", "Microscopy Facilities
\n", "Institute of Advanced Materials & Manufacturing
\n", "Materials Science & Engineering
\n", "The University of Tennessee, Knoxville\n", "\n", "Background and methods to analysis and quantification of data acquired with transmission electron microscopes.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preliminaries\n", "### Check Installed Packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "installing pyTEMlib\n", "done\n" ] } ], "source": [ "import sys\n", "import importlib.metadata\n", "def test_package(package_name):\n", " \"\"\"Test if package exists and returns version or -1\"\"\"\n", " try:\n", " version = importlib.metadata.version(package_name)\n", " except importlib.metadata.PackageNotFoundError:\n", " version = '-1'\n", " return version\n", "\n", "if test_package('pyTEMlib') < '0.2024.2.3':\n", " print('installing pyTEMlib')\n", " !{sys.executable} -m pip install --upgrade pyTEMlib -q\n", "\n", "print('done')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import all relevant libraries\n", "\n", "Please note that the EELS_tools package from pyTEMlib is essential." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pyTEM version: 0.2024.02.2\n" ] } ], "source": [ "import sys\n", "%matplotlib ipympl\n", "if 'google.colab' in sys.modules:\n", " from google.colab import output\n", " from google.colab import drive\n", " output.enable_custom_widget_manager()\n", "\n", "import matplotlib.pylab as plt\n", "import numpy as np\n", " \n", "# Import libraries from the book\n", "import pyTEMlib\n", "from pyTEMlib import file_tools # File input/ output library\n", "from pyTEMlib import eels_tools \n", "\n", "# For archiving reasons it is a good idea to print the version numbers out at this point\n", "print('pyTEM version: ',pyTEMlib.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "### Parts of an EELS Spectrum:\n", "\n", "\n", "![EELS spectrum](images/EELS.jpg \"Title\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "**No energy transfer**\n", "\n", "The zero--loss peak is caused by electrons of the acceleration energy which apparently did not loose any energy (or only a tiny amount in a quasi--elastic scattering). \n", "\n", "**Little energy transfer: 1-70 eV**\n", "\n", "The valence--loss region shows intraband, interband, and plasmon transitions.\n", "\n", "**High energy transfer: above 70eV**\n", "\n", "The core--loss region contains excitation from the atom core levels into the conduction band appear as saw tooth like edges.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Inelastic Excitation\n", "Energy is transfered to an atom in ground state and after a while (femto seconds) this atoms will change its electron levels and shell occupations and becomes an excited atom.\n", "\n", "\n", "\"inelastic\n", "\n", "\n", "After some time (femto seconds to minutes) this atoms falls back to the ground state and after a little while longer (femto seconds), the atom emits this energy either in form of photons (in the light and X-ray spectrum) or Auger electron. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So we have two obervable processes:\n", "\n", "**energy transfer to the atom in ground state**\n", "- primary energy transfer\n", " - electron energy-loss spectroscopy\n", "\n", "**excited atom emitting energy**\n", "- secondary processes\n", " - electron energy-loss spectroscopy\n", " - Auger spectroscopy\n", " - energy-dispersive X-ray spectroscopy\n", " - Cathodoluminescence\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### EELS Spectrometer\n", "\n", "We use a magnetic field to bend the electron beam (here 90$^{\\rm o}$) which acts like a prism for light and separates the electrons by spead (kinetic energy). The faster electrons will get bent less. \n", "\n", "\"EELS\n", "\n", "With such a prism for electrons we can determine the energy lost in the sample. \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### EELS and STEM\n", "\n", "The advantage of EELS in STEM mode is that we get a HAADF signal and the bright field signal is analysed with EELS spectroscopy. So we get spatially resolved image and chemical information simultaneously.\n", "\n", "\"EELS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load an EELS Spectrum\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "# ---- Input ------\n", "load_example = True\n", "# -----------------\n", "if not load_example:\n", " if 'google.colab' in sys.modules:\n", " drive.mount(\"/content/drive\")\n", "\n", " fileWidget = file_tools.FileWidget()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d80f69329a3444b2b18299091cf8bc80", "version_major": 2, "version_minor": 0 }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHu0lEQVR4nO3dd3xUVf7/8fdNmwQSAoHQA4LSIVTRoCILCAIi6oouFqooGlHEigUWRbO41p8FBSlfBQQsiAqCKBAQZGmyNBdBQ1FApJdASDLn90eYIZMJZKjDnft6Ph55MHPunTufmZsHvDnnnnMtY4wRAAAAHCMs2AUAAADgwiIAAgAAOAwBEAAAwGEIgAAAAA5DAAQAAHAYAiAAAIDDEAABAAAchgAIAADgMARAAAAAhyEAAgAAOAwBEAAAwGEIgAAAAA5DAAQAAHAYAiAAAIDDEAABAAAchgAIAADgMARAAAAAhyEAAgAAOAwBEAAAwGEIgAAAAA5DAAQAAHAYAiAAAIDDEAABAAAchgAIAADgMARAwObGjRsny7JO+jNv3jxJ0iWXXHLSfVq1auV3vGXLlp3yfbdu3aoHHnhANWvWVExMjBISEtSgQQP17dtXW7du9dl31qxZuuqqqxQTE6P4+Hh17txZa9euLfS43333nVJSUlSsWDGVKVNGPXv21M6dO8/qOzoXZs6cqU6dOikxMVEul0tJSUnq0aOH1q1bd8rXNWnSRJZl6ZVXXrlAlZ57l1xyiXr27Hlar1m5cqU6deqkKlWqeH8/UlJSNH78+PNTJIDTEhHsAgCcG2PHjlXt2rX92uvWret9fNVVVxUaREqUKHFa7/X777+rSZMmKlmypB599FHVqlVL+/fv17p16zRlyhT99ttvSkpKkiRNmzZNN998s7p06aLPPvtM+/fv19ChQ3XNNddo6dKluvTSS73HTU9PV4cOHdSpUydNmzZNO3fu1JNPPqk2bdpo2bJlcrlcp1XnufLEE0/o3//+t66//nq9++67KleunH755Re99tpratKkiSZOnKhbbrnF73UrV67UTz/9JEkaPXq0HnvssQtd+jkxderU0/4d2bdvn5KSktStWzdVqlRJhw8f1oQJE3T33Xdr06ZNevbZZ89TtQACYgDY2tixY40ks3Tp0lPuV7VqVdOpU6dzcrzBgwcbSea3334rdHtubq73ca1atUxycrJxu93etk2bNpmoqChzxx13+Lzu8ssvN3Xr1jXZ2dnetoULFxpJ5t133y2y9vNh4sSJRpK5//77/bYdOnTING3a1BQrVsz8+uuvfttTU1ONJNOpUycjySxcuPBClHxRu+KKK0xSUlKwywAcjyFgAKdt9+7dCgsLU9myZQvdHhYW5t1v/fr16tChgyzL8m6vWrWq6tevry+++EK5ubmSpD/++ENLly7V3XffrYiIE4MTLVq0UM2aNTV16lRvm2eYes6cOerbt69Kly6tEiVKqHv37jp8+LB27Nih2267TSVLllSFChX02GOPKTs72/v6efPm+QyPe2zatEmWZWncuHHethdffFGlSpUqtOe0ePHieuutt5SZmanXX3/dZ9vRo0c1ceJENW3a1LttzJgxhX5fY8aMUcOGDRUdHa2EhATdfPPN+vnnn3326dmzp2JjY7Vx40Z17NhRsbGxSkpK0qOPPqqsrCyffYcOHaorrrhCCQkJKlGihJo0aaLRo0fLGOPd54cfflBkZKRfr6Tnux09erS3reAQsNvt1rBhw1SrVi3FxMSoZMmSSk5O1ptvvlno58uvTJkyPucXQHAQAIEQkZubq5ycHJ8fT7jyMMb47ZOTk+MTDAKRkpIit9utW265RbNmzdKBAwcK3e/YsWOSVOjQrcvlUmZmpn799VdJ0po1ayRJycnJfvsmJyd7t+d3zz33KD4+XpMmTdKzzz6riRMnqm/fvurUqZMaNmyoTz/9VD169NCrr76qt95667Q+oyRt375da9euVbt27VSsWLFC90lJSVHZsmU1e/Zsn/bPP/9ce/fuVe/evVWjRg1dffXVmjx5sg4dOuSzX1pamvr06aN69erp888/15tvvqlVq1YpJSVFGzZs8Nk3OztbN954o9q0aaNp06apd+/eev311zV8+HCf/TZt2qT77rtPU6ZM0eeff65bbrlF/fv31wsvvODd5+qrr9awYcP06quv6ssvv5QkrV27VqmpqbrrrrvUp0+fk34vL7/8sv75z3+qW7dumj59uiZPnqw+ffpo3759fvu63W7l5OTor7/+0rvvvqtZs2bpySefPOmxAVwgQe6BBHCWPEO2hf2Eh4d796tatepJ93vhhRf8jneqIWC3223uu+8+ExYWZiQZy7JMnTp1zCOPPGIyMjK8++Xm5pqEhATTpk0bn9fv3bvXxMXFGUlm0aJFxhhjJkyYYCSZH3/80e/97r33XhMVFeVXY//+/X32u+mmm4wk89prr/m0N2rUyDRp0sT7fO7cuUaSmTt3rs9+GRkZRpIZO3asMcaYxYsXG0nmqaeeOul3YUzesGZMTIxPW+vWrU10dLTZu3evT82jR4/2+R5iYmJMx44dfV67ZcsW43K5fIbIe/ToYSSZKVOm+OzbsWNHU6tWrZPWlpuba7Kzs83zzz9vSpcu7TMU73a7TceOHU3JkiXNmjVrTN26dU3t2rXNoUOHfI5RtWpV06NHD+/zG264wTRq1OiU34nHfffd5/09i4qKCtpQPgBf9AACIeLDDz/U0qVLfX7+85//+Oxz9dVX++2zdOnSU/b2FMayLL333nv67bff9O6776pXr17Kzs7W66+/rnr16ik9PV1S3lBwamqqvv/+e73wwgvauXOnNm7cqLvuukuZmZnefQoe+2TvWdANN9zg87xOnTqSpE6dOvm1b968+bQ+4+kwxvjUl5GRoblz5+qWW25RyZIlJUldu3ZVXFyczzDwjz/+qCNHjvjNsE1KSlLr1q31/fff+7RblqXOnTv7tCUnJ/t9tjlz5qht27aKj49XeHi4IiMjNXjwYO3evdtnRrVlWfrwww8VFxenZs2aKSMjQ1OmTFHx4sVP+XmbN2+u//73v3rggQdO2QMsSU8//bSWLl2q6dOnq3fv3nrwwQdtPSMaCBVciAGEiDp16qhZs2an3Cc+Pr7IfU5H1apVdf/993ufT5kyRd26ddPjjz+uJUuWSJIGDx6sQ4cOadiwYRo8eLCkvIDWq1cvffDBB6pUqZIkqXTp0pLyrhssaM+ePUpISPBrL9gWFRV10vajR4+e9uerUqWKpLxAdyqbN2/2znqW8q7pM8bo1ltv9RkWvfHGGzVhwgT973//U+3atb2ftUKFCn7HrFixot+wcrFixRQdHe3T5nK5fD7bkiVL1K5dO7Vq1UqjRo1S5cqVFRUVpS+++EIvvviijhw54vP60qVL68Ybb9Q777yjm2++WQ0aNDjlZ5WkQYMGqXjx4ho/frzee+89hYeHq2XLlho+fLjf71eVKlW832PHjh29r+/Ro4cSExOLfC8A5wc9gADOmdtuu83ver2IiAi99tpr2r17t1atWqVt27bp66+/1pYtW1StWjVVrlxZklS/fn1J0urVq/2Ou3r1au/2c8ETogpOnti1a5fP8woVKqhevXr69ttvvT2WBf3444/6888/dd1110nKu+bNM4nklltuUalSpbw/EyZMkHRiMogn9G7fvt3vuNu2bVOZMmVO+7NNmjRJkZGR+vrrr3XbbbepRYsWpwz9s2fP1ogRI9S8eXNNnTpVn332WZHvERERoYEDB2rFihXas2ePPv74Y23dulXt27c/6ffk0bx5c+Xk5Oi333477c8G4NwhAAI4bYUFFkk6dOiQtm7dqooVK/pti42NVYMGDVShQgWtWLFC33//vR5++GHv9kqVKql58+YaP368z+SVxYsXa/369YWus3emLrnkEknSqlWrfNo9kyHye+aZZ7R3795C1/A7fPiwHnroIRUrVkyPPPKIpLxFr3///XelpqZq7ty5fj/16tXThx9+qJycHKWkpCgmJsZvceTff/9dc+bMUZs2bU77s1mWpYiICIWHh3vbjhw5oo8++shv3+3bt+uuu+7Stddeq0WLFunGG29Unz59iuzxzK9kyZK69dZblZqaqj179mjTpk2n3H/u3LkKCwtT9erVA34PAOceQ8BAiFizZo1ycnL82i+99FLvUNu+ffu0ePFiv31cLpcaN27s0zZnzpxC/zHv2LGjXnzxRS1cuFC33367GjVqpJiYGGVkZOjtt9/W7t279e9//9u7/7x587R06VIlJyfLGKMlS5Zo+PDhuv766/Xggw/6HHv48OG67rrr1LVrVz3wwAPauXOnnnrqKdWvX1+9evU6k6+lUOXLl1fbtm2VlpamUqVKqWrVqvr+++/1+eef++3brVs3rVixQq+88oo2bdqk3r17q1y5clq/fr1ef/11/frrr5o4caI30IwePVoRERF6+umnCw3C9913nx566CFNnz5dXbp00XPPPaenn35a3bt3V7du3bR7924NHTpU0dHRGjJkyGl/tk6dOum1117THXfcoXvvvVe7d+/WK6+84jcTOzc3V926dZNlWZo4caLCw8M1btw4NWrUSLfffrt++OEH75B6QZ07d1b9+vXVrFkzJSYmavPmzXrjjTdUtWpV1ahRQ5J07733qkSJEmrevLnKlSunXbt26ZNPPtHkyZP1+OOPM/wLBFuQJ6EAOEunmgUsyYwaNcoYc+pZwJUqVQr4eBkZGWbx4sUmNTXVNGzY0CQkJJjw8HCTmJho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79+vEiVKXKgyg+JQVo7qD5nlff5pvxQ1uyQhiBUBAHBmDhw4oPj4eEf8+30yjh4CLsgY4xPwCnK5XHK5XBewoouH30LQQaoDAACcPccGwKefflodOnRQUlKSDh48qEmTJmnevHmaOXNmsEu7KBUMfPQbAwBgX44NgH/++afuvvtubd++XfHx8UpOTtbMmTN13XXXBbu0i5LfJBASIAAAtuXYADh69Ohgl2AvzAIGACBkOHoWMALHLGAAAEIHARAB8V8HkAQIAIBd2W4IOCsrS0uWLNGmTZuUmZmpxMRENW7cWNWqVQt2aSGNSSAAAIQO2wTARYsW6a233tIXX3yhY8eOqWTJkoqJidGePXuUlZWl6tWr695771W/fv0UFxcX7HJDjt8yMARAAABsyxZDwF26dNGtt96qSpUqadasWTp48KB2796t33//XZmZmdqwYYOeffZZff/996pZs6Zmz54d7JJDjl8PIEPAAADYli16ANu1a6dPPvlEUVFRhW6vXr26qlevrh49emjt2rXatm3bBa4w9LnpAQQAIGTYIgCmpqYGvG+9evVUr16981iNQ7EMDAAAIcMWQ8D5bd26Vb///rv3+ZIlSzRgwACNHDkyiFWFPv9JIERAAADsynYB8I477tDcuXMlSTt27NB1112nJUuW6Omnn9bzzz8f5OpCl/8yMAAAwK5sFwDXrFmj5s2bS5KmTJmi+vXra9GiRZo4caLGjRsX3OJCmP9C0ERAAADsynYBMDs7Wy6XS5L03Xff6cYbb5Qk1a5dW9u3bw9maSHN/17AwakDAACcPdsFwHr16um9997TggULNHv2bF1//fWSpG3btql06dJBri50sRA0AAChw3YBcPjw4Xr//ffVqlUrdevWTQ0bNpQkffnll96hYZx7fgtBB6kOAABw9myxDEx+rVq10q5du3TgwAGVKlXK237vvfeqePHiQawstPkPARMBAQCwK9v1ALZu3VoHDx70CX+SlJCQoNtvvz1IVYU+ZgEDABA6bBcA582bp2PHjvm1Hz16VAsWLAhCRc7ALGAAAEKHbYaAV61a5X28bt067dixw/s8NzdXM2fOVKVKlYJRmiMwCxgAgNBhmwDYqFEjWZYly7LUunVrv+0xMTF66623glCZM/jNAg5KFQAA4FywTQDMyMiQMUbVq1fXkiVLlJiY6N0WFRWlsmXL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6aeferfPmzdPlmXp+++/V7NmzVSsWDG1aNFC69ev9znOV199paZNmyo6OlrVq1fX0KFDlZOT491uWZbee+89denSRcWLF9ewYcMkScOGDVPZsmUVFxene+65R0899ZQaNWokSZo/f74iIyO1Y8cOn/d69NFH1bJly4A/4969e9W9e3eVKlVKxYoVU4cOHbRhwwbv9s2bN6tz584qVaqUihcvrnr16mnGjBne1955551KTExUTEyMatSoobFjx570vb755htFREQoJSXFp33dunXq2LGjYmNjVa5cOd19993atWuXJOmGG25Q2bJlNW7cOJ/XZGZmavLkyerTp4+3rX379tq9e7fS09MD/vwAQg8BEMBZefbZZzV27FiNGDFCa9eu1SOPPKK77rrLL2A888wzevXVV7Vs2TJFRESod+/e3m2zZs3SXXfdpYceekjr1q3T+++/r3HjxunFF1/0OcaQIUPUpUsXrV69Wr1799aECRP04osvavjw4Vq+fLmqVKmiESNGePdv2bKlqlevro8++sjblpOTo/Hjx6tXr14Bf8aePXtq2bJl+vLLL/Xjjz/KGKOOHTt6eyFTU1OVlZWl+fPna/Xq1Ro+fLhiY2MlSc8995zWrVunb775Rj///LNGjBihMmXKnPS95s+fr2bNmvm0bd++Xddee60aNWqkZcuWaebMmfrzzz912223SZIiIiLUvXt3jRs3Tvlv7/7JJ5/o2LFjuvPOO71tUVFRatiwoRYsWBDw5wcQggwAnKFDhw6Z6Ohos2jRIp/2Pn36mG7duhljjJk7d66RZL777jvv9unTpxtJ5siRI8YYY6655hrz0ksv+Rzjo48+MhUqVPA+l2QGDBjgs88VV1xhUlNTfdquuuoq07BhQ+/z4cOHmzp16niff/HFFyY2NtYcOnTopJ/r2muvNQ8//LAxxphffvnFSDILFy70bt+1a5eJiYkxU6ZMMcYY06BBA/PPf/6z0GN17tzZ9OrV66TvVVCXLl1M7969fdqee+45065dO5+2rVu3Gklm/fr1xhhjfv75ZyPJzJkzx7tPy5Ytvechv5tvvtn07Nkz4JoAhB56AAGcsXXr1uno0aO67rrrFBsb6/358MMP9euvv/rsm5yc7H1coUIFSdLOnTslScuXL9fzzz/vc4y+fftq+/btyszM9L6uYM/Y+vXr1bx5c5+2gs979uypjRs3avHixZLyrom77bbbVLx4cS1YsMDnPSdMmOD3GX/++WdFREToiiuu8LaVLl1atWrV0s8//yxJeuihhzRs2DBdddVVGjJkiFatWuXd9/7779ekSZPUqFEjPfHEE1q0aNEpv9MjR44oOjrap2358uWaO3euT621a9eWJO/3XLt2bbVo0UJjxozxti9YsMCnp9UjJibG53sF4DwRwS4AgH253W5J0vTp01WpUiWfbS6Xy+d5ZGSk97FlWT6vd7vdGjp0qG655Ra/98gfhooXL+633XMsD5NvCFSSypYtq86dO2vs2LGqXr26ZsyYoXnz5knKC5QrV6707luuXDm/4xc8Xv52z3vfc889at++vaZPn65vv/1WaWlpevXVV9W/f3916NBBmzdv1vTp0/Xdd9+pTZs2Sk1N1SuvvFLoccuUKaO9e/f6tLndbnXu3FnDhw/3298TpqW8ySAPPvig3nnnHY0dO1ZVq1ZVmzZt/F6zZ88eXXrppYW+PwBnoAcQwBmrW7euXC6XtmzZossuu8znJykpKeDjNGnSROvXr/c7xmWXXaawsJP/NVWrVi0tWbLEp23ZsmV++91zzz2aNGmS3n//fV166aW66qqrJOX1hOV/r7i4uEI/Y05Ojv7zn/9423bv3q1ffvlFderU8bYlJSWpX79++vzzz/Xoo49q1KhR3m2JiYnq2bOnxo8frzfeeEMjR4486Wdq3Lix1q1b5/f9rF27Vpdcconf95M/FN92220KDw/XxIkT9X//93/q1auXX0CWpDVr1qhx48YnrQFA6KMHEMAZi4uL02OPPaZHHnlEbrdbV199tQ4cOKBFixYpNjZWPXr0COg4gwcP1g033KCkpCR17dpVYWFhWrVqlVavXu2d7VuY/v37q2/fvmrWrJlatGihyZMna9WqVapevbrPfu3bt1d8fLyGDRum559//rQ+Y40aNdSlSxf17dtX77//vuLi4vTUU0+pUqVK6tKliyRpwIAB6tChg2rWrKm9e/dqzpw53nA4ePBgNW3aVPXq1VNWVpa+/vprn+BYUPv27TVo0CDt3btXpUqVkpQ3yWTUqFHq1q2bHn/8cZUpU0YbN27UpEmTNGrUKIWHh0uSYmNjdfvtt+vpp5/W/v371bNnT7/jb9q0SX/88cdJ1w0E4Az0AAI4Ky+88IIGDx6stLQ01alTR+3bt9dXX32latWqBXyM9u3b6+uvv9bs2bN1+eWX68orr9Rrr72mqlWrnvJ1d955pwYNGqTHHntMTZo0UUZGhnr27Ol3DV1YWJh69uyp3Nxcde/e/bQ/49ixY9W0aVPdcMMNSklJkTFGM2bM8A5r5+bmKjU1VXXq1NH111+vWrVq6d1335WUN+t20KBBSk5OVsuWLRUeHq5Jkyad9L0aNGigZs2aacqUKd62ihUrauHChcrNzVX79u1Vv359Pfzww4qPj/frIe3Tp4/27t2rtm3bqkqVKn7H//jjj9WuXbsiv1sAoc0yJ7vABQBs6LrrrlP58uV9ln6RpL59++rPP//Ul19+GaTKAjdjxgw99thjWrNmzSmHwE9XVlaWatSooY8//tg7DA7AmRgCBmBbmZmZeu+999S+fXuFh4fr448/1nfffafZs2d799m/f7+WLl2qCRMmaNq0aUGsNnAdO3bUhg0b9Mcff5zWtZRF2bx5s5555hnCHwB6AAHY15EjR9S5c2etWLFCWVlZqlWrlp599lmf2cStWrXSkiVLdN9993EPXAA4jgAIAADgMEwCAQAAcBgCIAAAgMMQAAEAAByGAAgAAOAwBEAAAACHIQACAAA4DAEQAADAYQiAAAAADkMABAAAcJj/D6DhvpGQ1qi9AAAAAElFTkSuQmCC", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ---- Input ------\n", "load_example = True\n", "file_name = 'AL-DFoffset0.00.dm3'\n", "# -----------------\n", "if load_example:\n", " if 'google.colab' in sys.modules:\n", " if not os.path.exists('./'+file_name):\n", " !wget https://github.com/gduscher/MSE672-Introduction-to-TEM/raw/main/example_data/AL-DFoffset0.00.dm3\n", " else:\n", " datasets = file_tools.open_file('../example_data/'+file_name)\n", " eels_dataset = datasets['Channel_000']\n", " \n", "else:\n", " datasets = fileWidget.datasets\n", " eels_dataset = fileWidget.selected_dataset\n", " \n", "view = eels_dataset.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Important Parameters in an EELS spectrum\n", "\n", "A lot of information is stored in the ``original_metadata``. \n", "\n", "We will learn in this ``Spectroscopy`` section of the lecture which ones are absolutely necessary. " ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ImageData :\n", "\tCalibrations :\n", "\t\tBrightness :\n", "\t\t\tOrigin : 0.0\n", "\t\t\tScale : 1.0\n", "\t\t\tUnits : Counts\n", "\t\tDimension :\n", "\t\t\t0 :\n", "\t\t\t\tOrigin : 179.33062744140625\n", "\t\t\t\tScale : 0.0201262179762125\n", "\t\t\t\tUnits : eV\n", "\t\tDisplayCalibratedUnits : 1\n", "\tData : read\n", "\tDataType : 2\n", "\tDimensions :\n", "\t\t0 : 2048\n", "\tPixelDepth : 4\n", "ImageTags :\n", "\tAcquisition :\n", "\t\tDevice :\n", "\t\t\tActive Size (pixels) : [2048, 2048]\n", "\t\t\tCamera Number : 0\n", "\t\t\tCCD :\n", "\t\t\t\tPixel Size (um) : [14.0, 14.0]\n", "\t\t\tConfiguration :\n", "\t\t\t\tTranspose :\n", "\t\t\t\t\tDiagonal Flip : 0\n", "\t\t\t\t\tHorizontal Flip : 1\n", "\t\t\t\t\tVertical Flip : 0\n", "\t\t\tName : US1000XP 1\n", "\t\t\tSource : US1000XP 1\n", "\t\tFrame :\n", "\t\t\tArea :\n", "\t\t\t\tTransform :\n", "\t\t\t\t\tClass Name : cm_acquisitiontransform_list\n", "\t\t\t\t\tTransform List :\n", "\t\t\t\t\t\t0 :\n", "\t\t\t\t\t\t\tBinning : [1, 1]\n", "\t\t\t\t\t\t\tClass Name : cm_acquisitiontransform\n", "\t\t\t\t\t\t\tSub Area Adjust : [0, 0, 0, 0]\n", "\t\t\t\t\t\t\tTranspose :\n", "\t\t\t\t\t\t\t\tDiagonal Flip : 0\n", "\t\t\t\t\t\t\t\tHorizontal Flip : 1\n", "\t\t\t\t\t\t\t\tVertical Flip : 0\n", "\t\t\tCCD :\n", "\t\t\t\tPixel Size (um) : [14.0, 14.0]\n", "\t\t\tIntensity :\n", "\t\t\t\tTransform :\n", "\t\t\t\t\tClass Name : cm_valuetransform_list\n", "\t\t\t\t\tTransform List :\n", "\t\t\t\t\t\t0 :\n", "\t\t\t\t\t\t\tClass Name : cm_valuetransform_affine\n", "\t\t\t\t\t\t\tOffset : 250.0\n", "\t\t\t\t\t\t\tScale : 1.0\n", "\t\t\t\t\t\t1 :\n", "\t\t\t\t\t\t\tADC Max : 65535.0\n", "\t\t\t\t\t\t\tADC Min : 0.0\n", "\t\t\t\t\t\t\tClass Name : cm_valuetransform_adc\n", "\t\tParameters :\n", "\t\t\tAcquisition Write Flags : 4294967295\n", "\t\t\tBase Detector :\n", "\t\t\t\tClass Name : cm_namedcameradetectorparameterset\n", "\t\t\t\tName : default\n", "\t\t\tDetector :\n", "\t\t\t\tcontinuous : 1\n", "\t\t\t\texposure (s) : 0.1\n", "\t\t\t\thbin : 1\n", "\t\t\t\theight : 2048\n", "\t\t\t\tleft : 0\n", "\t\t\t\ttop : 0\n", "\t\t\t\tvbin : 1\n", "\t\t\t\twidth : 2048\n", "\t\t\tEnvironment :\n", "\t\t\t\tMode Name : Spectroscopy\n", "\t\t\tHigh Level :\n", "\t\t\t\tAcquisition Buffer Size : 0\n", "\t\t\t\tAntiblooming : 0\n", "\t\t\t\tBinning : [1, 1]\n", "\t\t\t\tCCD Read Area : [0, 0, 2048, 2048]\n", "\t\t\t\tCCD Read Ports : 1\n", "\t\t\t\tChoose Number Of Frame Shutters Automatically : 1\n", "\t\t\t\tClass Name : cm_camera_highlevelparameters\n", "\t\t\t\tContinuous Readout : 1\n", "\t\t\t\tCorrections : 817\n", "\t\t\t\tCorrections Mask : 817\n", "\t\t\t\tExposure (s) : 0.1\n", "\t\t\t\tNumber Of Frame Shutters : 1\n", "\t\t\t\tProcessing : Gain Normalized\n", "\t\t\t\tQuality Level : 1\n", "\t\t\t\tRead Frame Style : 0\n", "\t\t\t\tRead Mode : 0\n", "\t\t\t\tSecondary Shutter Post Exposure Compensation (s) : 0.0\n", "\t\t\t\tSecondary Shutter Pre Exposure Compensation (s) : 0.0\n", "\t\t\t\tShutter :\n", "\t\t\t\t\tPrimary Shutter States : 0\n", "\t\t\t\t\tPrimary Shutter States Mask : 0\n", "\t\t\t\t\tSecondary Shutter States : 0\n", "\t\t\t\t\tSecondary Shutter States Mask : 0\n", "\t\t\t\t\tShutter Exposure : 0\n", "\t\t\t\t\tShutter Index : 0\n", "\t\t\t\tShutter Post Exposure Compensation (s) : 0.0\n", "\t\t\t\tShutter Pre Exposure Compensation (s) : 0.0\n", "\t\t\t\tTransform :\n", "\t\t\t\t\tDiagonal Flip : 0\n", "\t\t\t\t\tHorizontal Flip : 0\n", "\t\t\t\t\tVertical Flip : 0\n", "\t\t\tObjects :\n", "\t\t\t\t0 :\n", "\t\t\t\t\tClass Name : cm_imgproc_finalcombine\n", "\t\t\t\t\tFrame Combine Style : Copy\n", "\t\t\t\t\tParameter 1 : 1.0\n", "\t\t\tParameter Set Name : Acquire\n", "\t\t\tParameter Set Tag Path : Spectroscopy:Acquire:Acquire\n", "\t\t\tVersion : 33947648\n", "\tDataBar :\n", "\t\tCustom elements :\n", "\tEELS :\n", "\t\tAcquisition :\n", "\t\t\tContinuous mode : 0\n", "\t\t\tDate : 10/1/2018\n", "\t\t\tEnd time : 11:12:22 AM\n", "\t\t\tExposure (s) : 0.1\n", "\t\t\tIntegration time (s) : 10.0\n", "\t\t\tNumber of frames : 100\n", "\t\t\tSaturation fraction : 0.7989057898521423\n", "\t\t\tStart time : 11:10:22 AM\n", "\t\tExperimental Conditions :\n", "\t\t\tCollection semi-angle (mrad) : 100.0\n", "\t\t\tConvergence semi-angle (mrad) : 0.0\n", "\tMeta Data :\n", "\t\tAcquisition Mode : Parallel dispersive\n", "\t\tFormat : Spectrum\n", "\t\tSignal : EELS\n", "\tMicroscope Info :\n", "\t\tCs(mm) : 2.2\n", "\t\tEmission Current (A) : 230.0\n", "\t\tFormatted Indicated Mag : 100kx\n", "\t\tFormatted Voltage : 200.0kV\n", "\t\tIllumination Mode : TEM\n", "\t\tImaging Mode : Image Mag\n", "\t\tIndicated Magnification : 100000.0\n", "\t\tItems :\n", "\t\t\t0 :\n", "\t\t\t\tData Type : 20\n", "\t\t\t\tLabel : Specimen\n", "\t\t\t\tTag path : Microscope Info:Specimen\n", "\t\t\t\tValue : Fe-9Cr(0.3Y)-3E10(17)-475C\n", "\t\t\t1 :\n", "\t\t\t\tData Type : 20\n", "\t\t\t\tLabel : Operator\n", "\t\t\t\tTag path : Microscope Info:Operator\n", "\t\t\t\tValue : Tengfei Yang\n", "\t\t\t2 :\n", "\t\t\t\tData Type : 20\n", "\t\t\t\tLabel : Microscope\n", "\t\t\t\tTag path : Microscope Info:Microscope\n", "\t\t\t\tValue : Libra 200 MC\n", "\t\tMicroscope : Libra 200 MC\n", "\t\tName : Libra COM\n", "\t\tOperation Mode : IMAGING\n", "\t\tOperator : Tengfei Yang\n", "\t\tProbe Current (nA) : 0.0\n", "\t\tProbe Size (nm) : 0.0\n", "\t\tSpecimen : Fe-9Cr(0.3Y)-3E10(17)-475C\n", "\t\tSTEM Camera Length : 479.99998927116394\n", "\t\tVoltage : 199990.28125\n", "Name : EELS90muOAonaxis3\n", "UniqueID :\n", "\t0 : 182066807\n", "\t1 : 2055036577\n", "\t2 : 773457963\n", "\t3 : 990266004\n", "DM :\n", "\tdm_version : 3\n", "\tfile_size : 322288\n", "\tfull_file_name : ../example_data/AL-DFoffset0.00.dm3\n", "original_filename : ../example_data/AL-DFoffset0.00.dm3\n", "ApplicationBounds : [0, 0, 1465, 2236]\n", "DocumentObjectList :\n", "\t0 :\n", "\t\tAnnotationGroupList :\n", "\t\tAnnotationType : 20\n", "\t\tBackgroundColor : [-1, -1, -1]\n", "\t\tBackgroundMode : 2\n", "\t\tFillMode : 2\n", "\t\tForegroundColor : [-1, 0, -32640]\n", "\t\tHasBackground : 0\n", "\t\tImageDisplayInfo :\n", "\t\t\tBackgroundOn : 1\n", "\t\t\tCalibrationSliceId :\n", "\t\t\t\t0 : 0\n", "\t\t\tCaptionOn : 1\n", "\t\t\tCaptionSize : 10\n", "\t\t\tCursorOn : 0\n", "\t\t\tCursorPosition : 0.0\n", "\t\t\tDimensionLabels :\n", "\t\t\t\t0 : \n", "\t\t\tFrameOn : 1\n", "\t\t\tGridOn : 1\n", "\t\t\tGroupId : 0\n", "\t\t\tGroupList :\n", "\t\t\t\t0 :\n", "\t\t\t\t\tDoAutoSurveyHigh : 0\n", "\t\t\t\t\tDoAutoSurveyLow : 0\n", "\t\t\t\t\tGroupToDisplay :\n", "\t\t\t\t\t\tOffset : [0.159382164478302, 4.566257121041417e-05]\n", "\t\t\t\t\t\tScale : [0.00034526686067692935, 1.484737140344805e-06]\n", "\t\t\t\t\tTrackStyleX : 0\n", "\t\t\t\t\tTrackStyleY : 0\n", "\t\t\tLegendOn : 0\n", "\t\t\tMainSliceId :\n", "\t\t\t\t0 : 0\n", "\t\t\tNumHorizontalTicks : 1\n", "\t\t\tNumVerticalTicks : 1\n", "\t\t\tROIList :\n", "\t\t\t\t0 :\n", "\t\t\t\t\tBoldLabel : 0\n", "\t\t\t\t\tColor : [-32640, 0, 0]\n", "\t\t\t\t\tDrawSolid : 0\n", "\t\t\t\t\tEnd : 935.0\n", "\t\t\t\t\tHeightValue : 1.0\n", "\t\t\t\t\tIsDeletable : 1\n", "\t\t\t\t\tIsMoveable : 1\n", "\t\t\t\t\tIsResizable : 1\n", "\t\t\t\t\tIsVolatile : 1\n", "\t\t\t\t\tLabel : \n", "\t\t\t\t\tMovableLabel : 0\n", "\t\t\t\t\tName : \n", "\t\t\t\t\tPartialHeightMarker : 0\n", "\t\t\t\t\tRef : 0\n", "\t\t\t\t\tSelected : 1\n", "\t\t\t\t\tSliceId :\n", "\t\t\t\t\t\t0 : 0\n", "\t\t\t\t\tStart : 907.0\n", "\t\t\tSliceList :\n", "\t\t\t\t0 :\n", "\t\t\t\t\tBaseIntensity : 0.0\n", "\t\t\t\t\tComplexMode : 4\n", "\t\t\t\t\tDrawFill : 1\n", "\t\t\t\t\tDrawLine : 0\n", "\t\t\t\t\tFillColor : [23387, -16706, -16706]\n", "\t\t\t\t\tHorz Pos Fixed : 1\n", "\t\t\t\t\tHorz Scale Fixed : 1\n", "\t\t\t\t\tImageToGroup :\n", "\t\t\t\t\t\tOffset : [0.0, 0.0]\n", "\t\t\t\t\t\tScale : [1.0, 1.0]\n", "\t\t\t\t\tIsVisible : 1\n", "\t\t\t\t\tLineColor : [0, -32640, -16449]\n", "\t\t\t\t\tLineThickness : 1\n", "\t\t\t\t\tSliceGroup : 0\n", "\t\t\t\t\tSliceId :\n", "\t\t\t\t\t\t0 : 0\n", "\t\t\t\t\tVert Pos Fixed : 1\n", "\t\t\t\t\tVert Scale Fixed : 1\n", "\t\tImageDisplayType : 3\n", "\t\tImageSource : 0\n", "\t\tIsMoveable : 1\n", "\t\tIsResizable : 1\n", "\t\tIsSelectable : 1\n", "\t\tIsTranslatable : 1\n", "\t\tIsVisible : 1\n", "\t\tObjectTags :\n", "\t\t\t__is_not_copy : 1\n", "\t\t\t__was_selected : 0\n", "\t\tRectangle : [0.0, 0.0, 342.0, 669.0]\n", "\t\tUniqueID : 8\n", "DocumentTags :\n", "HasWindowPosition : 1\n", "Image Behavior :\n", "\tDoIntegralZoom : 0\n", "\tImageDisplayBounds : [0.0, 0.0, 342.0, 669.0]\n", "\tIsZoomedToWindow : 1\n", "\tUnscaledTransform :\n", "\t\tOffset : [0.0, 0.0]\n", "\t\tScale : [1.0, 1.0]\n", "\tViewDisplayID : 8\n", "\tWindowRect : [0.0, 0.0, 342.0, 669.0]\n", "\tZoomAndMoveTransform :\n", "\t\tOffset : [0.0, 0.0]\n", "\t\tScale : [1.0, 1.0]\n", "ImageSourceList :\n", "\t0 :\n", "\t\tClassName : ImageSource:Simple\n", "\t\tExtra Slice Info :\n", "\t\t\t0 :\n", "\t\t\t\tId :\n", "\t\t\t\t\t0 : 0\n", "\t\t\t\tLabel : Spectrum\n", "\t\tId :\n", "\t\t\t0 : 0\n", "\t\tImageRef : 1\n", "InImageMode : 1\n", "MinVersionList :\n", "\t0 :\n", "\t\tRequiredVersion : 50659328\n", "NextDocumentObjectID : 9\n", "Page Behavior :\n", "\tDoIntegralZoom : 0\n", "\tDrawMargins : 1\n", "\tDrawPaper : 1\n", "\tIsFixedInPageMode : 0\n", "\tIsZoomedToWindow : 1\n", "\tLayedOut : 0\n", "\tPageTransform :\n", "\t\tOffset : [0.0, 0.0]\n", "\t\tScale : [1.0, 1.0]\n", "\tRestoreImageDisplayBounds : [0.0, 0.0, 342.0, 669.5]\n", "\tRestoreImageDisplayID : 8\n", "\tTargetDisplayID : 4294967295\n", "PageSetup :\n", "\tGeneral : [1, 1000, 8500, 11000, 1000, 1000, -1000, -1000]\n", "\tWin32 : b'\\x06\\x00\\x00\\x004!\\x00\\x00\\xf8*\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xe8\\x03\\x00\\x00\\xe8\\x03\\x00\\x00\\xe8\\x03\\x00\\x00\\xe8\\x03\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x01\\x00\\x01\\x00\\x01\\x00\\x01\\x00\\x1b\\x10'\n", "\tWin32_DevModeW : b'S\\x00e\\x00n\\x00d\\x00 \\x00T\\x00o\\x00 \\x00O\\x00n\\x00e\\x00N\\x00o\\x00t\\x00e\\x00 \\x002\\x000\\x001\\x000\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x04\\x00\\x06\\xdc\\x00\\x0c\\x03\\x03\\xff\\x81\\x03\\x01\\x00\\x01\\x00\\xea\\no\\x08d\\x00\\x01\\x00\\x07\\x00\\xfd\\xff\\x02\\x00\\x01\\x00X\\x02\\x01\\x00\\x00\\x00L\\x00e\\x00t\\x00t\\x00e\\x00r\\x00 \\x008\\x00.\\x005\\x00\"\\x00x\\x001\\x001\\x00\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00DINU\"\\x00\\xd0\\x00\\x0c\\x03\\x00\\x00\\xc2\\xac\\x90Q\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x05\\x00\\x00\\x00\\x00\\x00\\x07\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xd0\\x00\\x00\\x00SMTJ\\x00\\x00\\x00\\x00\\x10\\x00\\xc0\\x00S\\x00e\\x00n\\x00d\\x00 \\x00T\\x00o\\x00 \\x00M\\x00i\\x00c\\x00r\\x00o\\x00s\\x00o\\x00f\\x00t\\x00 \\x00O\\x00n\\x00e\\x00N\\x00o\\x00t\\x00e\\x00 \\x002\\x000\\x001\\x000\\x00 \\x00D\\x00r\\x00i\\x00v\\x00e\\x00r\\x00\\x00\\x00RESDLL\\x00UniresDLL\\x00PaperSize\\x00LETTER\\x00Orientation\\x00PORTRAIT\\x00Resolution\\x00DPI600\\x00ColorMode\\x0024bpp\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'\n", "\tWin32_DevNamesW : b'\\x04\\x00*\\x00?\\x00\\x00\\x00S\\x00e\\x00n\\x00d\\x00 \\x00T\\x00o\\x00 \\x00M\\x00i\\x00c\\x00r\\x00o\\x00s\\x00o\\x00f\\x00t\\x00 \\x00O\\x00n\\x00e\\x00N\\x00o\\x00t\\x00e\\x00 \\x002\\x000\\x001\\x000\\x00 \\x00D\\x00r\\x00i\\x00v\\x00e\\x00r\\x00\\x00\\x00S\\x00e\\x00n\\x00d\\x00 \\x00T\\x00o\\x00 \\x00O\\x00n\\x00e\\x00N\\x00o\\x00t\\x00e\\x00 \\x002\\x000\\x001\\x000\\x00\\x00\\x00n\\x00u\\x00l\\x00:\\x00\\x00\\x00'\n", "SentinelList :\n", "Thumbnails :\n", "\t0 :\n", "\t\tImageIndex : 0\n", "\t\tSourceSize_Pixels : [669, 342]\n", "WindowPosition : [30, 1378, 372, 2047]\n" ] } ], "source": [ "eels_dataset.view_original_metadata()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The information is contained in a python dictionary and we will have to data mine this information to get the experimental conditions." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ImageData\n", "ImageTags\n", "Name\n", "UniqueID\n", "DM\n", "original_filename\n", "ApplicationBounds\n", "DocumentObjectList\n", "DocumentTags\n", "HasWindowPosition\n", "Image Behavior\n", "ImageSourceList\n", "InImageMode\n", "MinVersionList\n", "NextDocumentObjectID\n", "Page Behavior\n", "PageSetup\n", "SentinelList\n", "Thumbnails\n", "WindowPosition\n", "\n", " Dictionary: original_metadata['ImageList']['1']['ImageTags']['EELS']['Acquisition'] \n", "Continuous mode 0\n", "Date 10/1/2018\n", "End time 11:12:22 AM\n", "Exposure (s) 0.1\n", "Integration time (s) 10.0\n", "Number of frames 100\n", "Saturation fraction 0.7989057898521423\n", "Start time 11:10:22 AM\n" ] } ], "source": [ "for key in eels_dataset.original_metadata:\n", " print(key)\n", "print()\n", "print(\" Dictionary: original_metadata['ImageList']['1']['ImageTags']['EELS']['Acquisition'] \")\n", "for key, item in eels_dataset.original_metadata['ImageTags']['EELS']['Acquisition'].items():\n", " print(key, item)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course there is a function for this (in pyTEMlib.eels_tools)." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "experiment :\n", "\tsingle_exposure_time : 0.1\n", "\texposure_time : 10.0\n", "\tnumber_of_frames : 100\n", "\tcollection_angle : 100.0\n", "\tconvergence_angle : 0.0\n", "\tmicroscope : Libra 200 MC\n", "\tacceleration_voltage : 199990.28125\n" ] } ], "source": [ "eels_dataset.view_metadata()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Make Energy Scale andPlot\n", "\n", "The energy scale above is linear and so a linear increasing numpy array (of size *eels_dataset.shape[0]*) is multiplied with the channel width (*sipersion*), the first channel is in the variable *offset*." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dispersion [eV/pixel] : 0.02 eV \n", "Offset [eV] : -3.61 eV \n", "Maximum energy [eV] : 37.59 eV \n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9b9031c4c29843ec940483a693e0d2bd", "version_major": 2, "version_minor": 0 }, "image/png": "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", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(f\"Dispersion [eV/pixel] : {ft.get_slope(eels_dataset.energy_loss):.2f} eV \")\n", "print(f\"Offset [eV] : {eels_dataset.energy_loss[0]:.2f} eV \")\n", "print(f\"Maximum energy [eV] : {eels_dataset.energy_loss[-1]:.2f} eV \")\n", "\n", "energy_scale = np.arange(eels_dataset.shape[0])\n", "\n", "dispersion = ft.get_slope(eels_dataset.energy_loss)\n", "energy_scale = energy_scale * dispersion\n", "\n", "offset = eels_dataset.energy_loss[0]\n", "energy_scale = energy_scale + offset\n", "\n", "plt.figure()\n", "plt.plot(energy_scale, eels_dataset);\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's compare the keys in the current_channel and in the dictionary " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Normalizing Intensity Scale\n", "The following normalization makes only sense if this is a low loss spectrum,
where the total number of counts represents approximatively the incident current **$I_0$**" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "89c3a1f02cfb4776ba847ef760c997c3", "version_major": 2, "version_minor": 0 }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNPElEQVR4nO3dd3hUVf7H8c9N76GETmgCIh0pSpGAiqxLkaW4Cwoi1p+gNEWxUUSiuCLuorCoEERRVikiNlikWJCiNAFBEASRXkJCCUnm/P4IM2QygUxow515v54nD5kzd+79ztxoPjnnnnMtY4wRAAAAAkaQrwsAAADAlUUABAAACDAEQAAAgABDAAQAAAgwBEAAAIAAQwAEAAAIMARAAACAAEMABAAACDAEQAAAgABDAAQAAAgwBEAAAIAAQwAEAAAIMARAAACAAEMABAAACDAEQAAAgABDAAQAAAgwBEAAAIAAQwAEAAAIMARAAACAAEMABAAACDAEQAAAgABDAAQAAAgwBEAAAIAAQwAEAAAIMARAAACAAEMABAAACDAEQAAAgABDAAQAAAgwBEAAAIAAQwAEAAAIMARAAACAAEMABAAACDAEQAAAgABDAAQAAAgwBEAAAIAAQwAEAAAIMARAIB/Lly/X3/72N1WoUEHh4eEqVaqUmjZtqsGDB/u6NEnSm2++qZSUFF+XUSiLFy+WZVnn/Mr9flq1anXO7SpVquSxz48//vi8xz506JCGDh2qmjVrKjo6WvHx8apRo4Z69uypdevWuW27YsUKtW3bVrGxsYqJiVHr1q313Xff5bvfn376SbfeeqtiYmJUpEgRde7cWb/99tsFf0aXyg8//KBu3bqpTJkyCgsLU+nSpdW1a1ctW7bsvK/r3LmzLMtSv379rlCll16rVq3UqlWrQr1m165d+tvf/qYqVaq4fj4aNGig8ePHKysr6/IUCvhYiK8LAK42n332mTp27KhWrVppzJgxKlOmjPbs2aNVq1bpww8/1KuvvurrEvXmm28qISFBvXv39nUphTZ69Gi1bt3ao/2aa65xe1ylShW9//77HtuFh4cX6njp6em68cYblZ6erieeeEL16tXTyZMntWXLFs2aNUtr1qxR3bp1JUkrV65Uy5Yt1aRJE02bNk3GGI0ZM0a33HKLFi1apKZNm7r2+8svv6hVq1aqX7++/vvf/+rUqVN6/vnnddNNN2nNmjUqUaJEoeq8VP79739rwIABatKkicaMGaOKFStq586deuONN9SiRQu9/vrr+Qa8/fv3a968eZKk999/X//85z8VERFxpcu/aG+++WahX3P8+HHFxcXpueeeU4UKFXT69Gl9/vnnevTRR7VmzRq9/fbbl6FSwMcMADctW7Y011xzjcnMzPR4Ljs72wcVeapVq5ZJSkryatvTp0/n+16utEWLFhlJ5qOPPipw26SkJFOrVq1Lss/JkycbSebrr7/O9/nc57Rt27amVKlS5vjx4662Y8eOmYSEBNOsWTO313Xr1s0kJCSY1NRUV9uOHTtMaGioGTJkSIG1Xw7ffvutCQoKMu3bt/c455mZmaZ9+/YmKCjIfPvttx6vfeWVV4wk065dOyPJvP/++1eq7KvWnXfeaUJCQsypU6d8XQpwyTEEDORx6NAhJSQkKCTEs4M8KMj9P5lKlSqpffv2mj17turWrauIiAhVqVJF//rXvzxee+zYMT3++OOqXLmywsLCVK5cOQ0YMEDHjx93287hcOjf//636tevr8jISBUpUkQ33nij5s6d6zrmhg0btGTJEo9hUeeQ6LRp0zR48GCVK1dO4eHh2rp1q4YPHy7LsjzqSklJkWVZ2rFjh8f7mjdvnho0aKDIyEhdd911rh6ilJQUXXfddYqOjlaTJk20atWqQn3GV9KhQ4ckSWXKlMn3+dzn9LvvvlOrVq0UFRXlaouNjVXLli31/fffa8+ePZKkrKwszZs3T126dFFcXJxr24oVK6p169aaPXu2q815TqZPn64nn3xSZcqUUUxMjDp06KB9+/YpLS1NDz74oBISEpSQkKB7771X6enprtfv2LHDY4jcybIsDR8+3PU4OTlZlmVpwoQJHj+/ISEhevPNN2VZll566SWPfU2ePFmlSpXS1KlTFRkZqcmTJ+f7ec2dO1dNmzZVVFSUYmNj1aZNG4+hZefP2oYNG9S9e3fFx8erVKlS6tOnj1JTU922feONN9SyZUuVLFlS0dHRqlOnjsaMGaPMzEzXNr/++qvi4uLUrVs3t9d+/fXXCg4O1nPPPedqy28IeMKECapXr55iYmIUGxurGjVq6Omnn873/eVWokQJBQUFKTg4uMBtAbshAAJ5NG3aVMuXL9djjz2m5cuXu/0iys+aNWs0YMAADRw4ULNnz1azZs3Uv39//fOf/3Rtc+LECSUlJWnq1Kl67LHH9MUXX+jJJ59USkqKOnbsKGOMa9vevXurf//+aty4sWbMmKEPP/xQHTt2dAW02bNnq0qVKmrQoIGWLVumZcuWuQUOSRo6dKh27typiRMn6tNPP1XJkiUL/TmsXbtWQ4cO1ZNPPqlZs2YpPj5enTt31rBhw/T2229r9OjRev/995Wamqr27dvr5MmTXu3X4XAoKyvL4ys/+W3ncDgK9T6cw7a9evXSnDlzXIEwP6dPn853iNnZtn79eknStm3bdPLkSdfQcW5169bV1q1bderUKbf2p59+Wvv371dKSopeffVVLV68WN27d1eXLl0UHx+vDz74QEOGDNG0adO8Cid5ZWdna9GiRWrUqJHKly+f7zaJiYlq2LChvv76a2VnZ7vav//+e23atEm9evVS8eLF1aVLF3399dfavn272+unT5+uO+64Q3Fxcfrggw/0zjvv6MiRI2rVqpW+/fZbj+N16dJF1atX18yZM/XUU09p+vTpGjhwoNs227ZtU48ePTRt2jTNmzdP9913n1555RU99NBDrm2qVaumt956Sx9//LHrj6u9e/eqR48euummm9xCcF4ffvihHnnkESUlJWn27NmaM2eOBg4c6PGHlyQZY5SVlaUjR45oxowZSklJ0eDBg/P9YxCwPV93QQJXm4MHD5oWLVoYSUaSCQ0NNc2aNTPJyckmLS3NbduKFSsay7LMmjVr3NrbtGlj4uLiXEOJycnJJigoyKxcudJtu48//thIMp9//rkxxpilS5caSeaZZ545b43nGgJ2Dom2bNnS47lhw4aZ/P6TnzJlipFktm/f7va+IiMjzR9//OFqW7NmjZFkypQp4zZEOmfOHCPJzJ0797w1O2s719euXbtc2yYlJZ1zu/vuu89jnwUNK48cOdKEhYW59lG5cmXz8MMPm7Vr17ptV79+fVO9enW3YeHMzExTpUoVI8lMnz7dGGPMd999ZySZDz74wONYo0ePNpLMn3/+6VZjhw4d3LYbMGCAkWQee+wxt/ZOnTqZYsWKuR5v377dSDJTpkzxOJYkM2zYMGOMMXv37jWSzD/+8Y/zfhZ///vfjSSzb98+V1ufPn2MJLNp0ya3mp977jnXNtnZ2aZs2bKmTp06bp9PWlqaKVmypNsQufNnbcyYMW7HfuSRR0xERIRxOBz51padnW0yMzPNu+++a4KDg83hw4fdnv+///s/ExYWZpYtW2ZuvvlmU7JkSdfn7JSUlOT230a/fv1MkSJFzvuZOCUnJ7t+RizLKvC/Q8DO6AEE8ihevLi++eYbrVy5Ui+99JLuuOMObdmyRUOHDlWdOnV08OBBt+1r1aqlevXqubX16NFDx44d008//SRJmjdvnmrXrq369eu79Wa1bdtWlmVp8eLFkqQvvvhCktS3b9+Leg9dunS5qNdLUv369VWuXDnX4+uuu06SPIZIne2///67V/t9+eWXtXLlSo+vUqVKuW13zTXX5Ltd7uE+bz333HPauXOnJk+erIceekgxMTGaOHGiGjZsqA8++MC13aOPPqotW7aoX79+2r17t3bt2qWHH37Y9d7yXgKQ35D6uZ5r376922Pn59auXTuP9sOHD7sNA19K5kxvs7O+9PR0/fe//1WzZs1Uo0YNSVJSUpKuueYapaSkuHpcN2/erD///FM9e/Z0+xxiYmLUpUsX/fDDDzpx4oTbsTp27Oj2uG7dujp16pT279/valu9erU6duyo4sWLKzg4WKGhoerVq5eys7O1ZcsWt9e/9tprqlWrllq3bq3FixfrvffeO+fQvlOTJk109OhRde/eXZ988onHf7+59e7dWytXrtRXX32lIUOG6JVXXtGjjz563v0DdkW/NnAOjRo1UqNGjSRJmZmZevLJJ/Xaa69pzJgxGjNmjGu70qVLe7zW2eYcbty3b5+2bt2q0NDQfI/l/KV04MABBQcH57vPwijol6I3ihUr5vY4LCzsvO15hzzPpUqVKq7P9XwiIiK82s5bpUqV0r333qt7771XkrR06VLdfvvt6t+/v7p37y5J6tOnjw4cOKBRo0ZpwoQJknKGkB9//HG9/PLLrkBcvHhxScp3OPnw4cOyLEtFihRxa7+QzzMmJsbr95eQkKCoqCiPYdu8duzYoaioKNdxZ8yYofT0dN155506evSoa7s777xTycnJWrBggdq2bXveaynLli0rh8OhI0eOuP1x4PycnJxD6c7LBXbu3KmbbrpJ1157rV5//XVVqlRJERERWrFihfr27etxWUF4eLh69OihJ554Qtdff73atGlT4OfSs2dPZWVl6a233lKXLl3kcDjUuHFjjRo1yuP1pUuXdv23d9ttt6lo0aJ66qmn1KdPHzVo0KDAYwF2Qg8g4IXQ0FANGzZMkvTzzz+7Pbd3716P7Z1tzl+ACQkJqlOnTr49Wrl7tUqUKKHs7Ox891kY+fVMOZf0yMjIcGs/X4+IP2vZsqVuu+02HThwwK1H6sknn9TBgwe1fv167dixQ99//72OHDmi6OhoNWzYUFJO72RkZKTrmsDc1q9fr6pVq16yJVTOdd7yhs/g4GC1bt1aq1at0h9//JHvvv744w/9+OOPuvnmm10TG9555x1J0oABA1S0aFHXV3Jystvzzp9l50SY3P78808FBQWpaNGihXpvc+bM0fHjxzVr1izdfffdatGihRo1auQKwXn9/PPPev7559W4cWP99NNPGjt2rFfHuffee/X9998rNTVVn332mYwxat++fYG91k2aNJEkj55IwB8QAIE88vsFJ0mbNm2SlNPbkduGDRu0du1at7bp06crNjZW119/vaSc4b9t27apePHirp7F3F/OWby33367JLl6n84lPDzc60kXTs5j5F34+NNPPy3Ufuxm3759+U4cyc7O1q+//qqoqCiP3rrw8HDVrl3btYbejBkz9MADDygyMlJSzozaDh06aNasWUpLS3O9bufOnVq0aJE6d+58yeovVaqUIiIiPM7bJ5984rHt0KFDZYzRI4884jbJQ8p5v//3f/8nY4yGDh0qKednetmyZerSpYsWLVrk8XXLLbfok08+0aFDh3TttdeqXLlymj59utukpePHj2vmzJmumcGF4fxDJffEG2OM3nrrLY9tjx8/rm7duqlSpUpatGiR+vXrp6eeekrLly/3+njR0dG6/fbb9cwzz+j06dPasGHDebdftGiRJKlq1apeHwOwC4aAgTzatm2r8uXLq0OHDqpRo4YcDofWrFmjV199VTExMerfv7/b9mXLllXHjh01fPhwlSlTRu+9954WLFigl19+2fULccCAAZo5c6ZatmypgQMHqm7dunI4HNq5c6fmz5+vwYMH64YbbtBNN92knj17atSoUdq3b5/at2+v8PBwrV69WlFRUa7rkerUqaMPP/xQM2bMUJUqVRQREaE6deqc93399a9/VbFixXTfffdp5MiRCgkJUUpKinbt2nV5Pshz+PXXX/XDDz94tJcvX95t9urJkyfz3U6SbrzxRrfH59ouKSlJ06ZN03/+8x/16NFDjRs3Vnx8vP744w+9/fbb2rBhg55//nlXj9PPP/+smTNnqlGjRgoPD9fatWv10ksvqVq1anrhhRfc9j1ixAg1btxY7du311NPPeVaCDohIeGS3jHGsizdfffdmjx5sq655hrVq1dPK1as0PTp0z22bd68ucaNG6cBAwaoRYsW6tevnypUqOBaCHr58uUaN26cmjVrJuls796QIUNcvV25paWlaeHChXrvvffUv39/jRkzRnfddZfat2+vhx56SBkZGXrllVd09OjRfJeWKUibNm0UFham7t27a8iQITp16pQmTJigI0eOeGz78MMPa+fOnVqxYoWio6P16quvatmyZfrHP/6h1atXe4R4J2dwb968ucqUKaO9e/cqOTlZ8fHxaty4sSRp2LBh2rdvn1q2bKly5crp6NGj+vLLL/XWW2+pW7durp5fwK/4cgYKcDWaMWOG6dGjh6lWrZqJiYkxoaGhpkKFCqZnz55m48aNbttWrFjRtGvXznz88cemVq1aJiwszFSqVMmMHTvWY7/p6enm2WefNddee60JCwsz8fHxpk6dOmbgwIFm7969ru2ys7PNa6+9ZmrXru3armnTpubTTz91bbNjxw5z2223mdjYWCPJVKxY0RhT8KzYFStWmGbNmpno6GhTrlw5M2zYMPP222/nOwu4Xbt2Hq+XZPr27evW5pyl+sorr5z3cy1oFnDuGZfnmwUsybXIcUH7XLRokdm4caMZPHiwadSokSlRooQJCQkxRYsWNUlJSWbatGluNW7evNm0bNnSFCtWzISFhZmqVauaZ5991qSnp+f7nlatWmVuueUWExUVZeLi4kynTp3M1q1b833fec+Jc/Z13pnhzhm0Bw4ccLWlpqaa+++/35QqVcpER0ebDh06mB07drjNAs5t2bJlpmvXrqZUqVImJCTElCxZ0nTu3Nl8//33rm1Onz5tSpYsaerXr3/Oc5aVlWXKly9v6tSp42qbM2eOueGGG0xERISJjo42t9xyi/nuu+8KfA+533Pun7VPP/3U1KtXz0RERJhy5cqZJ554wnzxxReu82eMMW+99Va+M6G3bt3q+tyd8s4Cnjp1qmndurUpVaqUCQsLM2XLljV33nmnWbdunWubuXPnmltvvdX1ecXExJgmTZqYf/3rX1fFIurA5WAZk6svH0ChVKpUSbVr13YtkAwAgB1wDSAAAECAIQACAAAEGIaAAQAAAgw9gAAA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XH369PH6PRpjPI6R99hTpkzRsmXL1KxZM82YMUPVq1d3Bc7hw4drw4YNateunb7++mvVrFlTs2fP9vr4knefT3x8vLp27aopU6a4auratavi4uIKdSwAgSHE1wUAsK+aNWsqPDxcO3fuVFJS0gXv5/rrr9fmzZtVtWrVQr3u2muv1YoVK9SzZ09XW34TLO6//3794x//UPny5XXNNdeoefPmXh+jZs2amjp1qo4fP+4KoN99952CgoJUvXp113YNGjRQgwYNNHToUDVt2lTTp0/XjTfeKEmqXr26qlevroEDB6p79+6aMmWK/va3v3ldg7efz3333adWrVpp3rx5+u677zR69GivjwEgsBAAAVyw2NhYPf744xo4cKAcDodatGihY8eO6fvvv1dMTIzuuecer/bz/PPPq3379kpMTFS3bt0UFBSkdevWaf369edc306SHn30UT3wwANq1KiRq/dt3bp1qlKlitt2bdu2VXx8vEaNGqWRI0cW6j3eddddGjZsmO655x4NHz5cBw4c0KOPPqqePXuqVKlS2r59uyZNmqSOHTuqbNmy2rx5s7Zs2aJevXrp5MmTeuKJJ9S1a1dVrlxZf/zxh1auXKkuXboUqgZvP5+kpCRVrVpVvXr1UtWqVQs10xlAYGEIGMBFeeGFF/T8888rOTlZ1113ndq2batPP/1UlStX9nofbdu21bx587RgwQI1btxYN954o8aOHauKFSue93V33XWXhg4dqscff1zXX3+9tm/frt69e7sNG0tSUFCQevfurezsbPXq1atQ7y8qKkpfffWVDh8+rMaNG6tr16665ZZbNH78eNfzv/zyi7p06aLq1avrwQcfVL9+/fTQQw8pODhYhw4dUq9evVS9enXdeeeduv322zVixIhC1VCYz6dPnz46cuRIoYa5AQQey+S9YAYAbKxNmzYqXbq0pk2b5tb+wAMPaN++fZo7d66PKvOOZVmaPXu2OnXqdNmO0apVK9WvX1/jxo27bMcAcHVjCBiAbZ04cUITJ05U27ZtFRwcrA8++ED/+9//tGDBAtc2qampWrlypd5//3198sknPqzWe927d1fx4sX1xx9/XNL9vv/++3rooYd08uRJ12LZAAITPYAAbOvkyZPq0KGDfvrpJ2VkZOjaa6/Vs88+q86dO7u2adWqlVasWKGHHnpIr732mg+r9c7WrVslScHBwYUaRvdGWlqa9u3bJynndnMJCQmXdP8A7IMACAAAEGCYBAIAABBgCIAAAAABhgAIAAAQYAiAAAAAAYYACAAAEGAIgAAAAAGGAAgAABBgCIAAAAABhgAIAAAQYP4fL+uueuWjCJ8AAAAASUVORK5CYII=", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "I_0 = sumSpec = float(np.sum(np.array(eels_dataset)))\n", "plt.figure()\n", "plt.plot(energy_scale,eels_dataset/sumSpec*1e2)\n", "plt.title ('Spectrum '+eels_dataset.title);\n", "plt.xlabel('energy loss [eV]')\n", "plt.ylabel('% scattering Intensity');\n", "#plt.xlim(-10,50)\n", "#plt.ylim(0,8);\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "The metadata are as important as the values of a spectrum.\n", "\n", "Make sure all metadata are saved, whcih ususally means to store data in the proprietary format of the software used." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Navigation\n", "- **Up Chapter 4: [Imaging](CH4_00-Spectroscopy.ipynb)** \n", "- **Back: [Overview](CH4_00-Spectroscopy.ipynb)** \n", "- **Next: [Fit Zero-Loss](CH4_02-Fit_Zero_Loss.ipynb)** \n", "- **List of Content: [Front](../_MSE672_Intro_TEM.ipynb)** \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false }, "vscode": { "interpreter": { "hash": "838e0debddb5b6f29d3d8c39ba50ae8c51920a564d3bac000e89375a158a81de" } } }, "nbformat": 4, "nbformat_minor": 4 }