Tutorials Questions - Day 1

Hi, I have a question about Pycbc. Why are there some fd_approximant that are indicated in the list of fd_approximant but actually do not work? (example:SEOBNRv4_ROM, but also others)

Hi, there could be two possible errors.

  1. Add a import matplotlib.pyplot as plt that is missing at the beginning of the cell.

  2. Be careful when copying-pasting from Thinkific to the notebook. Python wants the code to be correctly indented. After the paste, make sure the format of indentation is ok with python. If it is not, you should see that your code editor changes color. If you see nothing, just indent it by yourself to be sure.

1 Like

Hi,

Here there are multiple answers. When you see an error saying that the waveform model is not available, it means that you should install it in a special way. It might also happen that you see an error saying Generic Failure, it is possible that there is a conflict with the pycbc and lalsuite installation. Iā€™d suggest trying other versions.

I am currently using the latest version of Pycbc, can you suggest me a page where I can understand how to install the waveform model in a special way or a version of pycbc where thereā€™s no conflict? thanks!

I have a question about the tutorial 1.2 of yesterday.
As far as I understood, the PSD is obtained by considering a large time interval centered in a GW signal and then taking the median of the squared moduli of the corresponding Fourier Transforms.
The resulting curve in frequency domain is called strain noise, right?
But why does such curve represent a noise?
Since we are considering a time interval centered in a GW detection, at each frequency there should be a small contribution due to the GW. Therefore, I expect that such curve represent something like noise+signal. Am I wrong?
I thought that maybe the median procedure and the large time domain considered erase GW contributions and so we are left with noise only. Is this reasonable?

2 Likes

Hi @Gabrielepk, here a link to lalsuite-extra, which should contain the missing files. You can either clone the whole repository or download individual files lscsoft / lalsuite-extra Ā· GitLab. As for myself, I have build in my own lalsuite installation using git and added the path to lalsuite-extra with "export LAL_DATA_PATH=ā€˜path to lalsuite-extra installationā€™ " like explained here Installing lalsuite for PyCBC ā€” PyCBC 2.2.dev1 documentation .

1 Like

Regarding tutorial 1.3, how do we know or gain intuition for which range of Q to use? I donā€™t quite understand why we used large values of Q for GW170817 and much smaller values for GW170814 in the Q-scan challenge

1 Like

Regarding tutorial 1.4, how would we know the best value of f_lower to use when working with get_td_waveform or get_fd_waveform? What exactly does it mean to indicate a starting GW frequency?

Hi, is there something wrong with this section of the tutorial 1.2?
I canā€™t open what is in that section but it says that there are 12 cells hidden


Should I ignore it?

While using q_transform function, we define a parameter known as qrange. I played around with that value and I see that the plots change drastically.

Question is I donā€™t know what is the physical meaning of this parameter. It would be helpful if someone can give me an idea about it or give me some reference to look into

Hi @Arun_KG! There are some cells hidden in your notebook. Click on the arrow on the left of ā€œHandlingā€ to show them

Hi @lua, this question have been answered in other topics, see e.g. Lecture Questions - Day 2 (2023) - #11 by simone-mastrogiovann . In general you can search for q transform in the upper part (magnification lens icon) to see all the discussions about it.

1 Like

Hi @lua, the point is that the detector is not really sensible at low frequencies (see PSD or ASD plots), thatā€™s why we are not considering anything below 20 Hz.

1 Like

Hi @Tonzui, here is a reference: [gr-qc/0412119] Multiresolution techniques for the detection of gravitational-wave bursts

Hi @m.tagliazucchi, in general the power spectral density of a time series describes the power present in the time series as a function of frequency, per unit frequency. Since the strain that we detect is largely dominated by the noise, the PSD describe in practice the frequency distribution of the noise. For the purpose of the tutorial the interval of time you are considering is quite short, but in general, you are right, we tend to use long periods of time to calculate the PSD in order to reduce the fluctuations since you are ā€œintegratingā€ over a longer period.

1 Like

Hi, guys. Iā€™m trying to locally run the tutorials on macOS Catalina. Iā€™ve installed the igwn-py39-lw enviroment, followed all the steps carefully. Tutorial 1.2 runs fine up to the code ā€˜TimeSeries.fetch_open_data(ā€˜L1ā€™, int(gps)-512, int(gps)+512, cache=True, verbose=True)ā€™, which hangs for a long time and then gives an error. The code works for a time segment of at most 30 seconds, i.e., if I put from -15 to +15. Longer times give an error. Does anybody know where the problem might be?

2 Likes

Hi @FabioNovaes , Ā±512 is very expensive computationally speaking, not 100% sure about this but maybe to remove cache=True could help (default is None TimeSeries - GWpy 3.0.1.dev133+geca77515 documentation)

1 Like

Hi, @virtuoso, thanks for the reply! Unfortunately, not using cache didnā€™t help. The code hangs even if I put from -16 to +16. Anything above a window of 30 seconds hangs. Maybe this is related to the different files it needs to download (32 seconds vs. 4096 seconds)? Anyway, this seems a very specific problem of my system, so I will post an issue at the gwpy github page to see if they can help me. I will continue the tutorials in Google Colab. Thank you!

@FabioNovaes Thatā€™s interesting!

Iā€™m not sure whatā€™s happening. But, you are right that the fetch_open_data command decides if it will download a 32 second file or a 4096 second file, with no choices in-between. Maybe the code is encountering either memory limits or band-width limits of your set-up?

In any case, an option is to try using NDS2 instead to access data. Instructions are linked below. For example, for O3 data, you could request channel names like L1:DCS-CALIB_STRAIN_CLEAN_SUB60HZ_C01_AR

chan = L1:DCS-CALIB_STRAIN_CLEAN_SUB60HZ_C01_AR
from gwpy.timeseries import TimeSeries
data = TimeSeries.fetch(chan, start=1240559616, end=1240559626, host='losc-nds.ligo.org')
1 Like

Thanks, @jonah, that worked for a time larger than 30 seconds! Youā€™re probably right, it is either memory or bandwith limits. The 1024 window gives an error ā€œtimeout: The read operation timed outā€. However, I have a 1TB SSD, 12 GB RAM and a 200 Mbps internet connection. So, itā€™s quite strange. Iā€™m doing some tests to try to figure it out whatā€™s the issue. Thank you for the help!