Send questions, comments, and bug reports to Edward Daw , edaw@lsuligo.phys.lsu.edu .
The band limited rms monitor continuously measures the root mean square of data from any fast LIGO data channel. Before the rms measurement is made, the data can be passed through an arbitrary IIR filter. Currently all the filters that are run continously at the sites are IIR, elliptic bandpass types. By fast channel, I mean any channel with a GPS timestamp. Any data collected by an ICS110 or Pentek 6102 ADC unit falls into this category.
This documentation consists of two sections. In the first section, I describe in detail the channels that are currently monitored continously at the Hanford and Livingston sites, and the filters used to process raw data from these channels. In the second section, I give an example of configuring and running a band limited rms monitor at the Hanford site.
At both sites, two instances of blmrs_monitor are run continously. The first instance focuses on lower frequencies, between 0.1 and 30 Hz, important for channels coupled to ground motion. This monitor has the name New_Seis_Blrms at each site. The second instance focuses on frequency bands where we expect that the interferometers should be sensitive to gravitational waves. This monitor has the name IFO_blrms at each site.
The magnitude and phase of the frequency response of the various IIR filters from both instances can be downloaded from http://lsuligo.phys.lsu.edu/edaw/homepage/dmt/IIRresponse.pdf. Each filter is plotted over a wide frequency domain on a log-log scale and over a narrower frequency range on a linear-linear scale. There are 5 filters run under New_Seis_Blrms, with bandwidths 0.1-0.3Hz , 0.3-1Hz, 1-3Hz, 3-10Hz, and 10-30Hz. There are 4 filters run under IFO_blrms, with bandwidths 70-110Hz, 130-170Hz, 190-230Hz, and 800-1200Hz. The rms is calculated for all the filters operating on each channel, so if 9 channels are monitored by New_Seis_Blrms, a total of 9*5 = 45 rms measurements are made by the monitor.For all band limited rms monitor jobs, data is read in in 1 second sections. For each second of filtered data, the sum of the squares of the filtered data bins is measured. For the two blrms_monitor instances running continuously at each site, 60 of these 1 second segments are added together, and the rms calculated, once a minute.
Data is written to the data monitor viewer, and stored in text files on delaronde (LLO) and sand (LHO). At both sites, the path to the data directory is /export/home/ops/monitors/data, in a subdirectory called one of
LLO_ifo_blrms : IFO_blrms at Livingston New_Seis_Blrms: New_Seis_Blrms at Livingston LHO_ifo_blrms: IFO_blrms at Hanford New_Seis_Blrms: New_Seis_Blrms at HanfordThe data is in text format, with files labelled by their rough (unix clock) creation time. The file format is a shell style header (# as comment character) that enumerates the contents of the data columns, followed by the data in tab separated column format. The first column is the gps time.
The following 4 lists show the channels monitored by blrms_monitor at LLO and LHO. The lists were obtained by reading the configuration files. For a full explanation of the configuration files, see section 2. I advise you to check that the lists below still correspond with the contents of the configuration files. The 4 configuration files corresponding to the 4 channel lists are
delaronde.ligo-la.caltech.edu:/export/home/ops/pars/blrmsconfig.conf delaronde.ligo-la.caltech.edu:/export/home/ops/pars/blrms_ifo_LLO.conf sand.ligo-wa.caltech.edu:/export/home/ops/pars/blrmsconfig.conf sand.ligo-wa.caltech.edu:/export/home/ops/pars/blrms_ifo_LHO.conf
The following is a list of channels monitored by New_Seis_Blrms at Livingston.
L0:PEM-LVEA_SEISX L0:PEM-LVEA_SEISY L0:PEM-LVEA_SEISZ L0:PEM-EX_SEISX L0:PEM-EX_SEISY L0:PEM-EX_SEISZ L0:PEM-EY_SEISX L0:PEM-EY_SEISY L0:PEM-EY_SEISZ L1:IOO-MC_F L1:ASC-ITMX_OPLEV_PERROR L1:ASC-ITMX_OPLEV_YERROR L1:ASC-ITMY_OPLEV_PERROR L1:ASC-ITMY_OPLEV_YERROR L1:ASC-ETMX_OPLEV_PERROR L1:ASC-ETMX_OPLEV_YERROR L1:ASC-ETMY_OPLEV_PERROR L1:ASC-ETMY_OPLEV_YERROR L1:ASC-BS_OPLEV_PERROR L1:ASC-BS_OPLEV_YERROR L1:ASC-RM_OPLEV_PERROR L1:ASC-RM_OPLEV_YERROR L1:ASC-MMT3_OPLEV_PERROR L1:ASC-MMT3_OPLEV_YERROR
The following is a list of channels monitored by IFO_blrms at Livingston.
L1:LSC-AS_Q L1:LSC-AS_I L1:LSC-REFL_Q L1:LSC-REFL_I
The following is a list of channels monitored by New_Seis_Blrms at Hanford.
H0:PEM-LVEA_SEISX H0:PEM-LVEA_SEISY H0:PEM-LVEA_SEISZ H0:PEM-MX_SEISX H0:PEM-MX_SEISY H0:PEM-MX_SEISZ H0:PEM-MY_SEISX H0:PEM-MY_SEISY H0:PEM-MY_SEISZ H0:PEM-EX_SEISX H0:PEM-EX_SEISY H0:PEM-EX_SEISZ H0:PEM-EY_SEISX H0:PEM-EY_SEISY H0:PEM-EY_SEISZ
The following is a list of channels monitored by IFO_blrms at Hanford.
H2:LSC-AS_Q H2:LSC-AS_I H2:LSC-REFL_Q H2:LSC-REFL_I
In the following example, I create a monitor to look at two frequency bands, 10-22Hz and 22-96Hz in the channels H1:LSC-REFL_I. and H0:PEM-LVEA_SEISX.
First I create the filters in matlab. Do the 10-22Hz filter first. I choose a power of two that is above 22Hz. How about 32. Taking 32Hz as my nyquist frequency, I design a digital elliptic bandpass filter for data with a sampling rate of 64Hz. I decide to use the matlab ellip filter design tool.
[b,a]=ellip(8,0.5,50,[10/32 22/32]); mysoslowf = tf2sos(b,a); mysoslowf = [mysoslowf(:,1:3),mysoslowf(:,5:6)];Next I make the second filter, choosing 256Hz as my sampling rate so that the Nyquist frequency, 128Hz, is above the upper passband edge.
[b2,a2]=ellip(8,0.5,50,[22/128 96/128]); mysoshighf = tf2sos(b2,a2); mysoshighf = [mysoshighf(:,1:3),mysoshighf(:,5:6)];See matlab help ellip. The second line converts the filter transfer function returned by ellip to a second order section array. The last line removes the 4th column of the array, which is the a0 coefficients that are all equal to 1. blrms_monitor uses the second order section array, with the a0 column removed, to set up the filters. The following matlab code writes a suitable file.
file=fopen('first.filter','w'); fprintf(file,'2\n'); fprintf(file,'22-96Hz\n'); fprintf(file,'256\n'); fprintf(file,'8\n'); fprintf(file,'%.14f\t%.14f\t%.14f\t%.14f\t%.14f\n',mysoshighf'); fprintf(file,'10-22Hz\n'); fprintf(file,'64\n'); fprintf(file,'8'); fprintf(file,'%.14f\t%.14f\t%.14f\t%.14f\t%.14f\n',mysoslowf'); fclose(file);Notice (important) that the filter with the higher sampling frequency appears earlier in the file. The ordering of two filters with the same sampling rate is unimportant. The first number 2 was the number of filters the file contains. For each filter, I enter a text description of the filter action, the filter design sampling rate, and the number of second order sections (the number of rows in the array returned by tf2sos). The last command enters all the second order section coefficients.
Now I have the file first.filter, I construct a configuration file to select the channels. Here is a suitable contents for the file.
2 H1:LSC-REFL_Q H0:PEM-LVEA_SEISX 60 /export/home/edaw/first.filterI save this file as /export/home/edaw/my_blrms.conf. The 2 on the first line is the number of channels, then the channels are listed (the channel order does not matter). The 60 is the number of seconds per rms measurement output. There has to be an integer greater than zero. Finally, the name (or full path to) the filter file you wish to run on the channels in the config file.
Now to run the band limited rms monitor. Make sure you have set up environment variables correctly for the DMT. Best to look at the DMT documentation. Briefly, in tcsh you could type:
setenv DMTHOME "/export/home/dmt" setenv DMTVERSION "pro" source ${DMTHOME}/${DMTVERSION}/bin/setupTo invoke the band limited rms monitor type
blrms_monitor -if my_blrms.conf -of my_data.dat -mons "My_first_blrms"This will start a monitor running on an operator console. To start in the background, use the same command but end with
... -mons "My_first_blrms" >& My_first_blrms.log &For an explanation of the command line arguments, you can type blrms_monitor with no arguments and look at the help. The -if is the name of the config file with the channels in it. The -of is the name of the file to write the data to. The -mons is the name of the monitor that you want to appear on the data monitor viewer in the control room. Make sure you use a unique name !! To stop the monitor, use ps -ef to find the process ID and use kill. Johns robust monitor class detects the kill and quits gracefully.
Note that I have assumed that all the files are in the same directory, and that you are running from that directory. To relax this assumption, put the full path to the file name in each case. Note that you may be wise to put the full path to the filter config file in my_blrms.conf as well.