nb: generic noise budget support
This patch provides a new nb sub-module that defines classes for managing and calculating noise budgets. It provides the following overridable classes:
nb.Calibration A noise calibration
nb.Noise A noise source
nb.Budget A budget of noises
The Budget class includes a calc_trace() method that will return a traces dictionary that includes data and trace plot styling for every noise term in the budget recursively.
The existing included interferometers are updated to define their budgets using this new interface, and the plot_noises function is updated to accept the new traces dictionary.
An HDF5_SCHEMA describes how trace dictionaries are encoded into HDF5 files. The new io module includes functions for writing traces to HDF5 files, and for reading traces stored in this format.
The command line interface is updated to handle this new structure.
Merge request reports
Activity
There's a proposed v2 of the HDF5 schema here, with revisions for hierarchical structure and tagging of noise curves: https://git.ligo.org/NoiseBudget/nbweb/blob/master/HDF5_SCHEMA.md
@lee-mcculler Would love your review if you get a chance.
Here's an example of a noise budget that uses this implementation:
https://git.ligo.org/NoiseBudget/aligoNB/tree/master/aligoNB/H1
Edited by Jameson Rollinsadded 8 commits
-
4de3e725...129380a9 - 3 commits from branch
gwinc:master
- 0f2aa828 - Remove matlab interface from command line.
- 7370169b - convenience load_struct() function to load a Struct from yaml or mat file
- ef2ba4a9 - make available_ifos() function available at top level
- 1ae0f5cb - Remove displacement plotting, and ifo argument, from plot_noise
- 870a7a7f - new nb noise budget module
Toggle commit list-
4de3e725...129380a9 - 3 commits from branch
@evan.hall @christopher.wipf I've done some more cleanup and tweaking of this branch, hopefully simplifying the interface a tiny bit. I updated the README so it should work as described now. Please have a look. If you guys still think everything looks good I'll merge tomorrow.
mentioned in issue #10 (closed)