From 87bf3a5f07ad0bcff08967ca214b11df2adff622 Mon Sep 17 00:00:00 2001 From: Evan Hall <evan.hall@ligo.org> Date: Mon, 30 Sep 2019 14:58:25 -0700 Subject: [PATCH] 6D seismometer table motion model Following Mow-Lowry and Martynov, arXiv:1801.01468 --- gwinc/noise/seismic.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gwinc/noise/seismic.py b/gwinc/noise/seismic.py index 1ac20543..683e63ac 100644 --- a/gwinc/noise/seismic.py +++ b/gwinc/noise/seismic.py @@ -60,6 +60,30 @@ def seisBSC(f): return nt, nr +def seis6D(f): + """ISI noise source spectra with a 6D seismometer. + + This largely follows Mow-Lowry and Martynov, arXiv:1801.01468. + + """ + + SEI_F = np.array([0.01, 0.03, 0.1, 0.2, 0.5, 1, 10, 100, 300]) + + SEI_T_self = np.array([1e-7, 1e-9, 3e-11, 6e-12, 3e-13, 1e-13, 3e-14, 1e-14, 1e-14]) + nt_self = 10**(interp1d(SEI_F, log10(SEI_T_self))(f)) + nt_gnd = 10*seisNLNM(f) + blend_t = np.abs(100/(1+1j*f/0.01)**4) + nt = np.sqrt(nt_self**2 + (blend_t * nt_gnd)**2) + + SEI_R_self = np.array([2e-11, 5e-12, 1e-12, 6e-13, 3e-13, 2e-13, 6e-14, 2e-14, 2e-14]) + nr_self = 10**(interp1d(SEI_F, log10(SEI_R_self))(f)) + nr_gnd = np.abs(1e-7/(1+1j*f/0.001)) + blend_r = np.abs(100/(1+1j*f/0.01)**4) + nr = np.sqrt(nr_self**2 + (blend_t * nr_gnd)**2) + + return nt, nr + + def seisNLNM(f): """The Peterson New Low-Noise Model. -- GitLab