{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# freud.pmft.PMFTXYZ: Shifting Example\n", "\n", "This notebook shows how to use the shifting option on PMFTXYZ to get high resolution views of PMFT features that are not centered." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import freud\n", "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we load in our data. The particles used here are implemented with a simple Weeks-Chandler-Andersen isotropic pair potential, so particle orientation is not meaningful." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "pos_data = np.load(\"data/XYZ/positions.npy\")\n", "box_data = np.load(\"data/XYZ/boxes.npy\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We calculate the PMFT the same way as shown in other examples first" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "window = 2 ** (1 / 6) # The size of the pmft calculation\n", "\n", "bins = 100\n", "pmft = freud.pmft.PMFTXYZ(x_max=window, y_max=window, z_max=window, bins=bins)\n", "\n", "# This data is for isotropic particles, so we will just make some unit quaternions\n", "# to use as the orientations\n", "quats = np.zeros((pos_data.shape[1], 4)).astype(np.float32)\n", "quats[:, 0] = 1\n", "\n", "for i in range(10, pos_data.shape[0]):\n", " box = box_data[i]\n", " points = pos_data[i]\n", " pmft.compute((box, points), quats, reset=False)\n", "\n", "unshifted = pmft.pmft\n", "\n", "x, y, z = pmft.bin_centers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we plot a centered slice of the XYZ pmft, we see that a number of wells are present at some distance from the origin" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "plt.figure(figsize=(10, 10))\n", "plt.imshow(unshifted[int(bins / 2), :, :])\n", "plt.colorbar()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we want a closer look at the details of those wells, then we could increase the PMFT resolution. But this will increase the computational cost by a lot, and we are wasting a big percentage of the pixels.\n", "\n", "This use case is why the shiftvec argument was implemented. Now we will do the same calculation, but we will use a much smaller window centered on on of the wells.\n", "\n", "To do this we need to pass a vector into the PMFTXYZ construction. The window will be centered on this vector." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "shiftvec = [0.82, 0.82, 0]\n", "\n", "window = 2 ** (1 / 6) / 6 # Smaller window for the shifted case\n", "\n", "bins = 50\n", "\n", "pmft = freud.pmft.PMFTXYZ(\n", " x_max=window, y_max=window, z_max=window, bins=50, shiftvec=shiftvec\n", ")\n", "\n", "# This data is for isotropic particles, so we will just make some unit quaternions\n", "# to use as the orientations\n", "orientations = np.array([[1, 0, 0, 0]] * pos_data.shape[1])\n", "\n", "for i in range(10, pos_data.shape[0]):\n", " box = box_data[i]\n", " points = pos_data[i]\n", " pmft.compute(system=(box, points), query_orientations=orientations, reset=False)\n", "\n", "shifted = pmft.pmft\n", "\n", "x, y, z = pmft.bin_centers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the PMFT is a high resolution close up of one of the bonding wells. Note that as you increase the sampling resolution, you need to increase your number of samples because there is less averaging in each bin" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAIxCAYAAACxcZmzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3df5BU93nn+88zP5gZYICBQYABeUYysnG8REYIK6hqZUcillhXyKZkYpc3q806pdLKriuK3ForUdWm9lZc5apbS+FsrCiUoxulVjc2q8QrKsFWEImljVlZgBZjy0gWAiIQCDQw/B6Gmenn/jHtqrl46OfLzJme7i/vV9XUTHc/nPPt0z2H7zznnE+buwsAACAXDZM9AAAAgCIxuQEAAFlhcgMAALLC5AYAAGSFyQ0AAMgKkxsAAJCVpskeAAAAKManPzXNT50eqsq69uzrf8Hd76/Kyq4TkxsAADJx6vSQXn3h5qqsq3HBW51VWdEYcFgKAABkhc4NAACZcEkllSZ7GJOOzg0AACicmS02s380s/1m9rqZPTZKjZnZH5vZATPbZ2bLi1g3nRsAALLhGvKa6dwMSvo9d3/NzNol7TGz7e7+0xE1D0haUv76hKQ/LX8fFzo3AACgcO5+3N1fK/98XtJ+SQuvKlsr6S992CuSZpnZgvGum84NAACZGD7nxid7GL/AzLokfVzSD696aKGkIyNuHy3fd3w862NyAwAAxqLTzHaPuL3Z3TdfXWRm0yX9taT17n7u6odHWe64Z2dMbgAAyEgVr5bqcfcVlQrMrFnDE5tn3f1vRik5KmnxiNuLJB0b78A45wYAABTOzEzSn0va7+4br1G2VdK/LV81dZeks+4+rkNSEp0bAACy4XINec2cc3O3pN+W9GMz21u+7w8k3SxJ7v6UpG2S1kg6IOmSpN8pYsVMbgAAQOHc/Z80+jk1I2tc0peKXjeTGwAAMlKLV0tVG+fcAACArDC5AQAAWeGwFAAAmXBJQxyWonMDAADyQucGAICMcEIxnRsAAJAZOjcAAGTCpVoK8Zs0dG4AAEBW6NwAAJCRqn1sZg2jcwMAALJC5wYAgEy4nJwb0bkBAACZoXMDAEAuXBqicUPnBgAA5IXODQAAmXBxtZRE5wYAAGSGzg0AANkwDckmexCTjs4NAADICpMbAACQFQ5LAQCQCZdU4lJwOjcAACAvdG4AAMgIJxTTuQEAAJmhcwMAQCZcdG4kOjcAACAzdG4AAMhIyenc0LkBAABZoXMDAEAmOOdmGJ0bAACQFTo3AABkwmUaom/BFgAAAHmhcwMAQEa4WorODQAAyAydGwAAMsHVUsPo3AAAgKyMq3NjZvdL+rqkRknfdPevVarv7Oz0rq6u8awSAIC6sWfPnh53nzvZ47jRjHlyY2aNkr4habWko5J2mdlWd//ptf5NV1eXdu/ePdZVAgBQV8zsn6u8Rg05B2XGswVWSjrg7gfd/Yqkb0laW8ywAAAAxmY8h6UWSjoy4vZRSZ8Y33AAAMBYuaQSp9OOawuMdjq2/0KR2cNmttvMdr///vvjWB0AAEBsPJ2bo5IWj7i9SNKxq4vcfbOkzZK0YsWKX5j8AACA4nAp+Pg6N7skLTGzbjObIulzkrYWMywAAICxGXPnxt0HzezLkl7Q8KXgT7v764WNDAAAXBd3rpaSxplz4+7bJG0raCzAuJTeWxLWNMx/qwojAW4s/O6h1vDxCwAAZKTEOTdcLwYAAPJC5wYAgEwMf3AmfQu2AAAAyAqdGwAAssHVUhKdGwAAkBk6NwAAZILPlhrGFgAAAFmhc4Mxq7XgLkLCbjwp78EUvHfGh+1XW4acnBs6NwAAICtMbgAAQFY4LAUAQCZcRoif6NwAAIAJYmZPm9lJM/vJNR7/pJmdNbO95a//VMR66dwAAJCRUm2F+P2FpD+R9JcVav6nu3+myJXW1BYAAAD5cPeXJZ2u9nrp3AAAkIk6/eDMXzGzH0k6Jun/dPfXx7tAJjcAAGAsOs1s94jbm91983Uu4zVJH3T3C2a2RtL/kDTuACsmNxgzgrvGr1pBiLUWuFhNKc/rRt4+yIvLqhni1+PuK8azAHc/N+LnbWb2pJl1unvPeJZbd70rAACQBzObb2ZW/nmlhuclp8a7XDo3AABkpJY+ONPM/krSJzV8COuopD+U1CxJ7v6UpAcl/QczG5TUJ+lz7u7jXS+TGwAAMCHc/fPB43+i4UvFC8XkBgCATLhLQ7WVczMp2AIAACArdG4AAMiGqaSqXS1Vs+jcAACArNC5AQAgEy7OuZGY3GCC1WM4WjXHXNRyojFv6u0Kl7FhfiFDSVLUNq6116GaUrZhinp87kCE6R0AAMgKnRsAADJShx+cWTi2AAAAyAqdGwAAMuEylar3wZk1i84NAADICp0bAAAywjk3dG4AAEBm6NwAAJAJl1QixI/JDUZXayFrKWptzEWFrBVhfcfhsKaaoXBFbeON+1eHNSnPvR6D7OpxzEC1MLkBACAbpiE+OJNzbgAAQF7o3AAAkAnOuRnGFgAAAFmhcwMAQEY454bODQAAyAydGwAAMuFunHMjOjcAACAz2XZuigp0Q22opUC8ItXbe7DWXoeiAvqqub9g3wRMvGwnNwAA3IiGOCzFYSkAAJAXOjcAAGTCJZW4FJzODQAAyAudGwAAsmGccyM6NwAAIDN0bgAAyMTwB2dyzg2dGwAAkJVsOzc3aghWrQWEpYxn3cF7w5rnVhUTxJaimkF1Rb1eRYw5ZT0pNRv3rw5rNizdHtZU871czd+JHPdNtbbfudEN0bdgCwAAgLxk27kBAOBG4zLOuRGdGwAAkBk6NwAAZKRE34ItAAAA8kLnBgCATLhLQ5xzQ+cGAADkhckNAADICoelMlNUUNam3q6wZsP8eDkp43kuYTkpwXDrO4pZzs7elFDBpwpZ1/qOw2FNSkBa9HqlhOalSAsLrDyW9OUUo5qhgilyDLPL8TnVMy4Fp3MDAAAyQ+cGAIBMDIf40bdgCwAAgKzQuQEAICND4pwbOjcAACArdG4AAMiEi6ulJDo3AAAgM3RuMKqiclGKyhhJyYNJydpYr+rlq6SMOSVPKGU5O3tvrfj4hnAJ0oM7HwlrVnV0hTUpr2fK+yJFStZSyvYrSjXzXlJyd8ifuRFxtZRE5wYAAGSGzg0AABkpcbUUnRsAAJAXOjcAAGTCXRriaik6NwAAIC90bgAAyAhXS9G5AQAAmWFyAwAAssJhqTpSVGhXUctJCWJLCVBLGU+KO7Y9EdbsWl7IqpLGfOdr68Ka7lmnwpoooE+SVnW8XfHxlIC+vUcWhTVbbtkR1hT1vkiR8jqsO3hvWLP3pT8Kaw78VvV+t2pN9Lzq8TnlymU19fELZva0pM9IOunuHxvlcZP0dUlrJF2S9O/c/bXxrpfODQAAmCh/Ien+Co8/IGlJ+ethSX9axErDyY2ZPW1mJ83sJyPum21m283srfL3jiIGAwAAxqckq8pXCnd/WdLpCiVrJf2lD3tF0iwzWzDebZDSufkL/eKs63FJO9x9iaQd5dsAAADXY6GkIyNuHy3fNy7hOTfu/rKZdV1191pJnyz//Iyk70v6yngHAwAAxs6lap5z02lmu0fc3uzum69zGaMN1scxJkljP6F4nrsflyR3P25mN413IAAAoK70uPuKcS7jqKTFI24vknRsnMuc+KulzOxhDZ8kpJtvvnmiVwcAwA2tzkL8tkr6spl9S9InJJ39efNkPMY6uTlhZgvKXZsFkk5eq7DcotosSStWrBh3qwkAANQHM/srDZ/G0mlmRyX9oaRmSXL3pyRt0/Bl4Ac0fCn47xSx3rFObrZKekjS18rfny9iMAAAYBy8tnJu3P3zweMu6UtFrzec3Fxj1vU1SVvM7IuS3pH02aIHVk+qFdxVVLDehqXFhJHt7I3D0YoIoJPSQt92Ld8S1mzq7Qprntx3T1jzbPvKsCYloG/Xm91hTee8c2FNJGUbpwT0pQTipSwnJeCwqNcz5bmn1Gzc/1JYsz4hFKPWQg5T9ivRdl6vPMMLUb9Srpa61qwr3ssBAICqcSk5gyZndXXWEQAAQITPlgIAICO1dM7NZKFzAwAAskLnBgCATFQ5obhm0bkBAABZYXIDAACywmEpAAAywmEpJjeFqFY4VVpA3/awpqhgr1W9xYSRFRVOmBIYuPfIorDm0WVxWFuKlOfe/ebvFrKu6HmlhAV+PWE9hx74ZljT/d34OT1214thTUpg4O69HwprDv7mn4U1KaGCe9Z8Nax5cOcjYU1KYGCKwkI951dnLEA1MbkBACATrtr6+IXJwjk3AAAgK3RuAADICB+/QOcGAABkhs4NAAC5cK6WkujcAACAzNC5AQAgE3z8wjA6NwAAICt0bqqkiOC8lIC+oqSEkUlxaN6zh1aGNbuWx9tmw9I4JGx9wjZepzgYLmXMpw53hDU7bz8Q1jRPHQhret+YHdZ8+YHvVXz866/cFy4jRUqwXue8c2FNynhSltM053JYk6LnxIyw5o5tT4Q13bPidaW8v1ICIFMUFeoZ/f4VFQxaTfU45lR0bujcAACAzNC5AQAgEyQUD6NzAwAAskLnBgCAjDidGzo3AAAgL0xuAABAVjgsBQBARvjgTDo3AAAgMzd05yYlxGlTb1dYkxKUdedr68KaPWsqP17N0KlVHW+HNTt74xC/PWu+GtZs3P9qvK6Dcajg3iMPhTUDl5rDmuYTcU3KL86b//3DYU1LvCr1z/aw5s//n8pvnsb5pXAZDVfiv/YOzZsT1lz6QWdY03l3T1hz9nxbWPPospfCmu7v/m5Y89hdL4Y1KcF6Kb/nX+iO3+8p+531qt7+YOP+1RUfTwnZrLXQvHoN6Is4H5wpic4NAADIzA3duQEAIDdcCk7nBgAAZIbODQAA2eDjFyQ6NwAAIDN0bgAAyAjn3NC5AQAAmaFzAwBAJlzk3Eg3+OQmJcRpw/xi1rVr+ZaEqsqBdynjTQnKuu2lOOzu9sVHw5oUKeNJCQB7dtsTYU1KoNvXX7kvrGk+H+8YBpZdDGsuTolD6Do+cjqsuXBiRlgzc9m5ymM53BEuI8WFXXFA31B7HDqYEtCXErj45L57wpoUKQF91fy9SZEUMFrQ/itl+0SK2n/lGr6HYt3QkxsAALLiwynFNzrOuQEAAFmhcwMAQEb4VHA6NwAAIDNMbgAAQFY4LAUAQCZchPhJdG4AAEBm6NwAAJANPjhTYnJTiKKCp1KWU4Sf3fNMWHPna+vCmp6EcLnbjsTBZzq0MSx5dO2rYU1KQF/rO1PCmksfuhLWTN03Lazpn1OK1/WDOBRPCeM5FYT0edtQuIyGc3FoXlOcXaiGKwkhiPFiNH1//Fq1frJyeKEk9SSEAaYE9KWECq7qeDus2dl7ayHLSfHgzkcSqu4NK55b9VTFxzfuXx0uY8PS7WFNPQb0RfvtO5a13FGloWAEJjcAAGSEED/OuQEAAJmhcwMAQEa4WorODQAAyAydGwAAMuFO50aicwMAADJD5wYAgIyQc0PnBgAAZIbOTQGKCp4qYjkpoV0pAWHds06FNWfPt4U1jy57Kax5tn1lWPNnW9aENc0fiRPmBtrjt3znD+KwtuFPcKms/Z14KRcXxDUz9sVhdm09lQMD+2fFyxiMX061no6f94XF8V+Nba/EIYhXZsXjObtvTlgz9Xw8nv458fuieWFfWJMSJNk5Lw4e3HLLjrBmU29XWJPyu54SrhcF1a2vnCGJKiPnhs4NAADIDJ0bAAAywtVSdG4AAEBmmNwAAIAJYWb3m9mbZnbAzB4f5fFPmtlZM9tb/vpPRayXw1IAAGTCZTVzWMrMGiV9Q9JqSUcl7TKzre7+06tK/6e7f6bIddO5AQAAE2GlpAPuftDdr0j6lqS11VgxkxsAADLiVfpKsFDSkRG3j5bvu9qvmNmPzOy7ZvZLyU+0Ag5LAQCAseg0s90jbm92980jbo92fOzqedFrkj7o7hfMbI2k/yGpcrBSAiY3VRKFYElxKNf6jsMJa7o3rHhy3z1hzc/ueSas6X7zd+N1Pf9AWDNzWRwYePnmK2FN6xtxMFz78fjvjVPLKwfiSdLM/Y1hTfOlYpK0ppyPl3P2Q5WbsO2HU8YSH6cvJewxWnvimpTlDLXEY571Zryc0/8ifj3b3oub2P2j/b05BikBmbe99FBYkxKQmfK7vrM3Dv6M9ispoYNFSdmXFhWsmiJa1559tqdKQxlW3Q/O7HH3FRUePypp8YjbiyQdG1ng7udG/LzNzJ40s053T9iTXBuHpQAAwETYJWmJmXWb2RRJn5O0dWSBmc03Myv/vFLD85L4L4AAnRsAAHJSIx+/4O6DZvZlSS9IapT0tLu/bmaPlB9/StKDkv6DmQ1K6pP0Offxf4AEkxsAADAh3H2bpG1X3ffUiJ//RNKfFL1eJjcAAGSkVnJuJhPn3AAAgKzQuQEAICPjP2Ol/tG5AQAAWaFzAwBAJlyccyPV4OSmqICmB3fGwVSrOt5OGlMkJVwvZczrxx/KmCQloC8lRKxz3rmwRvPikrP75oQ1zd2XwpqhluawptQc/9K3vRsH9F3uDEvUMBCva9bbQ2FNU18cQtfYX3nMpaZ4LFdmhCVqfyfud19cEK9ryrl4OY398XK8MV5Oy6m4QX2xK34dpu2JQyJ1x8Ww5LlVT4U1Kfuvr79yXzyeBCn7wWgfFwWQStKG+YkDClQzoA/1q+YmNwAAYIxcEp0bzrkBAAB5YXIDAACywmEpAAAywqXgdG4AAEBm6NwAAJATOjd0bgAAQF7o3AAAkA0jxE81OLkpKqApJSgrRVGhginLiaQEZe16szte0C1xyeCp1rCm9922sKbUGvdH287Hv4hNr8QBaoNTwxK1nIkD8Qbb4obmzEPxcgamxs8rpWbK2XhdbacqP57ynPpnxeGFzZfi1zMloK/tdPycznfFY77SXsxOPCW4sX92/LxSfm8+9O0/CmtuXxyW6M4PHwprUvaDpfe+Ga8ssGHp9oT1VG9fWtT/I9VcF4oV7j3MbLGZ/aOZ7Tez183ssfL9s81su5m9Vf7eMfHDBQAAFXmVvmpYyjk3g5J+z92XSrpL0pfM7KOSHpe0w92XSNpRvg0AADCpwsNS7n5c0vHyz+fNbL+khZLWSvpkuewZSd+X9JUJGSUAAIg5H5wpXefVUmbWJenjkn4oaV554vPzCdBNRQ8OAADgeiWfUGxm0yX9taT17n7OLG1maGYPS3pYkm6++eaxjBEAAKSq8fNhqiGpc2NmzRqe2Dzr7n9TvvuEmS0oP75A0snR/q27b3b3Fe6+Yu7cuUWMGQAA4JpSrpYySX8uab+7bxzx0FZJD5V/fkjS88UPDwAAXB+r0lftSjksdbek35b0YzPbW77vDyR9TdIWM/uipHckfXZihggAAJAu5Wqpf9K1p2j3Fjuc+vTgzkfCmi0JwXmR9R2Hw5qdCcFeKWGADZfjWXnHR06HNWf3zYnXNRCWJAX0labENedvLiagb7Al3j7t71yJB5Tg/OL4iU25WHnMLacHw2V0/jiuObm8JayZeXgorGm+EG/jhS/HNRfnxX+ftfXEJyD0dcbvi4aB+DVv7I/DAIfOxW/mvYduC2vUfSksSQsMjHfjqzrervj4esVhd+sOJqynd3VYsz4hUe2GD9/jnBs+WwoAAOSl5j5+AQAAjAOdGzo3AAAgL0xuAABAVjgsBQBALlwSH79A5wYAAOSFzg0AABlxTiimcwMAAPJyQ3duUoKeUmy5ZUdYkxIYFY0nJXwvRUoY4JML+8Ka3jdmhzUps+dpx+OwtoFp8THk5ovxnytTT8SJgQPt8a9FY3+8ruYLCeua3hzWzHw7fi0GZlZeTsOVOFivYTB+HRZvOx/WDM1oDWtKTfE7I3pOktR+JA5KPPOhhHTHgrT2xDVnlsfvC+uLwwBb3pgW1ly+Od4+UUCfJD25756Kj2/4re3hMp6bH5YkqWZAX90G/dG5oXMDAADyckN3bgAAyA5XS9G5AQAAeaFzAwBARoxzbujcAACAvNC5AQAgFy6ulhKdGwAAkBk6NwAAZMO4WkpMbgqx7uC9Yc0WxcFTRYT0pQRydX/3d8Oa5qlx0FhRTv9S/Is47d24ppTwbr4yKy4abInX1XomDsUbnBqH0DUMxv1jTwi8az15ufJ6LsVhblfmxqFwNtSSUBM/p8sL4uWkbJuiNPXF6xpU/L643BmvKyWgz9vi99fQRyq/5pIUvwPTQj2/fum+io8/uPORcBnPrXoqYTTFqGbQH2oTkxsAAHLCOTeccwMAAPLC5AYAAGSFw1IAAOSEw1J0bgAAQF7o3AAAkBM6N3RuAABAXujcAACQCxchfqrTyU2tBTSlhFNt3L86rInCtFKeU8p6UgxciuO/Ws8X0/ibciauaTlTCmua+uNebFNfvJxpR/vDmpRQvIazF8OaC8sWhDXTXzsa1pTmzKj4uJ2Lx9Jy4VJYM9RZeT2SVGqJdyspAX1WKqa3PvX9+DWfcnYwrDm5PA4eTJES0Jei8Y04dPFfrH6zkHV1zjtX8fGU8NBq7rdTllNr/4+gWHU5uQEAAKMzzrnhnBsAAJAXOjcAAOSEzg2dGwAAkBcmNwAAICtMbgAAQFaY3AAAkBHz6nwljcXsfjN708wOmNnjozxuZvbH5cf3mdnyIrZBzZ1QXFT2QMpyas26g/dWfHzvS38ULmNm+8qw5s4PHwprXnsl3n5DLfG7e2DeQFgz9XicqdM/K56Hly4kZKckRIx4QxyAVZo6pZCaaT87HS8nyLCRpMEZrRUfb2qIt1/DiXgsl+dPDWumHjob1jReiLOE+ha3hzVNl+L31+C0xrDm/OL4teqfXcxZmtYXj6fpXPx6Tb+zp4jh6LaXHgprbl8cZy1FNvV2xUW9cU7XhqVkz9QLM2uU9A1JqyUdlbTLzLa6+09HlD0gaUn56xOS/rT8fVzo3AAAkBO36nzFVko64O4H3f2KpG9JWntVzVpJf+nDXpE0y8zidNMAkxsAADARFko6MuL20fJ911tz3WrusBQAAKgLnWa2e8Ttze6+ecTt0do7Vx/fTam5bkxuAADIhauaIX497r6iwuNHJS0ecXuRpGNjqLluHJYCAAATYZekJWbWbWZTJH1O0tararZK+rflq6buknTW3Y+Pd8V0bgAAyEmNfPyCuw+a2ZclvSCpUdLT7v66mT1SfvwpSdskrZF0QNIlSb9TxLqZ3AAAgAnh7ts0PIEZed9TI352SV8qer1MbgAAyEhqwF7Oam5yU1RAXzWXs3F/HDyVYsstOyo+fueZdeEydi3fEtakhHZ1fCQOdDu7b05YM+u1OBzt7G2lsGb+K3FNqSnOXZix+92wpu/D88Kalp6+sMYbE3IgmuJAN+u7EtY0RzVT4qBENcW7g6k/PBgv56b4fRGFDkpS63uXwporHfFyWk7FgYGX5sbhhM3n49dzoD3+X2Xa4fg1TwkMPHu+LaxZ1f12WJPi0JnKr+mqjng9G5ZuD2tS9slFBbSm7NtRv2pucgMAAMaBzg1XSwEAgLzQuQEAICd0bujcAACAvNC5AQAgE+ZcLSXRuQEAAJmhcwMAQE48IYYic3RuAABAVmquc1NUsF6KooL+1nfE69rU2xXWrDt4b8XHe07MKGQ9KVICwmYeiJdjQ/HB34UvxQF9VoqX09AfL+fKBzvDmsbLQ2GNN8dBbA3n4qA/uxAH1fmVgbBm6NYFFR9vOnwiXk/7tLDGBuKxlI7En3nXrMrjlaT++e1hTcprlWLmwTjo70p7HBgoxX8xt56O38uD0xICA9+Nf0efbV8Z1qT8rj+67KWwJpIWdtoVVqzvODzeoeSPc27o3AAAgLwwuQEAAFmpucNSAABg7LgUnM4NAADIDJ0bAAByQueGzg0AAMgLnRsAAHLBxy9IonMDAAAyU3Odm5RgvQd3PhLWbLllRyHrSqlJCafa2XtrWBN57K4Xw5on990T1sxsj8Plzu6bE9Zcnh0HjTXEmW9qGCxmjt16Jq65NK85rOl4/VxYY31XwprBOQmheG8dCmsal3THNeeDELqWKeEyvC2uSWEz4/A9DQyGJc1nL8eLmRkH63nC26thMCEkMh5yklLCXneoJWE8C+Pf41OH44RRb4uDEJ89VDkMcM+ar4bLSNlvp9iwdHshy6lmYGzV0bmhcwMAAPJSc50bAAAwDnRu6NwAAIC80LkBACAjXC1F5wYAAGSGyQ0AAMgKkxsAAJAVzrkBACAnnHNTn5Ob51Y9NdlD+P9JCehb1fF2WLO+43DFxzf1doXLSAno6zkxI6yZej4O6BuMM+o09Xj8W9ZyrhTWDLXE47E4i0zT343D9xp6z4c1AwtnhzVNpy6GNbZgXlhTOnIsrGmYE4ynqTFexqk4vNBnTg9rUtiFS2FNw5Q4cLG5IX49h1ri5355bktY03Imfp82DMTv09OfiJMtG3sTds3vtoUlTVfi8dx++4GwJtp/3bHtiXAZu5bHwapAUTgsBQAAslKXnRsAADAKPjhTEp0bAACQGTo3AADkhM4NnRsAAJAXOjcAAOSEzg2dGwAAkBc6NwAAZMLE1VJSnU5uNu5fHdZsWLq9kOVEwXqStOWWsCRJSkhf5MKuzrDG5sZpd5c+FIejTT0wJawpNcchYudujt+G007EY+6fFYe1NV+Mx9NyJQ5Za373dFjjrXEwnPf3hzXWlPBr2hzUDMXbrzR3Vlyz96dhTWPnnLDGb4pr+hbHYZOtx+LAxcE5rWFNU18c0DcwNX5/nb0t/l/F+uLlpCi1xusa6hgsZF1RUOmeNV8Nl7Fx/6thTVH77ZTlNMx/K6xB/QoPS5lZq5m9amY/MrPXzew/l++fbWbbzeyt8veOiR8uAACoyKv0VcNSzrnpl/Sr7v7Lkm6XdL+Z3SXpcUk73H2JpB3l2wAAAJMqnNz4sAvlm83lL5e0VtIz5fufkfQbEzJCAACQppxQXI2vWpZ0tZSZNZrZXkknJW139x9KmufuxyWp/P2miRsmAABAmqTJjbsPufvtkhZJWmlmH0tdgZk9bGa7zWz3+++/P9ZxAgCAFJxzc305N+5+RtL3JeOOqT8AABegSURBVN0v6YSZLZCk8veT1/g3m919hbuvmDt37jiHCwAAUFnK1VJzzWxW+ec2SfdJekPSVkkPlcsekvT8RA0SAAAkonOTlHOzQNIzZtao4cnQFnf/WzP7X5K2mNkXJb0j6bMTOE4AAIAk4eTG3fdJ+vgo95+SdO9EDCqSEqyXIiXoqfTekrDmztfWhTVf6B5/gNUtG/9LuIyOO3vCmqF9cYDaQFsc+jbQHk/dB9rDErUfjmsGW+LwvenvxsGDpaZ4OWfv/mBYM/XY5bAmRVNjwpHhgYQgtguXKj7s06eGi2jojQPx1BoH4vUv6wprpvRcDGuaz8Wv58Ds+Hk1XYhDGQenN8fL6Y/f7y2n4oC+hng46psfhwoWZe+RRWHN7YuPVnw8JVivKEXt/5G3ukwoBgAAo6v1y7SrgQ/OBAAAWaFzAwBATujc0LkBAAB5oXMDAEAu6uAy7WqgcwMAALJC5wYAgIxwtRSdGwAAkJm67Nw0zH+rptb1he44wColeOpD3/6jio9/+YGXwmU8e2hlWNN8Pg6yK02J3xop4XsNCflzg23xeBqG4j9FLiycEta0nYrDCZv64gC1pjN9YY3e741rUtw0Oyzxvsrjsab49Ry6aWZYE0fUSS3vJYQBJrBS/JqfvaUlrGk5F7+ebe/1hzXvfSIODOx4M15X74er9zel9cWv2IHf+UpYE4WZburtCpdRVPheUfv/lIDWav5fUyg6N3RuAABAXuqycwMAAEbHOTdMbgAAwCQws9mSvi2pS9JhSevc/ReO55vZYUnnJQ1JGnT3FdGyOSwFAEBOvEpf4/e4pB3uvkTSjvLta/mUu9+eMrGRmNwAAIDJsVbSM+Wfn5H0G0UtmMkNAAC5qFbXppjOzTx3Py5J5e83VXhWf29me8zs4ZQFc84NAAAYi04z2z3i9mZ33zyywMxelDR/lH/7xHWs5253P2ZmN0nabmZvuPvLlf4BkxsAADAWPdE5MO5+37UeM7MTZrbA3Y+b2QJJJ6+xjGPl7yfN7DuSVkq6MSc3RQU0bdwfB/RtWLq9kPHcvvhoxcdTAvq+0P1qWPPk+XvCmpTjlaVD08KaKzPi5bSejvubDYNxTfPFuKbxchziNzgtIarO4uDBoVsXxOM5dSFe14mesKS05ObK6zl2KlxGQ99AWOPT4yC7gY62sKbpwpV4XQ3xNu587WxYc6G7Pay5uKg1rGm6GJaob078mzPlTLyclN/A/tb4vZwiZR+3vqPy40XtA1NqUqTs2+s2oC9g5a86sVXSQ5K+Vv7+/NUFZjZNUoO7ny///GuS/q9owZxzAwAAJsPXJK02s7ckrS7flpl9wMy2lWvmSfonM/uRpFcl/Z27fy9acLadGwAAbkh1EuLn7qck3TvK/cckrSn/fFDSL1/vsuncAACArNC5AQAgI3z8Ap0bAACQGTo3AADkhM4NnRsAAJAXOjcAAOSEzk2+k5uUgKaUwKgn9z2UsLbxh2BJ0qEzcyo+3nMiTsRLCeib2d4X1lz6QWdYc767FNa0vRc3By8sjiOnmt+Ma04uj9c180Ac0Df1/Tgc7dzSWWFN84V4+zRMbQ5rprRNCWsifUvjQMGWk3FK3dD0lnhd8+Oa1p74tbLBePv1/lL8O3FxQbyuhji/UINxZqVK8cupvoXx+2tOV29YM3Q+DkscuBQPaGfvrWHNk/sq71ceXRbvA589tC6s2bV8S1iTa/geipXt5AYAgBuOc7WUxDk3AAAgM3RuAADICZ0bOjcAACAvdG4AAMgI59zQuQEAAJlhcgMAALLCYSkAAHLCYakqT24GfhIG51UzoCllXQd+K15O6b1nClnXruWVt82m3q5wGX/8j58Oa86GFVJpTkIA3cI4DFDvJSSfJeibEzcZP/CDOIntSnsc4tc3O65pORdvn1JzHDzYdCEOdBuc0Rqva0rlMXtTQmhe/2BYo4QQv4vz4u03/Z8vhTWXb4qfd9upePul6Pl4XNN+KN6GFxfG/6t4WzzmswkBfSnu/PChsGbvkUVhzc/uqbyPS9k3pQT0pSxnveLwVYL+QOcGAICMcEIx59wAAIDM0LkBACAXLs65EZ0bAACQGTo3AADkhM4NnRsAAJAXOjcAAGTCxNVSEp0bAACQmep2bpo/pob5u8e9mCgIUKq9MMCUMa87eG/Fx59b9VTCaFaHFSlBf2qNp/4t++KAvinnUv6EiMPu2k7FoXlnu5rDmtn7+8Oa/tnF/Fo0XYzD2lLC9aYcPxfWDMydXnksl+KAw9KMODguCguUpOnH4ud9cdHUsOZyRzF/e/V+NH4PlhLe76WC9pbT908Ja5b+Rhy+t6rj7SKGoy237AhrUsL1ItH+TUrbx6XsS294dG7o3AAAgLxwzg0AABkxp3VD5wYAAGSFzg0AALkgoVgSnRsAAJAZJjcAACArHJYCACAjhPjRuQEAAJmpy85NUaF5RSkqMDAK07pj2xMJS1kZVnhbHLL22F0vhjXPHorX1fvG7LBm2pE4xK9nWVzTGOfz6Z/XxEF/M38WryvFpblxWFv7u4Nhzbm75oY1DYPj/1Ot1JQQpng6fu80XokDFy91xruelNC8wbZ4zM3n45r+1vh5Dca5g5q57FRYc+pwR1ize++HwppDXXPCmi90vxrWpNjZe2vFx1OCANd3HC5kLEhA54bODQAAyEtddm4AAMDoOOeGzg0AAMgMnRsAAHJC54bODQAAyAudGwAAcuGccyPRuQEAAJmhcwMAQE7o3NTn5CYloK+oYL2i1FLw4J0fPhTWpAT0dc+KA8v0kbjk7JU4jGxg3kBY07I/Ds3rnxv/1l+ZETc0B6eFJWq4EteUmuNQwcG2eDmtpys/PvX9OKRuqCUOuzu5PN5lTD0eb+NSc7yuiwtT9tBxTUqIX9Ocy2FNn1rDmoF98Xt5xb/8WViTEop320sPhTUpwXmbervCmlUdb4c11VJr+3bUprqc3AAAgF9k4pwbiXNuAABAZujcAACQE6d1Q+cGAABkhckNAADICoelAADICCcU07kBAACZoXMDAEAuXIT4qQYnN/UY0Fet8L0vdL8a1qSEdqVICfZKCfpLGfMfH/50WGN9jWHNxa44qC4lrK3/3NSwZuaBsESXZ8fhcS1nSmHN+e54XVET9sLi+Fe9f268/Tr2pYQgxs+7FGcXJoXv9S2Mxzw4I16XX4oH1HwubnQ/uva7Yc3XX7kvHtAtccnM9r6wJmVfuV7j33+l7C82LN0e1jy485Gw5rlVT6UMqRBF7NvvWNZyRwFDwXWquckNAAAYO4v/Zsoe59wAAICs0LkBACAnnHND5wYAAOSFzg0AABkh54bODQAAyAyTGwAAcuEa/uDManyNk5l91sxeN7OSma2oUHe/mb1pZgfM7PGUZTO5AQAAk+Enkn5T0svXKjCzRknfkPSApI9K+ryZfTRacPI5N+UV7Jb0rrt/xsxmS/q2pC5JhyWtc/fe1OVdS60F9KVIGXO1gv6KCtPaeTAO09q1fEtYc9tLD4U1/8enXojH03trWJNiyy07wprbFI/51IzWsKbhchxC158Q9NfxkVNhTa9mV3y8+Xz8d0zKeHuXxQEaKUGJAymheVMHwpqWN6aFNUMtCX9hJgT0Dc6In3vK79b6jmL2BSm/fxv3pwR/xuuK9nFFBAFKxQX0FRUGW8T/R3v22Z5xL+Q61cs5N+6+X5LMKu57Vko64O4Hy7XfkrRW0k8r/aPr6dw8Jmn/iNuPS9rh7ksk7SjfBgAAN4ZOM9s94uvhCVjHQklHRtw+Wr6voqTOjZktkvSvJH1V0oby3WslfbL88zOSvi/pK0lDBQAAE6N6nZsed7/muTKSZGYvSpo/ykNPuPvzCesYra0TPsPUw1KbJP1HSe0j7pvn7sclyd2Pm9lNicsCAAA3AHdP+DC1io5KWjzi9iJJx6J/FB6WMrPPSDrp7mM6bmhmD/+8ZfX++++PZREAACCBaficm2p8VckuSUvMrNvMpkj6nKSt0T9KOefmbkm/bmaHJX1L0q+a2X+TdMLMFkhS+fvJ0f6xu2929xXuvmLu3LlpTwUAAGTNzP61mR2V9CuS/s7MXijf/wEz2yZJ7j4o6cuSXtDweb9b3P31aNnh5Mbdf9/dF7l7l4ZnTP/g7v9GwzOnn19W8pCklGNnAAAAcvfvlOcXLe4+z90/Xb7/mLuvGVG3zd1vc/db3f2rKcsez8cvfE3SFjP7oqR3JH12HMsCAADjVVDAXr27rsmNu39fw1dFyd1PSbq3+CEBAACM3Q39wZlFBT0VtZxIUUFZKePdckshq9Kjy14Ka1KCz7R/dViSEvS37mA8H08Zc4pnD60Ma04djhPUUmq8Y7Di40MJQW2d886FNWfPt4U1pXfjGmuN/7J89K4Xw5pn2+NtXJS00Lw4kPLJfXFI5M/ueSZpTEVI2TdtDH7/NiytrfDVegyDLVK9hPhNJD5+AQAAZOWG7twAAJAdOjd0bgAAQF7o3AAAkBHOuaFzAwAAMkPnBgCAXLikEq0bOjcAACArN3Tnpoh8B6m4jIcof6ao7IaUnJtNvV2FrGt9x+GwJmU8O3vjfJott+wIa4p6Xim6Z50Ka77wqVfDmpT8nr0v31bx8YF5A+EyUjJsUnR85HRYk7JtUnyhO95+KTlKKe/BlIykVR1vhzW3Lz4a1hT1u15UNlZSFhVqB40bOjcAACAvN3TnBgCA3HC1FJ0bAACQGTo3AADkhE8Fp3MDAADywuQGAABkhcNSAABkhBOK6dwAAIDM0LkJVDO8qojgrpQwspT1bJg/7qFIkh7c+UhYkxK+t+vN7nhlt6SMKJYSPJgS6HbozJywJuW5p1i1Ng6Pi6Q875QQxJTQwedWPRXWpLyXi5LyO7ElIRAv5X2R8txTpASMru8oZFWoJy5C/ETnBgAAZIbODQAAmTBJxqXgdG4AAEBe6NwAAJCT0mQPYPLRuQEAAFmhcwMAQEY454bODQAAyAydGwAAckHOjSTJvIrtqxUrVvju3burtj7Uhzu2PRHW7Fq+JawpIgQxVVFhiSlSghAjRYUFpjynam6baioqVLAen3ukHl/zao3ZzPa4+4pxLyjRjPZFfueKL1VlXf/w/T+o6nO7HnRuAADIhkucc8M5NwAAIC90bgAAyAifCk7nBgAAZIbJDQAAyAqHpQAAyAknFNO5AQAAeaFzAwBALlwyPjiTyU0R6jHAKlLUc0pZzq7l8XiK2n4p49nU2xXWbFhavdczJYAv2j5FPe+dB+NAwS23hCVJqvl7tXH/6rBmfUe8nBs15LDexivV55iRjskNAAA54ZwbzrkBAAB5oXMDAEBOaNzQuQEAAHmhcwMAQEaMc27o3AAAgLzQuQEAICd0bujcAACAvNC5KUCOYVC1FkZW1LpSatYrXldRqrUNU5axYX68nA0J60p5TrVmw9Ltkz2ECZFjYCACLomEYjo3AAAgL3RuAADIhMm5Wkp0bgAAQGaY3AAAgKxwWAoAgJxwWIrODQAAyAudGwAAckLnhs4NAADIC50bjFk1w7829XaFNSkhdLmGmm3cv7ri40WF1EXrGV5XbQVA1ppqPq9ctyEqIMRPEp0bAACQGSY3AABkxNyr8jXucZp91sxeN7OSma2oUHfYzH5sZnvNbHfKsjksBQAAJsNPJP2mpD9LqP2Uu/ekLpjJDQAAOamTq6Xcfb8kmVnhy+awFAAAqGUu6e/NbI+ZPZzyD+jcAACQDa9m56bzqnNgNrv75pEFZvaipNGuZX3C3Z9PXM/d7n7MzG6StN3M3nD3lyv9AyY3AABgLHrc/ZonAkuSu9833pW4+7Hy95Nm9h1JKyVVnNxwWAoAgFy4hjs31fiqAjObZmbtP/9Z0q9p+ETkiujcYNKlBLrlGgxX1HiKCumr1nqKet71+JoDGGZm/1rSf5U0V9Lfmdled/+0mX1A0jfdfY2keZK+Uz7puEnS/+vu34uWzeQGAICc1ElCsbt/R9J3Rrn/mKQ15Z8PSvrl6102h6UAAEBWmNwAAICscFgKAICMFPHRCPWOzg0AAMgKnRsAAHJC54bODQAAyAudGwAAcuGSSnRumNxg0hUVskZY242H1xzAaJjcAACQjap+cGbN4pwbAACQFTo3AADkhM4NnRsAAJAXOjcAAOSEzg2dGwAAkBc6NwAA5IKcG0l0bgAAQGaq2rnZs2dPj5n984i7OiX1VHMMNyi288RjG088tnF1sJ2L9cHqrs4lL1V3lTWoqpMbd5878raZ7Xb3FdUcw42I7Tzx2MYTj21cHWxn5IDDUgAAICucUAwAQE64FHzSOzebJ3n9Nwq288RjG088tnF1sJ1R9ya1c+Pu/BJVAdt54rGNJx7buDrYznWOS8ElTX7nBgAAoFCTNrkxs/vN7E0zO2Bmj0/WOHJiZk+b2Ukz+8mI+2ab2XYze6v8vWMyx1jvzGyxmf2jme03s9fN7LHy/WznAplZq5m9amY/Km/n/1y+n+1cMDNrNLP/bWZ/W77NNq537tX5qmGTMrkxs0ZJ35D0gKSPSvq8mX10MsaSmb+QdP9V9z0uaYe7L5G0o3wbYzco6ffcfamkuyR9qfzeZTsXq1/Sr7r7L0u6XdL9ZnaX2M4T4TFJ+0fcZhuj7k1W52alpAPuftDdr0j6lqS1kzSWbLj7y5JOX3X3WknPlH9+RtJvVHVQmXH34+7+Wvnn8xr+T2Gh2M6F8mEXyjeby18utnOhzGyRpH8l6Zsj7mYb1zs6N5M2uVko6ciI20fL96F489z9uDT8H7OkmyZ5PNkwsy5JH5f0Q7GdC1c+XLJX0klJ292d7Vy8TZL+o6SRkbZsY9S9yZrc2Cj31fY0EBjBzKZL+mtJ69393GSPJ0fuPuTut0taJGmlmX1ssseUEzP7jKST7r5nsseCIlWpa0PnZlRHJS0ecXuRpGOTNJbcnTCzBZJU/n5yksdT98ysWcMTm2fd/W/Kd7OdJ4i7n5H0fQ2fT8Z2Ls7dkn7dzA5r+NSAXzWz/ya2MTIwWZObXZKWmFm3mU2R9DlJWydpLLnbKumh8s8PSXp+EsdS98zMJP25pP3uvnHEQ2znApnZXDObVf65TdJ9kt4Q27kw7v777r7I3bs0vA/+B3f/N2Ib1zeXVCpV56uGTUqIn7sPmtmXJb0gqVHS0+7++mSMJSdm9leSPimp08yOSvpDSV+TtMXMvijpHUmfnbwRZuFuSb8t6cfl80Ek6Q/Edi7aAknPlK+sbJC0xd3/1sz+l9jOE433MuqeeY0fNwMAAGlmNt/kq+Y8WJV1fe/En+6p1U+QJ6EYAABkhU8FBwAgJxyRoXMDAADywuQGAABkhcNSAABkw6USh6Xo3AAAgKzQuQEAIBcuudd2wF410LkBAABZoXMDAEBOOOeGzg0AAMgLnRsAAHJCiB+dGwAAkBc6NwAA5MJdKnG1FJ0bAACQFTo3AADkhHNu6NwAAIC80LkBACAjzjk3dG4AAEBe6NwAAJAN55wb0bkBAACZYXIDAACywmEpAABy4eKDM0XnBgAAZIbODQAAOXEuBadzAwAAskLnBgCATLgk55wbOjcAAKD6zOz/NrM3zGyfmX3HzGZdo+5+M3vTzA6Y2eMpy2ZyAwBALtyHz7mpxtf4bZf0MXdfJulnkn7/6gIza5T0DUkPSPqopM+b2UejBTO5AQAAVefuf+/ug+Wbr0haNErZSkkH3P2gu1+R9C1Ja6Nlc84NAAAZqdNzbv69pG+Pcv9CSUdG3D4q6RPRwpjcAACAseg0s90jbm92980jC8zsRUnzR/m3T7j78+WaJyQNSnp2lDob5b5w9sbkBgCAnFQv56bH3VdUHIr7fZUeN7OHJH1G0r3uo37i51FJi0fcXiTpWDQwzrkBAABVZ2b3S/qKpF9390vXKNslaYmZdZvZFEmfk7Q1XPboEyUAAFBvzOx7kjqrtLoed79/rP/YzA5IapF0qnzXK+7+iJl9QNI33X1NuW6NpE2SGiU97e5fDZfN5AYAAOSEw1IAACArTG4AAEBWmNwAAICsMLkBAABZYXIDAACywuQGAABkhckNAADICpMbAACQlf8PndyWpDAqgjIAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "plt.figure(figsize=(10, 10))\n", "plt.imshow(shifted[int(bins / 2), :, :])\n", "plt.colorbar()\n", "plt.show()" ] } ], "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.3" }, "widgets": { "state": { "b89f27c0251542db85126dfbeca7d158": { "views": [ { "cell_index": 5 } ] }, "cb9686d02a3d4a96b3a4c08e28dcb9ef": { "views": [ { "cell_index": 9 } ] } }, "version": "1.2.0" } }, "nbformat": 4, "nbformat_minor": 2 }