Closed viktorcikojevic closed 1 year ago
Hi @viktorcikojevic there's two problems here:
"Band": 359/1800
when creating the signal_parameters_generator
, but that is not a "signal parameter" in the physical sense. Band
determines how broad the SFTs are, so it should more logically go into the writer_kwargs
. There is no failure either from instantiating the AllSkyInjectionParametersGenerator
(because it is set up to understand and return arbitrary parameters) nor the Writer
(presumably because you do writer = pyfstat.Writer(**writer_kwargs, **signal_parameters)
and so it doesn't matter which dict the Band
comes from).Band
is then actually physically too narrow for the signal you want to inject - f1dot = 8.663720666732984996e-06
is HUGE by continuous waves standards, and so over whatever duration you want to simulate (can't see your timestamps) the code internally notices that the signal would evolve over nearly 90Hz, which does not fit into the 359/1800 you're providing. If you simply pass no Band
option, PyFstat will auto-estimate a Band
for you, which most of the time should work correctly. Though we haven't checked too much how robust it is for really high spindowns.So I would suggest to fix 1 just for cleaner code, and regarding 2 either you really want very strong spindown then change to auto-banding or choose a very wide Band
by hand (but be aware that files will be big); or simply limit your F1
random range.
Hi @dbkeitel, thanks for the prompt answer, now I see it more clearly.
The timestamps range between 1,238,173,136
and 1,248,557,243
.
So if I understood correctly, the maximum value of f1dot
should be about 0.2 / 10^6
, since 0.2 is the fixed Band
width, and 10^6 is approximately the difference between the end and start timestamp. Is that correct? 🙂
Looks more like 10^7 to me, but otherwise that's the right logic, yes!
And if you want to include F2, that affects the frequency evolution (and hence whether the signal fits into a band) proportional to time difference squared.
Great, thanks!
I was trying to run the python code to generate the signals. During the execution of a python script, I get the error
subprocess.CalledProcessError: Command 'lalpulsar_Makefakedata_v5 ... returned non-zero exit status 255.
When I try to run the process directly in the terminal,
I got the following error message
The PyFstat.cff file that my python script writes reads
When I run the same command line using the fmin = 123.986862, as suggested by the error message, everything works well.
I don't understand why, everything seems correctly set up. The python script that generates this data has the following parameters.
Can you tell me how to set up F0 correctly in the python script so that the error does not occur anymore? Thanks