bilby-dev / bilby

A unified framework for stochastic sampling packages and gravitational-wave inference in Python.
https://bilby-dev.github.io/bilby/
MIT License
68 stars 76 forks source link

Questions of Bilby #668

Closed bilby-bot closed 2 months ago

bilby-bot commented 3 years ago

In GitLab by @git.ligo:support-bot on Dec 2, 2021, 16:04

Dear Sir or Madam,

I am a researcher on GW cosmology from SNU, Korea. Recently I am pretty interested in using bilby to do the GW simulation and recover the parameters. I have several questions regarding Bilby.

  1. When we inject the waveform, we usually set a duration and sampling frequency. I understand the latter, but for the former, what's the meaning of it? It seems to be the time duration of the GW signal we want to inject. But how can we know the time duration of the GW? I mean, for example, if we want do the simulation for LIGO, and we inject the GW signal from 10 Hz (the entrance of LIGO band) to the last stable circular orbit (LSCO) frequency (if we only care about the inspiral phase), how should we choose the duration and sampling frequency?

  2. I am a little confused about the reference_frequency, I tried to find the detailed definition of it but failed. It is the reference frequency for what? In different waveform approximations, such as 'IMRPhenomPv2', 'TaylorF2', and 'EccentricFD', are the definitions of reference_frequency the same?

  3. Actually I would like to do the simulation of the eccentric GW waveform for the network of LIGO, Virgo, KAGAR and LIGO-India. In my understanding, we should inject the signal from 10 Hz to the LSCO to the network, and use the whole segment of the signal to run MCMC. Is that possible? How should I set the duration, sampling frequency, and the settings in the example code for interferometers (see below)?

ifos = bilby.gw.detector.InterferometerList(['H1', 'L1'])
for ifo in ifos:
    ifo.minimum_frequency = minimum_frequency
    ifo.maximum_frequency = maximum_frequency
ifos.set_strain_data_from_power_spectral_densities(
    sampling_frequency=sampling_frequency, duration=duration,
    start_time=injection_parameters['geocent_time'] - 3)
ifos.inject_signal(waveform_generator=waveform_generator,
                   parameters=injection_parameters)

I am also a little confused about the definition of geocent_time and start_time. Is geocent_time the coalescence time?

I would appreciate it very much if you could resolve my confusion. Thanks a lot.

Bests,

Tao Yang

bilby-bot commented 2 years ago

In GitLab by @git.ligo:gregory.ashton on Jan 13, 2022, 15:41

Dear Tao,

Thanks for getting in contact and sorry for the delayed response. It has been a busy time and many of us took holiday.

  1. When we inject the waveform, we usually set a duration and sampling frequency. I understand the latter, but for the former, what's the meaning of it? It seems to be the time duration of the GW signal we want to inject. But how can we know the time duration of the GW? I mean, for example, if we want do the simulation for LIGO, and we inject the GW signal from 10 Hz (the entrance of LIGO band) to the last stable circular orbit (LSCO) frequency (if we only care about the inspiral phase), how should we choose the duration and sampling frequency?

The duration is the duration of data to analyse. I.e. take 4s of Livingston data. You should choose the duration so that the entire signal fits into the data. For example, if a signal takes 2s to go from 20Hz to merger, then you should use a duration of data 2s + "a period of time after the merger". Usually we set this period to be 2s so the total duration should be 4s.

FWIW, 20Hz is the lowest frequency that tends to be used in LVK analyses

  1. I am a little confused about the reference_frequency, I tried to find the detailed definition of it but failed. It is the reference frequency for what? In different waveform approximations, such as 'IMRPhenomPv2', 'TaylorF2', and 'EccentricFD', are the definitions of reference_frequency the same?

I'm not a waveform expert, so take this with the appropriate grain of salt, but I believe it is the frequency at which ones defines a zero-point of the 22 mode. I believe all modern waveforms use the same convention.

  1. Actually I would like to do the simulation of the eccentric GW waveform for the network of LIGO, Virgo, KAGAR and LIGO-India. In my understanding, we should inject the signal from 10 Hz to the LSCO to the network, and use the whole segment of the signal to run MCMC. Is that possible? How should I set the duration, sampling frequency, and the settings in the example code for interferometers (see below)?

I'm not sure I can tell you this without doing some work. However, in general you set the duration to ensure your data captures the entire signal. You set the sampling frequency so that the maximim_frequency (by default half the sampling frequency) is greater than the maximum frequency you expect your signal to have. You may then additionally set a minimum and maximum frequency as well, but defaults are 20Hz and sampling_frequency/2

I am also a little confused about the definition of geocent_time and start_time. Is geocent_time the coalescence time?

geocent_time is the coalescence time, as measured at the geocentre (centre of the Earth)

Your questions above are reasonably common for newcomers to the field. Unfortunately, we have a lot of "lingo" which is poorly explained in our papers. You may find it useful to take a look at https://www.gw-openscience.org/workshops/, these are online workshops (they run live, but you can also do them offline) which go through lots of the fundamentals and provide help tools. Also, arxiv.org/abs/1809.02293 has lots on GW parameter estimation (though it doesn't answer your questions above).

There may be another GWOSC workshop this year, but I haven't yet yet.

Best,

Greg

bilby-bot commented 2 years ago

In GitLab by @git.ligo:gregory.ashton on Feb 1, 2022, 17:05

I'm going to close this issue, but please reply if you have ongoing questions.