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, and StatusLogger 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.

Control Interface