Improve Fscan spec_* codes
Description
This MR improves the Fscan spec_*
codes in two main ways:
- moves a commonly used function to
fscanutils
library so that the function can be used in different Fscan programs - rewrite the
spec_avg
program so that it reads one SFT at a time, potentially making it possible to run a single instance of the program over an entire 2 kHz band over an entire month or more. The program would emit 1 file per subband for the normalized-averaged spectra, but only one file for the spectrogram (full band), and one file for SFT GPS timestamps and one file for human-readable date times for each SFT
Specifically, the following changes in outputs would occur with this MR:
File type | Before | After |
---|---|---|
GPS timestamp file | one | one |
datetime timestamp file | one | one |
Spectrogram file | one | one |
Normalized, averaged spectra file | one | potentially multiple (if subband < f_max - f_min) |
API Changes and Justification
Backwards Compatible Changes
-
This change does not modify any class/function/struct/type definitions in a public C header file or any Python class/function definitions -
This change adds new classes/functions/structs/types to a public C header file or Python module
Backwards Incompatible Changes
-
This change modifies an existing class/function/struct/type definition in a public C header file or Python module -
This change removes an existing class/function/struct/type from a public C header file or Python module
The only function changed is extract_one_sft()
and the only use of this function is within Fscan codes.
Review Status
@ansel-neunzert, @karl-wette, or @david-keitel should review this once it is out of draft.
We should check with @keith-riles to ask if these changes would impact any online production of spectra. The only impact would be if Keith uses lalpulsar_spec_avg
. I believe he does not, since it should be used by Fscan exclusively.
Edited by Evan Goetz