{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Pulse Nulling: Example Notebook\n",
    "\n",
    "This notebook will serve as an exampe of how to use the pulse nulling feature of the `Pulse Signal Simulator`. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Start by importing the packages we will need for the simulation.\n",
    "import psrsigsim as pss \n",
    "\n",
    "# Additional necessary packages\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "# helpful magic lines\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We define a plotting convenience function for later."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define a function for easier plotting later on/throughout the testing\n",
    "def plotsignal(signals, nbins=2048):\n",
    "    # signals can be a list of multiple signals to overplot\n",
    "    for ii in range(len(signals)):\n",
    "        # Define the x axis\n",
    "        phases = np.linspace(0.0, len(signals[ii]), len(signals[ii]))/nbins\n",
    "        # now plot it\n",
    "        plt.plot(phases, signals[ii], label=\"signal %s\" % (ii))\n",
    "    plt.xlim([0.0, np.max(phases)])\n",
    "    plt.xlabel(\"Pulse Phase\")\n",
    "    plt.ylabel(\"Arb. Flux\")\n",
    "    plt.show()\n",
    "    plt.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we will define some example simulation parameters. The warning generated below may be ignored."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warning: specified sample rate 0.002048 MHz < Nyquist frequency 1600.0 MHz\n"
     ]
    }
   ],
   "source": [
    "# define the required filterbank signal parameters\n",
    "f0 = 1380 # center observing frequecy in MHz\n",
    "bw = 800.0 # observation MHz\n",
    "Nf = 2 # number of frequency channels\n",
    "F0 = np.double(1.0) # pulsar frequency in Hz\n",
    "f_samp = F0*2048*10**-6 # sample rate of data in MHz, here 2048 bins across the pulse\n",
    "subintlen = 1.0 # desired length of fold-mode subintegration in seconds\n",
    "# Now we define our signal\n",
    "null_signal = pss.signal.FilterBankSignal(fcent = f0, bandwidth = bw, Nsubband=Nf,\\\n",
    "                                          sample_rate=f_samp, fold=True, sublen=subintlen)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we define an example Gaussian pulse shape. Details on defining a pulse shape from a data array may be found in the exmample notebook in the docs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "prof = pss.pulsar.GaussProfile(peak=0.5, width=0.05, amp=1.0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we define an example pulsar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the necessary parameters\n",
    "period = np.double(1.0)/F0 # seconds\n",
    "flux = 0.1 # Jy\n",
    "psr_name = \"J0000+0000\"\n",
    "# Define the pulsar object\n",
    "pulsar = pss.pulsar.Pulsar(period=period, Smean=flux, profiles=prof, name=psr_name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we actually make the pulsar signal. Note that if the observation length is very long all the data will be saved in memory which may crash the computer or slow it down significantly."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the observation time, in seconds\n",
    "ObsTime = 3.0 # seconds\n",
    "# make the pulses\n",
    "pulsar.make_pulses(null_signal, tobs = ObsTime)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now lets take a look at what the signals look like."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# We plot just the first frequency channel, but all pulses simulated\n",
    "plotsignal([null_signal.data[0,:]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can disperse the simuated data if desired. Note that this is not required, and if you only want to simulate a single frequency channel or simulate coherently dedispersed data, the data does not have to be dispersed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\r",
      "100% dispersed in 0.001 seconds."
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# First define the dispersion measure\n",
    "dm = 10.0 # pc cm^-3\n",
    "# Now define the ISM class\n",
    "ism_ob = pss.ism.ISM()\n",
    "# Now we give the ISM class the signal and disperse the data\n",
    "ism_ob.disperse(null_signal, dm)\n",
    "# If we plot the same pulses as above, you can see that the phase of the pulse has\n",
    "# been shfited due to the dispersion\n",
    "plotsignal([null_signal.data[0,:]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is where the pulses should be nulled if desired. This can be run easily by giving the pulsar object only the signal class and the null fraction as a value between 0 and 1. The simulator will null as close to the null fraction as desired, and will round to the closest integer number of pulses to null based on the input nulling fraction, e.g. if 5 pulses are simulated and the nulling fraction is 0.5, it will round to null 3 pulses. Additionally, currently only the ability to null the pulses randomly is implemented. \n",
    "\n",
    "Here we will put in a nulling fraction of 33%"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "pulsar.null(null_signal, 0.34)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# and plot the signal to show the null\n",
    "plotsignal([null_signal.data[0,:]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also add radiometer noise from some observing telescope. This should only be run AFTER the pulsar nulling, but is not required. For our example, we will use the L-band feed for the Arecibo telescope. Note that here since we have set the pulsar flux very high we can easily see the single pulses above the noise."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING: AstropyDeprecationWarning: The truth value of a Quantity is ambiguous. In the future this will raise a ValueError. [astropy.units.quantity]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# We define the telescope object\n",
    "tscope = pss.telescope.telescope.Arecibo()\n",
    "# Now add radiometer noise; ignore the output here, the noise is added directly to the signal\n",
    "output = tscope.observe(null_signal, pulsar, system=\"Lband_PUPPI\", noise=True)\n",
    "# and plot the signal to show the added noise\n",
    "plotsignal([null_signal.data[0,:]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can save the data in a `PSRCHIVE pdv` format. This is done with the `txtfile` class. The save function will dump a new file for every 100 pulses that it writes to the text file. We start by initializing the `txtfile` object. The only input needed here is the `path` variable, which will tell the simulator where to save the data. All files saved will have \"_\\#.txt\" added to the end of the `path` variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "txtfile = pss.io.TxtFile(path=\"PsrSigSim_Simulated_Pulsar.ar\")\n",
    "# Now we call the saving function. Note that depending on the length of the simulated data this may take awhile\n",
    "# the two inputs are the signal and the pulsar objects used to simulate the data.\n",
    "txtfile.save_psrchive_pdv(null_signal, pulsar)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And that's all that there should be to it. Let us know if you have any questions moving forward, or if something is not working as it should be."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python (pss)",
   "language": "python",
   "name": "pss"
  },
  "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.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
