nb: generic noise budget support
Compare changes
Maintenance will be performed on git.ligo.org, containers.ligo.org, and docs.ligo.org on Tuesday 22 April 2025 starting at approximately 9am PDT. It is expected to take around 30 minutes and there will be several periods of downtime throughout the maintenance. Please address any comments, concerns, or questions to the helpdesk. This maintenance will be upgrading the GitLab database in order to be ready for the migration.
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.