diff --git a/bbh_test_waveform_.ipynb b/bbh_test_waveform_.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..2d8ec43ac07e85a132252643c12ef41fac4431e4 --- /dev/null +++ b/bbh_test_waveform_.ipynb @@ -0,0 +1,331 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The purpose of this notebook is to test the use of a numerical relativity waveform in bilby.\n", + "\n", + "As an initial approach let's just do this with pre-prepared NR injection files (basically hardware injection files), and then let's graft support for this into Minke." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "03:29 bilby WARNING : You do not have lalsuite installed currently. You will not be able to use some of the prebuilt functions.\n", + "03:29 bilby WARNING : You do not have lalsuite installed currently. You will not be able to use some of the prebuilt functions.\n", + "03:29 bilby WARNING : You do not have lalsuite installed currently. You will not be able to use some of the prebuilt functions.\n", + "03:29 bilby WARNING : You do not have lalsuite installed currently. You will not be able to use some of the prebuilt functions.\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import bilby" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Bilby requires a function which takes the times as the first argument, and can then pass a dictionary of other parameters into the remainder of the arguments. \n", + "For now let's keep things simple and just pass in the path to the NR data file.\n", + "We could do additional things like including distance, but `minke` does this already, and there's no need to reinvent that wheel." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def nr_injection(time, datafile):\n", + " \"\"\"\n", + " This function produces the amplitude for a given NR-derived signal at any given time for a given data file.\n", + " \n", + " Parameters\n", + " ----------\n", + " time : array-like\n", + " A time, or an array of times, at which the amplitudes should be returned.\n", + " datafile : str\n", + " The path to the data file containing the injection.\n", + " \"\"\"\n", + " \n", + " data = np.genfromtxt(datafile)\n", + " \n", + " hp = np.interp(time, data[:,0], data[:,1])\n", + " hx = np.interp(time, data[:,0], data[:,2])\n", + " \n", + " return {\"plus\": hp, \"cross\": hx}" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "times = np.linspace(0.25, .325, 1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "strain = nr_injection(times, \"./rescale-h_m16_L0.21_l2m2_r200.dat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(times, strain['plus'])\n", + "plt.plot(times, strain['cross'])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "injection_parameters = dict(phase=0, ra=0, dec=0, psi=0, t0=0., geocent_time=0.)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "duration = 1.0\n", + "sampling_frequency = 1024\n", + "outdir = 'outdir'\n", + "label = 'bbh_20191030'" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "from functools import partial" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Annoyingly I can't see an easy way of passing an argument to the model which bilby won't try to sample over.\n", + "There may be something about this in the documentation, I'll need to take a closer look. To get around this I'll use a partial function for now." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "nr_injection_partial = partial(nr_injection, datafile=\"./waveforms-master-10mpc/10mpc/rescale-h_m16_L0.21_l2m2_r200.dat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "This doesn't look like a function.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mduration\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mduration\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msampling_frequency\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msampling_frequency\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mtime_domain_source_model\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnr_injection_partial\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m start_time=-0.5)\n\u001b[0m", + "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/bilby/gw/waveform_generator.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, duration, sampling_frequency, start_time, frequency_domain_source_model, time_domain_source_model, parameters, parameter_conversion, waveform_arguments)\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrequency_domain_source_model\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfrequency_domain_source_model\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime_domain_source_model\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime_domain_source_model\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 58\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msource_parameter_keys\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__parameters_from_source_model\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 59\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mparameter_conversion\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparameter_conversion\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_default_parameter_conversion\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/bilby/gw/waveform_generator.py\u001b[0m in \u001b[0;36m__parameters_from_source_model\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 235\u001b[0m raise AttributeError('Either time or frequency domain source '\n\u001b[1;32m 236\u001b[0m 'model must be provided.')\n\u001b[0;32m--> 237\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minfer_parameters_from_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 238\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 239\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/bilby/core/utils.py\u001b[0m in \u001b[0;36minfer_parameters_from_function\u001b[0;34m(func)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_infer_args_from_function_except_for_first_arg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 66\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"This doesn't look like a function.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 67\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: This doesn't look like a function." + ] + } + ], + "source": [ + "# call the waveform_generator to create our waveform model.\n", + "waveform = bilby.gw.waveform_generator.WaveformGenerator(\n", + " duration=duration, sampling_frequency=sampling_frequency,\n", + " time_domain_source_model=nr_injection_partial,\n", + " start_time=-0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# inject the signal into three interferometers\n", + "ifos = bilby.gw.detector.InterferometerList(['H1', 'L1'])\n", + "ifos.set_strain_data_from_power_spectral_densities(\n", + " sampling_frequency=sampling_frequency, duration=duration,\n", + " start_time=-0.5)\n", + "ifos.inject_signal(waveform_generator=waveform,\n", + " parameters=injection_parameters);\n", + "print(ifos)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So, having made our injection we want to search for it using a more conventional model.\n", + "\n", + "We'll use IMRPhenomPv2. This also means that we need a list of the parameters which we'll use to produce the prior dictionary.\n", + "For simplicity I'm copying this from the Bilby 4-parameter tutorial. This could be done slightly better!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Fixed arguments passed into the source model\n", + "waveform_arguments = dict(waveform_approximant='IMRPhenomPv2',\n", + " reference_frequency=50., minimum_frequency=10.)\n", + "\n", + "\n", + "waveform_generator_bbh = bilby.gw.WaveformGenerator(\n", + " duration=duration, sampling_frequency=sampling_frequency,\n", + " frequency_domain_source_model=bilby.gw.source.lal_binary_black_hole,\n", + " waveform_arguments=waveform_arguments)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "priors = bilby.core.prior.PriorDict(filename='bilby_gw_prior_files_binary_black_holes.prior')\n", + "\n", + "\n", + "\n", + "priors['geocent_time'] = bilby.core.prior.Uniform(\n", + " minimum=injection_parameters['geocent_time'] - 0.1,\n", + " maximum=injection_parameters['geocent_time'] + 0.1,\n", + " name='geocent_time', latex_label='$t_c$', unit='$s$')\n", + "\n", + "# Initialise the likelihood by passing in the interferometer data (ifos) and\n", + "# the waveoform generator, as well the priors.\n", + "# The explicit time, distance, and phase marginalizations are turned on to\n", + "# improve convergence, and the parameters are recovered by the conversion\n", + "# function.\n", + "likelihood = bilby.gw.GravitationalWaveTransient(\n", + " interferometers=ifos, waveform_generator=waveform_generator_bbh, priors=priors,\n", + " distance_marginalization=True, phase_marginalization=True, time_marginalization=True)\n", + "\n", + "# Run sampler. In this case we're going to use the `cpnest` sampler\n", + "# Note that the maxmcmc parameter is increased so that between each iteration of\n", + "# the nested sampler approach, the walkers will move further using an mcmc\n", + "# approach, searching the full parameter space.\n", + "# The conversion function will determine the distance, phase and coalescence\n", + "# time posteriors in post processing.\n", + "result = bilby.run_sampler(\n", + " likelihood=likelihood, priors=priors, sampler='dynesty', npoints=1000,\n", + " injection_parameters=injection_parameters, outdir=outdir, label=label)\n", + "\n", + "# Make a corner plot.\n", + "result.plot_corner()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "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.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}