{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[11.71494203]\n",
      "[24.12391095]\n",
      "[10.38877496]\n",
      "[7.09610681]\n"
     ]
    }
   ],
   "source": [
    "import pylab\n",
    "import pycbc\n",
    "from pycbc.waveform import get_td_waveform\n",
    "from pycbc.waveform import get_fd_waveform\n",
    "from pycbc.waveform import fd_approximants\n",
    "import pycbc.noise\n",
    "import pycbc.psd\n",
    "from pycbc.types import TimeSeries\n",
    "from pycbc import distributions\n",
    "import numpy as np\n",
    "for i in range(10):\n",
    "    mass1_distribution = distributions.uniform_log.UniformLog10(mass1=(5, 95))\n",
    "    mass1_value=mass1_distribution.rvs(size=1)\n",
    "    mass2_distribution = distributions.uniform_log.UniformLog10(mass2=(5, 95))\n",
    "    mass2_value=mass2_distribution.rvs(size=1)\n",
    "    print(mass1_value['mass1'])\n",
    "    print(mass2_value['mass2'])\n",
    "    hp, hc = get_td_waveform(approximant='SEOBNRv4',\n",
    "                                     mass1=mass1_value['mass1'],\n",
    "                                     mass2=mass2_value['mass2'],\n",
    "                                     delta_t=1.0/4096,\n",
    "                                     f_lower=40)\n",
    "    for j in range(10):\n",
    "        seed_value=np.random.randint(1, 200)\n",
    "        flow = 30.0\n",
    "        delta_f = 1.0 / 16\n",
    "        flen = int(2048 / delta_f) + 1\n",
    "        psd = pycbc.psd.aLIGOZeroDetHighPower(flen, delta_f, flow)\n",
    "        delta_t = 1.0 / 4096\n",
    "        tsamples = int(5 / delta_t)\n",
    "        ts = pycbc.noise.noise_from_psd(tsamples, delta_t, psd, seed=seed_value)\n",
    "        tlen = 5 / delta_t\n",
    "        hp.resize(tlen)\n",
    "        ts.resize(tlen)\n",
    "        hp_new = TimeSeries(hp.data.data, dtype=hp.dtype,delta_t=delta_t, epoch=0)\n",
    "        final = hp_new + ts\n",
    "        \n",
    "        np.savetxt(str(i) + str(j) + '.txt',np.transpose([final.sample_times,final])) \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: pycbc in /opt/anaconda3/lib/python3.8/site-packages (1.18.1)\n",
      "Requirement already satisfied: ligo-common in /opt/anaconda3/lib/python3.8/site-packages (1.0.3)\n",
      "Requirement already satisfied: jinja2 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (2.11.2)\n",
      "Requirement already satisfied: lalsuite in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (6.82)\n",
      "Requirement already satisfied: scipy>=0.16.0; python_version >= \"3.5\" in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (1.5.0)\n",
      "Requirement already satisfied: mpld3>=0.3 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (0.5.5)\n",
      "Requirement already satisfied: decorator>=3.4.2 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (4.4.2)\n",
      "Requirement already satisfied: gwdatafind in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (1.0.4)\n",
      "Requirement already satisfied: matplotlib>=1.5.1 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (3.2.2)\n",
      "Requirement already satisfied: numpy>=1.16.0 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (1.18.5)\n",
      "Requirement already satisfied: requests>=1.2.1 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (2.24.0)\n",
      "Requirement already satisfied: lscsoft-glue>=1.59.3 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (2.0.0)\n",
      "Requirement already satisfied: ligo-segments in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (1.3.0)\n",
      "Requirement already satisfied: six>=1.10.0 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (1.15.0)\n",
      "Requirement already satisfied: tqdm in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (4.47.0)\n",
      "Requirement already satisfied: cython>=0.29 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (0.29.21)\n",
      "Requirement already satisfied: beautifulsoup4>=4.6.0 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (4.9.1)\n",
      "Requirement already satisfied: astropy!=4.0.5,!=4.2.1,>=2.0.3; python_version > \"3.0\" in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (4.0.1.post1)\n",
      "Requirement already satisfied: Mako>=1.0.1 in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (1.1.4)\n",
      "Requirement already satisfied: h5py>=2.5; python_version > \"3.6\" in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (2.10.0)\n",
      "Requirement already satisfied: pillow in /opt/anaconda3/lib/python3.8/site-packages (from pycbc) (7.2.0)\n",
      "Requirement already satisfied: MarkupSafe>=0.23 in /opt/anaconda3/lib/python3.8/site-packages (from jinja2->pycbc) (1.1.1)\n",
      "Requirement already satisfied: python-dateutil in /opt/anaconda3/lib/python3.8/site-packages (from lalsuite->pycbc) (2.8.1)\n",
      "Requirement already satisfied: pyOpenSSL in /opt/anaconda3/lib/python3.8/site-packages (from gwdatafind->pycbc) (19.1.0)\n",
      "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/anaconda3/lib/python3.8/site-packages (from matplotlib>=1.5.1->pycbc) (2.4.7)\n",
      "Requirement already satisfied: cycler>=0.10 in /opt/anaconda3/lib/python3.8/site-packages (from matplotlib>=1.5.1->pycbc) (0.10.0)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/anaconda3/lib/python3.8/site-packages (from matplotlib>=1.5.1->pycbc) (1.2.0)\n",
      "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/anaconda3/lib/python3.8/site-packages (from requests>=1.2.1->pycbc) (1.25.9)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /opt/anaconda3/lib/python3.8/site-packages (from requests>=1.2.1->pycbc) (2020.6.20)\n",
      "Requirement already satisfied: idna<3,>=2.5 in /opt/anaconda3/lib/python3.8/site-packages (from requests>=1.2.1->pycbc) (2.10)\n",
      "Requirement already satisfied: chardet<4,>=3.0.2 in /opt/anaconda3/lib/python3.8/site-packages (from requests>=1.2.1->pycbc) (3.0.4)\n",
      "Requirement already satisfied: soupsieve>1.2 in /opt/anaconda3/lib/python3.8/site-packages (from beautifulsoup4>=4.6.0->pycbc) (2.0.1)\n",
      "Requirement already satisfied: cryptography>=2.8 in /opt/anaconda3/lib/python3.8/site-packages (from pyOpenSSL->gwdatafind->pycbc) (2.9.2)\n",
      "Requirement already satisfied: cffi!=1.11.3,>=1.8 in /opt/anaconda3/lib/python3.8/site-packages (from cryptography>=2.8->pyOpenSSL->gwdatafind->pycbc) (1.14.0)\n",
      "Requirement already satisfied: pycparser in /opt/anaconda3/lib/python3.8/site-packages (from cffi!=1.11.3,>=1.8->cryptography>=2.8->pyOpenSSL->gwdatafind->pycbc) (2.20)\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "!{sys.executable} -m pip install pycbc ligo-common --no-cache-dir"
   ]
  }
 ],
 "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.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}