Individual Modules¶
Operations Queue¶
File Writers¶
Low-Level File Writers¶
- ovro_data_recorder.lwahdf.create_hdf5(filename, beam, overwrite=False)¶
Create an empty HDF5 file with the right structure and groups. Returns a h5py.File instance.
- ovro_data_recorder.lwahdf.set_frequencies(f, frequency)¶
Define the frequency setup.
- ovro_data_recorder.lwahdf.set_polarization_products(f, pols, count)¶
Set the polarization products and create a data set for each. Returns a dictionary of data sets keyed by the product name and its numeric index in the input.
- ovro_data_recorder.lwahdf.set_time(f, tint, count, format='unix', scale='utc')¶
Set the integration time in seconds and create a data set to hold the time stamps. Return the HDF5 data set.
Fast Visiblitiy Antenna Mapping Information¶
Power Beam On-the-Fly Reductions¶
- class ovro_data_recorder.reductions.CRCI(time_avg=1, chan_avg=1)¶
Sub-class of
ReductionOperation
that reduces the output to only CR (real(XY) = “cross-hands - real”) and CI (imag(XY) = “cross-hands - imaginary”).
- class ovro_data_recorder.reductions.IQUV(time_avg=1, chan_avg=1)¶
Sub-class of
ReductionOperation
that computes and outputs psuedo-Stokes I, Q, U, and V.
- class ovro_data_recorder.reductions.IV(time_avg=1, chan_avg=1)¶
Sub-class of
ReductionOperation
that computes and outputs psuedo-Stokes I and V.
- class ovro_data_recorder.reductions.ReductionOperation(time_avg=1, chan_avg=1)¶
Base reduction operations that does not change the polarization basis or outputs but can average in time and/or frequency. The averaging values are treated as decimation factors for their respective data axes.
- class ovro_data_recorder.reductions.XXYY(time_avg=1, chan_avg=1)¶
Sub-class of
ReductionOperation
that reduces the output to only XX and YY.
- ovro_data_recorder.reductions.XXYYCRCI¶
alias of
ReductionOperation
Monitoring Threads¶
- class ovro_data_recorder.monitoring.DiskStorageLogger(log, id, directory, quota=None, shutdown_event=None, update_interval=3600)¶
Monitoring class for logging how storage is used by a pipeline and for enforcing a directory quota, if needed.
- main(once=False)¶
Main logging loop. May be run only once with the “once” keyword set to True.
- class ovro_data_recorder.monitoring.GlobalLogger(log, id, args, queue, quota=None, threads=None, gulp_time=None, shutdown_event=None, update_interval_perf=10, update_interval_storage=3600, update_interval_status=20, quota_mode='disk')¶
Monitoring class that wraps
PerformanceLogger
,DiskStorageLogger
/TimeStorageLogger
, andStatusLogger
and runs their main methods as a unit.- main()¶
Main logging loop that calls the main methods of all child loggers.
- class ovro_data_recorder.monitoring.PerformanceLogger(log, id, queue=None, shutdown_event=None, update_interval=10)¶
Monitoring class for logging how a Bifrost pipeline is performing. This captures the maximum acquire/process/reserve times for the pipeline as well as the RX rate and missing packet fraction.
- main(once=False)¶
Main logging loop. May be run only once with the “once” keyword set to True.
- class ovro_data_recorder.monitoring.StatusLogger(log, id, queue, thread_names=None, gulp_time=None, shutdown_event=None, update_interval=10)¶
Monitoring class for logging the overall status of a pipeline. This aggregates other monitoring points of the pipeline and uses that information to compute an overall state of the pipeline.
- main(once=False)¶
Main logging loop. May be run only once with the “once” keyword set to True.
- class ovro_data_recorder.monitoring.TimeStorageLogger(log, id, directory, quota=None, shutdown_event=None, update_interval=3600)¶
Monitoring class for logging how storage is used by a pipeline and for enforcing a time-based directory quota, if needed.
- ..note:: This function assumes the following directory structure:
directory
directory/YYYY-MM-DD
directory/YYYY-MM-DD/HH
directory/YYYY-MM-DD/HH/<data>
Quota managment is done based on the naming of the YYYY-MM-DD and HH directories and deletions are done at the YYYY-MM-DD and HH levels.
- main(once=False)¶
Main logging loop. May be run only once with the “once” keyword set to True.