GW150914
In [58]:
Copied!
import gwpy
from gwpy.timeseries import TimeSeries
from gwosc.datasets import event_gps
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
import gwpy
from gwpy.timeseries import TimeSeries
from gwosc.datasets import event_gps
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
In [2]:
Copied!
gps = event_gps("GW150914")
H1data = TimeSeries.fetch_open_data('H1', gps-5, gps+5)
L1data = TimeSeries.fetch_open_data('L1', gps-5, gps+5)
gps = event_gps("GW150914")
H1data = TimeSeries.fetch_open_data('H1', gps-5, gps+5)
L1data = TimeSeries.fetch_open_data('L1', gps-5, gps+5)
In [6]:
Copied!
plt.plot(H1data.times,H1data.value)
plt.plot(L1data.times,L1data.value)
plt.plot(H1data.times,H1data.value)
plt.plot(L1data.times,L1data.value)
Out[6]:
[<matplotlib.lines.Line2D at 0x7f6d20146b90>]
In [12]:
Copied!
H1data.asd(4,2)
H1data.asd(4,2)
Out[12]:
$[6.9624529 \times 10^{-21},~2.2290922 \times 10^{-20},~8.4740181 \times 10^{-21},~\dots,~1.3528194 \times 10^{-25},~1.4836579 \times 10^{-25},~5.0278456 \times 10^{-26}] \; \mathrm{\frac{1}{Hz^{1/2}}}$
In [29]:
Copied!
import jax.numpy as jnp
from ripple.waveforms.IMRPhenomD import gen_IMRPhenomD_polar
def gen_waveform(f, theta):
theta_waveform = theta[:9]
ra = theta[9]
dec = theta[10]
hp, hc = gen_IMRPhenomD_polar(f, theta_waveform)
return hp, hc
ref_param = jnp.array([ 3.41096639e+01, 2.42240502e-01, 7.03845904e-02,
1.45055597e-01, 4.00156164e+02, -1.97202379e+00,
1.08177416e+00, -6.94499550e-02, 1.95503312e+00,
8.60901399e-01, 2.89425087e+00])
import jax.numpy as jnp
from ripple.waveforms.IMRPhenomD import gen_IMRPhenomD_polar
def gen_waveform(f, theta):
theta_waveform = theta[:9]
ra = theta[9]
dec = theta[10]
hp, hc = gen_IMRPhenomD_polar(f, theta_waveform)
return hp, hc
ref_param = jnp.array([ 3.41096639e+01, 2.42240502e-01, 7.03845904e-02,
1.45055597e-01, 4.00156164e+02, -1.97202379e+00,
1.08177416e+00, -6.94499550e-02, 1.95503312e+00,
8.60901399e-01, 2.89425087e+00])
In [36]:
Copied!
h1asd = H1data.asd(4,2).value
f = H1data.asd(4,2).frequencies.value
h1asd = h1asd[(f>20)*(f<2048)]
f = f[(f>20)*(f<2048)]
f = jnp.array(f)
h1asd = H1data.asd(4,2).value
f = H1data.asd(4,2).frequencies.value
h1asd = h1asd[(f>20)*(f<2048)]
f = f[(f>20)*(f<2048)]
f = jnp.array(f)
In [44]:
Copied!
hp, hc = gen_waveform(f, ref_param)
hp2,hc2 = gen_waveform(f, jnp.array([ 3.41096639e+01, 2.42240502e-01, 7.03845904e-02,
1.45055597e-01, 4.00156164e+02, -1.97202379e+00,
1.08177416e+00, -6.94499550e-02, 1.95503312e+00,
8.60901399e-01, 2.89425087e+00]))
hp, hc = gen_waveform(f, ref_param)
hp2,hc2 = gen_waveform(f, jnp.array([ 3.41096639e+01, 2.42240502e-01, 7.03845904e-02,
1.45055597e-01, 4.00156164e+02, -1.97202379e+00,
1.08177416e+00, -6.94499550e-02, 1.95503312e+00,
8.60901399e-01, 2.89425087e+00]))
In [45]:
Copied!
plt.loglog(f,h1asd)
plt.loglog(f,jnp.abs(hp))
plt.ylim(1e-24,1e-20)
plt.loglog(f,h1asd)
plt.loglog(f,jnp.abs(hp))
plt.ylim(1e-24,1e-20)
Out[45]:
(1e-24, 1e-20)
In [59]:
Copied!
plt.plot(jnp.fft.ifft(hp))
plt.plot(jnp.fft.ifft(hp))
/mnt/home/wwong/Environment/GW/lib/python3.10/site-packages/jax/_src/device_array.py:265: ComplexWarning: Casting complex values to real discards the imaginary part return np.asarray(self._value, dtype=dtype)
Out[59]:
[<matplotlib.lines.Line2D at 0x7f6b68655690>]
In [69]:
Copied!
np.fft.fftfreq(H1data.times.value.shape[0],H1data.dt.value).shape
np.fft.fftfreq(H1data.times.value.shape[0],H1data.dt.value).shape
Out[69]:
(40960,)
In [72]:
Copied!
H1data.asd(4,2)
H1data.asd(4,2)
Out[72]:
$[6.9624529 \times 10^{-21},~2.2290922 \times 10^{-20},~8.4740181 \times 10^{-21},~\dots,~1.3528194 \times 10^{-25},~1.4836579 \times 10^{-25},~5.0278456 \times 10^{-26}] \; \mathrm{\frac{1}{Hz^{1/2}}}$
In [65]:
Copied!
H1data.dt
H1data.dt
Out[65]:
$0.00024414062 \; \mathrm{s}$
In [ ]:
Copied!