This experiment deals with measuring the total harmonic distortion (THD) contribution of mixers in a circuit.
(a circuit diagram is attached) where:
Mixer: ZFM-3-S+ at +7dBm
Attenuator: VAT-7+, at +7dB
Low-pass filter: SLP-1.9+, which is set to DC-1.9MHz
The total harmonic distortion can be calculated by the equation:
where Vn represents the voltage of the signal at a certain harmonic n.
In this experiment, only the voltages of the first three harmonics were measured, with the first harmonic at 400Hz, the second at 800Hz, and the third at 1.2kHz. The corresponding voltages were read off the spectrum analyzer after it had time averaged 16 measurements. (picture of the general shape of the spectrum analyzer output is attached)
(results for this mixer's particular configuration are on the pdf attached)
There really isn't that much correlation between the modulations and the resulting THD.
We won't know how good these numbers are until more experiments on other mixers are done, so they can be compared. Since the rest of the mixers are relatively high levels (+17dBm, +23dBm in comparison to this experiment's +7dBm), an RF amplifier will need to be hooked up first to do any further measurements.
Finished calculations for harmonic distortion at each of the 10 outputs of the RF distribution box. The diagram can be found on Suresh's post http://nodus.ligo.caltech.edu:8080/40m/4342
THD calculation consisted of gather data on the dBm at harmonics of the fundamental frequency. These dBm values were converted into units of power and plugged into the appropriate THD equation pulled from Wikipedia:
On the table, the number 1-6 correspond to the harmonic number of the input frequency used. For example, the first five PD's listed used an 11MHz source, while the second set of five PD's listed used a 55MHz source. Values listed under certain harmonics are dBm measurements at the corresponding frequency. The P-subscript values are essentially the dBm measurements converted to units of power (Watts) for ease of calculation in the equation above. THD is then calculated using these power units; I have converted the ratios to percentages.
It should be noted that as with all THD calculations, the more data points collected, the more precise the THD % will be.
By the way, the outputs on the physical RF distribution box for REFL165 and AS165 are actually labeled as REFL166 and AS166.
We want to increase gain in the lower frequencies, so a circuit must be designed (a passive low pass filter).
First, measurements were taken at the X arm for impedance and capacitance, which were 104.5kOhms and 84.7pF respectively. Kiwamu decided to make the circuit resemble a voltage divider for ease of calculation, such that Vout/Vin would be a ratio of some values of the equivalent circuit reactance values. After a few algebra mistakes, this Vout/Vin value was simplified in terms of the R, C measured and the R', C' that would be needed to complete the circuit.
Since the measured C was very small and the measure R was fairly high, the simplified form allowed us to pick values of R' and C' that would make the critical frequency occur at 0.1Hz: set the R' resistance to 1MOhm and C' capacitance to 10uF, which would yield a gain ~1.
With these values a circuit we can start actually making the circuit.
[Steve, Suresh, Larisa]
The following cables were laid today: ETMYT, ETMY, IFOPO, MC1, OMCR, AS Spare, and MC2T.
Though the paper suggested 135' for the MC2T, we used a 110'. This is too short: need at least another 15' for the MC2T.
The RCR cable wasn't crossed off on the list, but a cable exists at the RCR cable which is black and is labeled (old label, 75 ohms)
There was no indication of which length was needed for MC1, so a 95' cable was used.
This is the continuation of http://nodus.ligo.caltech.edu:8080/40m/4402
The first picture is of the actual component, where the resistor is 1M and capacitor is 10uF.
But before the component can be put into place, its transfer function had to be checked to make sure it was doing what we calculated it would do. The results of these are in the graphs generated: frequency vs. gain, and frequency vs. phase.
According to these graphs, we are not achieving the targeted cutoff frequency: need to recalculate and compensate for the extra 100k resistance being encountered.
[Steve, Suresh, Kiwamu, Larisa]
Only the PRM/BS cable was laid today.
In one of the previous updates on cable laying, it was noted that the MC2 cable needed an additional 10' and the MC2T needed an additional 15' to reach their destinations. We cut and put BNC ends on 10' and 15' cables and connected them to the original cables in order to make them long enough.
This concludes the laying of new cables. Suresh is currently working on the QUADs...
[Steve, Kiwamu, Larisa]
Having finished laying new cable last week, we moved on to connecting those on PSL table and AP table.
--RCR, RCT, PMCR (all three are blue)
--OMCR (blue cable, ***now has a camera***), PMCT, IMCR, REFL, AS (white cable), OMCT (***now has camera***)
Unless otherwise noted, the cables are black on the AP table. Also on the AP table: cables were connected directly to the power source.
The wiki has been updated accordingly.
Steve noted that MC2T and POP cameras are not there.
The following Video MUX inputs(cameras) and outputs(monitors) have been checked:
MC2F, FI, AS Spare, ITMYF, ITMXF, ETMYF, ETMXF, PSL Spare, ETMXT, MC2T, POP, MC1F/MC3F, SRMF, ETMYT, PRM/BS, CRT1(MON1), ETMY Monitor, CRT2(MON2), CRT4(MON4), MC1 Monitor, CRT3(MON3), PSL1 Monitor, PSL2 Monitor, CRT6(MON6), CRT5(MON5), ETMX Monitor, MC2 Monitor, CRT9, CRT7(MON7), CRT10, and Projector.
Their respective statuses have been updated on the wiki: (wiki is down at the moment, I will come back and add the link when it's back up)
Plotting the data points yielded by the spec analyzer of my first LPF yielded a result that was not expected: the desired cutoff frequency wasn't achieved because of some extra 100k resistance that wasn't taken into consideration. (see here ). I have redrawn the Bode graphs for this configuration so that it is easier to see that it is wrong (first attachment)
After some calculation adjustments, it was found that the capacitor value could remain at 10uF, but the resistance needed to be changed to 100k to maintain a gain of 0.5 and critical frequency at 0.1Hz. Second attachment is the Bode graph that results from this configuration.
Note: Bode graphs are both in Log-Linear scales (Wikipedia said so)
I was charge with making a Non-Inverting Op Amp Low Pass Feedback circuit for Jenne, which may somehow be integrated into a seismometer project she's working on.
Circuit diagram is attached. Calculations show that R1, R2 and C have the following relationship: if R1=10^n, R2=10^(n+1), C=10^(-n-4). For the particular circuit being modeled by the transfer function, R1=100 Ohm, R2=1k Ohm, and C=1uF.
Attached also is the circuit's Bode plot, showing frequency versus gain and phase, respectively. The frequency versus gain graph is true to what the circuit was calculated to generate: a gain of +20 and a cutoff frequency at 200Hz. Not sure what's going on with the frequency verus phase plot.
This is a continuation of this
The low pass filter is finally acceptable, and its Bode graph is below (on a ~3Hz frequency span that shows the cutoff frequency is at 0.1Hz)
Building on what was posted previously
The configuration has now evolved into an Inverting Op Amp Feedback Low Pass Filter circuit.
Had to change out some components to satisfy conditions: R1=1k Ohm, R2=10k Ohm, C=0.1uF. These were changed in order to decrease the magnitude of the current passing through the op amp by a factor of 10 (10V supplied through the R1 resistor yields about 10mA). The configuration itself was changed from non-inverting to inverting in order to get the frequency vs. gain part of the Bode plot to continue to decrease across higher frequencies instead of leveling off around 4kHz.
Having finished the bulk of the work for the LPF itself ( see here ), I have begun trying to design the seismometer box to Jenne's specifications.
Currently looking into what the voltage buffer amplifier might look like for this.
Suggestions/corrections would be much appreciated!
The schematic for the seismometer box from this last time has been updated...
Koji was helpful for coming up with a general diagram for the voltage buffer amplifier, which has now been added to the configuration pictured below.
The only thing that remains now before I try to plot it with Eagle/LISO is to pick an op amp to use for the voltage buffer itself. Someone suggested THS4131 for that (upon Googling, it hit as a "high speed, low noise, fully-differential I/O amplifier"). It looks good, but is it the best option?
(Continuation of this)
I plugged the circuit into the LISO program to generate the graphs below....the first graph is a plot of frequency (f, in Hz) versus gain (in dB), and frequency (f, Hz) versus phase (in degrees). Also included is the second graph, which is a noise plot of all circuit parts which contribute to the total noise of the circuit.
The only issue I had was that two of the op amps I'd picked (see third attachment for the original circuit diagram) for the circuit were not in LISO's op amp library. So I replaced THS4131 (from the voltage buffer part) and AD826 (from the ADC driver part) with AD797 and LT1037, respectively in order to generate the plots below....
There are notes calling the AD797 "ultra low noise, low distortion", whose data sheet can be found here: AD797
Notes also call LT1037 "low noise, high speed precision op amp", whose data sheet can be found here: LT1037
I've put these in temporarily only, as I don't know if they are appropriate choices for the job or even if we have them. Suggestions?
(continuation of this)
Here are the transfer function and noise plots of the seismometer box, using the op amps that are actually indicated on the original plan (THS4131, AD826). I added them to the LISO op amp library (can be found in /cvs/cds/caltech/apps/linux64/liso/filter/opamp.lib)
Next step is to compare the noise graph below to the seismic noise curve of the interferometer to verify that the seismometer box configuration won't affect the curve...
The noise graphs relating total noise of the Seismometer circuit (GURALP stuff) to the LIGO seismic noise curve have been completed started.
I apparently harbor hate towards Matlab (you may have notice I do everything in Mathematica)....I will try to change my ways DX
Attached is an example script showing how to access 40m data remotely. The only two nonstandard python modules you need are the nds2 client module and astropy (used for time conversion). For mac users, both of these are available via macports (nds2-client and, e.g. py27-astropy). Otherwise, check out their websites:
The cert for nodus has been renewed for another 2 years.
The following is the basic procedure for getting a new cert: (Note certs are only good for two years as of 2018)
openssl req -sha256 -nodes -newkey rsa:2048 -keyout nodus.ligo.caltech.edu.key -out nodus.ligo.caltech.edu.csr
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:CaliforniaLocality Name (eg, city) :Pasadena
Organization Name (eg, company) [Internet Widgits Pty Ltd]:California Institute of Technology
Organizational Unit Name (eg, section) :LIGO
Common Name (eg, YOUR name) :nodus.ligo.caltech.edu
Leave the e-mail address, challenge password and optional company name blank. A new private key will be generated.
chown root nodus.ligo.caltech.edu.key
chgrp root nodus.ligo.caltech.edu.key
chmod 0600 nodus.ligo.caltech.edu.key
The nodus.ligo.caltech.edu.csr file is what is sent in for the cert.
This file should be sent to either email@example.com or firstname.lastname@example.org and copy email@example.com.
A URL llink with the new cert to be downloaded will be sent to the requestor.
Once the files are downloaded, the new cert and intermediate cert, they can be copied and renamed.
The PEM-encoded host certificate by itself is saved at:
The nodus.ligo.caltech.edu.key file should be in the same directory or whichever directory is indicated in the ssl.conf located in /etc/httpd/conf.d/ directory.
httpd will need to be restarted in order for it to see the new cert.
On February 5, 2020, the Dell engineering workstation located in the 40M lab, was replaced with a newer Engineering workstation, per a request from Koji . The new workstation should perform a good deal better over the older unit. It has more cores, more memory and a better video card. Since this unit is being used by the 40M group, the Comsol s/w pkg. was also installed on the unit.
During the computer swap, Koji had a problem with a print job and it was discovered the bottom tray of the HP5550 printer was broken. The broken tray was replaced from another unit that was being disposed of.
Updated the cert in /etc/httpd/ssl. The new cert is good until March 12, 2022.
Here are the free-swinging spectra for the BS, ETMX, ETMY, ITMX, ITMY, MC1, MC2, MC3, and PRM chambers. Kiwamu left the suspensions free for 5 hours this weekend, starting at Sat Apr 30 00:15:26 2011.
This is GPS time 988 182 941. Quick tip: you can do local to GPS time conversions using lalapps_tconvert, which is a lot like tconvert but with special powers. It is installed on pianosa.
$ lalapps_tconvert Sat Apr 30 00:15:26 2011
I generated these figures with the attached Python script, measure.py.
Notice that the C1:SUS-ITMX_SENSOR_UL and C1:SUS-MC3_SENSOR_UL spectra fall as 1/f. Jenne suggested that this might indicate that there is a loose electrical connection.
Also, notice that C1:SUS-ETMY_SENSOR_LR, C1:SUS-ITMY_SENSOR_LL, and C1:SUS-PRM_SENSOR_SIDE are a lot noisier above 10 Hz.
I uninstalled gstreamer-devel and gst-plugins-base-devel on Rosalba. Here is the command I ran:
$ sudo yum remove gstreamer-devel gstreamer-plugins-base-devel
Actually, I had installed these myself a few days earlier, before I knew that I should be recording such changes in the elog. I'm sorry!
I installed the package x264-devel on allegra.martian. This package provides headers and libraries for the popular h264 video codec. I am going to use this in the GStreamer streaming media server on Allegra.
I installed nds2-client-devel on rossa using the following command:
$ sudo yum install nds2-client-devel
I installed git on rossa using:
$ sudo yum install git
I installed the following packages on rossa:
numpy, ipython, matplotlib, python-matplotlib
I installed the Python bindings for sqlite on Allegra using
$ sudo yum install python-sqlite python-sqlite2
I installed the following packages on Graphviz in order to support visualization of GStreamer pipeline graphs:
I installed 'glue' on Rossa, Allegra, and Rosalba. This is a Python module that includes a facility for LIGO_LW XML files. Oddly, I couldn't find the glue package on Pianosa.
I am tuning the notch filters for the bounce modes in the suspensions, starting with the ITMs and ETMs. I'll do the MCs, the PRMs, and the SRMs next.
I noticed that the filter for ITMX (in the file C1SUS.txt, the module ITMX_SUSPOS, the selection BounceRoll) that the filter was composed of two bandstops (and a constant gain). It looked like this:
Valera said that one of these was for the roll mode and the other for the bounce mode. However, looking at the spectra that Kiwamu and I made this week, I don't perceive a resonance between 11.4 and 12.2 Hz. So, we're taking a guess that this was for a mode that has moved due to new pendulum designs. For many of the suspensions, in the free swinging test we noticed a line around 23 Hz; we thought we might as well re-use one of these elliptical filters to avoid exciting this line. Of course, if this line does *not* result from excitation of an uncontrolled degree of freedom, this will not help and could be detrimental. When we talk to Valera again, we can review this decision and at that point we might decide just to take out that bandstop.
ITMX is done. I'll continue tomorrow. I've attached closed-loop spectra for before the tuning (itmx-before.pdf) and after (itmx-after.pdf).
(Update: the following day, I took closed loop spectra with (itmx-withbounceroll.pdf) and without (itmx-nobounceroll.pdf) the bandstops. It looks like the bandstops made the bounce mode slightly worse, but the roll mode slightly better.)
I tuned the ITMY bandstops -- 'before' and 'after' spectra attached. Note that the after the tuning, the bounce mode at ~16 Hz is about twice as quiet!
However, notice that in the 'before' plot the roll mode at about 23.5 Hz did not show up at all, whereas it is quite prominent in the 'after' plot. I was concerned that this line could have been a result of placing the bandstop there, so I made another plot with the BounceRoll filter turned off. Sure enough, the 23.5 Hz line is still there. So I'm not crazy: the roll mode did start acting up at some time between my 'before' and 'after' plot, but not as a result of the tuning.
I fixed diaggui on pianosa. Previously, it was not able to start because it depended on libreadline5, whereas Ubuntu distributed libreadline6. Now pianosa has both libreadline5 and libreadline6, so diaggui works.
I tuned the bounce and roll mode bandstops for ETMY, although it was difficult for me to tell if there was improvement with the bandstops on relative to the bandstops off because it seemed like the bounce and roll modes were being excited intermittently. I'll take spectra with the filters both on and off during an evening next week.
At the suggestion of Rana and Koji, I have worked out some design parameters for a Stewart platform to be used as a vibration isolation device or as a platform for characterization of suspensions. I have made some initial guesses about the following design requirements:
From these assumptions, I have worked out:
The combination of high force, high speed, and ~micron travel limits seems to point to piezoelectric actuators. PI's model P-225.80 would meet the peak push-pull force requirement, but I have not yet determined if it would meet the bandwidth requirement. Apparently, typical piezoelectric actuators can exert a greater push force than pull force; wonder if one could use an actuator with a smaller force range than the P-225.80 if the actuator is biased by compression. (Is this what is meant by a "preloaded" actuator?)
I have attached a PDF explaining how I worked out the actuator force and platform dimensions. (I'll try to dice up this PDF and put the contents in the Wiki.) I also have a plant model in MATLAB with which I have been playing around with control schemes, but I don't think that this is ready to show yet.
Here are some tasks that still remain to be done for this preliminary case study:
I'd like to ask for input principally on:
Edit: I also added a Mathematica notebook with the inverse kinematics (mapping from platform state to leg lengths) of the platform.
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 8.0' *)
(* Internal cache information:
I checked on the two single-axis shakers that are present at the 40m that Steve pointed out:
Neither of these meet the force requirement of 2.04 kN peak.
This may or may not be general knowledge already, but Jamie and I added a HowTo explaining how to retrieve channel data from the frame builder via NDS, but off site on one's own computer. See the Wiki page:
I am trying to stitch together spectra from seismometers and accelerometers to produce a ground motion spectrum from Hz to 100's of Hz. I was able to retrieve data from two seismometers, GUR1 and STS_1, but not from any of the accelerometers. The GUR1 spectrum is qualitatively similar to other plots that I have seen, but the STS_1 spectrum looks strange: the X axis spectrum is falling off as ~1/f, but the Y and Z spectra are pretty flat. All three axes have a few lines that they may share in common and that they may share with GUR1.
See attached plot.
I can't create a new page on the 40m wiki. The page that I was trying to create is
I get this message when I try to save the new page:
Page could not get locked. Unexpected error (errno=13).
Below are revised design parameters for the Stewart platform based on ground motion measurements.
The goal is that the actuators should be able to exceed ground motion by a healthy factor (say, two decades in amplitude) across a range from about .1 Hz to 500 Hz. I would like to stitch together data from at least two seismometers, an accelerometer, and (if one is available) a microphone, but since today this week I was only able to retrieve data from one of the Guralps, I will use just that for now.
The spectra below, spanning GPS times 1010311450--1010321450, show the x, y, and z axes of one of the Guralps. Since the Guralp's sensitivity cuts off at 50 Hz or so, I assumed that the ground velocity continues to fall as f-1, but eventually flattens at acoustic frequencies. The black line shows a very coarse, visual, piecewise linear fit to these spectra. The corner frequencies are at 0.1, 0.4, 10, 100, and 500 Hz. From 0.1 to 0.4 Hz, the dependence is f-2, covering the upper edge of what I presume is the microseismic peak. From 0.4 to 10 Hz, the fit is flat at 2x10-7 m/s/sqrt(Hz). Then, the fit is f-1 up to 100 Hz. Finally, the fit remains flat out to 500 Hz.
Outside this band of interest, I chose the velocity requirement based on practical considerations. At high frequencies, the force requirement should go to zero, so the velocity requirement should go as f--2 or faster at high frequencies. At low frequencies, the displacement requirement should be finite, so the velocity requirement should go as f or faster.
The figure below shows the velocity spectrum extended to DC and infinite frequency using these considerations, and the derived acceleration and displacement requirements.
As a starting point for the design of the platform and the selection of the actuators, let's assume a payload of ~12 kg. Let's multiply this by 1.5 as a guess for the additional mass of the top platform itself, to make 18 kg. For the acceleration, let's take the maximum value at any frequency for the acceleration requirement, ~6x10-5 m/s2, which occurs at 500 Hz. From my previous investigations, I know that for the optimal Stewart platform geometry the actuator force requirement is (2+sqrt(3))/(3 sqrt(2))~0.88 of the net force requirement. Finally, let's throw in as factor of 100 so that the platform beats ground motion by a factor of 100. Altogether, the actuator force requirement, which is always of the same order of magnitude as the force requirement, is
(12)(1.5)(6x10-5)(0.88)(100) ~ 10 mN.
Next, the torque requirement. According to <http://www.iris.edu/hq/instrumentation_meeting/files/pdfs/rotation_iris_igel.pdf>, for a plane shear wave traveling in a medium with phase velocity c, the acceleration a(x, t) is related to the angular rate W'(x, t) through
a(x, t) / W'(x, t) = -2 c.
This implies that |W''(f)| = |a(f)| pi f / c,
where W''(f) is the amplitude spectral density of the angular acceleration and a(f) of the transverse linear acceleration. I assume that the medium is cement, which according to Wolfram Alpha has a shear modulus of mu = 2.2 GPa and about the density of water: rho ~ 1000 kg/m3. The shear wave speed in concrete is c = sqrt(mu / rho) ~ 1500 m/s.
The maximum of the acceleration requirement graph is, again, 6x10-5 m/s2 at 500 Hz.. According to Janeen's SolidWorks drawing, the largest principal moment of inertia of the SOS is about 0.26 kg m2. Including the same fudge factor of (1.5)(100), the net torque requirement is
(0.26) (1.5) (6x10-5) (100) pi (500) / (1500) N m ~ 2.5x10-3 N m.
The quotient of the torque and force requirements is about 0.25 m, so, using some of my previous results, the dimensions of the platform should be as follows:
radius of top plate = 0.25 m,
radius of bottom plate = 2 * 0.25 m = 0.5 m, and
plate separation in home position = sqrt(3) * 0.25 m = 0.43 m.
One last thing: perhaps the static load should be taken up directly by the piezos. If this is the case, then we might rather take the force requirement as being
(10 m/s2)(1.5)(12 kg) = 180 N.
An actuator that can exert a dynamic force of 180 N would easily meet the ground motion requirements by a huge margin. The dimensions of the platform could also be reduced. The alternative, I suppose, would be for each piezo to be mechanically in parallel with some sort of passive component to take up some of the static load.
I had been thinking of using this flexure for the bearings for the leg joints, but I finally realized that it was not the right type of bearing. The joints for the Stewart platform need to be free to both yaw and pitch, but this bearing actually constrains yaw (while leaving out-of-plane translation free).
[Koji, Jenne, Manasa, Annalisa, Rana, Nic]
Trying to take an image or movie of the ETMY Transmon cam, we got instead this attached image.
I think it is just some scattered green light, but others in the control room think that it is a message from somewhere or someone...
It is not an angel, it is clearly a four leaf clover (also known as "quadrifoglio"). It is very rare, it brings good luck!
Very nice!! I was wondering, shouldn't the driving matrix be such that MICH pushes on SRM as well?
This week, the other SURF students and I got acquainted with the caltech campus, LIGO 40m lab and the expectations of the SURF program. We went to a lot of safety meetings and lectures that established a framework for the jobs we will be doing over the course of the summer. I went on several tours of the 40m interferometer (one each with Jenne, Jamie and Steve) to get an overview of the layout and specifics of the setup. I read parts of R. Ward and A. Parameswaran's theses and Saulson's book in order to prepare myself and gain a broader understanding of the purpose of LIGO.
I also began working in Python this week, primarily graphing PSDs of data from the C1:SUS-ETMY_SENSOR_LR, C1:SUS-ETMY_SENSOR_LL, C1:SUS-ETMY_SENSOR_UR, and C1:SUS-ETMY_SENSOR_UL channels. I will eventually be using Python to generate the plots for the summary pages, so this is good practice. The code that I have been working on can be found in /users/elizabeth.davison/script5.py. Additionally, I have been going through the G1 summary pages and attempting to understand the plots available on them and the code that is available.
My plans for the upcoming week begin with modifying my code and potentially calibrating the channel data so that it is in units of length instead of counts. I will also access the code from the G1 pages and go over it in depth, hopefully gaining insight into the structure of the website.
I have been working on configuration of the Daily Summary webpages and have been attempting to create a "PSL health" page. This page will display the PMC power, the temperature on the PSL table and the PSL table microphone levels. Thus far, I have managed to make the extra PSL tab and configure the graph of the interior temperature, using channel C1:PSL-FSS_RMTEMP.
I have been attempting to make a spectrogram for one of the PMC channels, but there is an issue with the spectrogram setup, as Duncan Macleod noted in ELOG 6686:
"At the moment a package version issue means the spectrogram doesn't work, but the spectrum should. At the time of writing, to use the spectrum simple add 'plot-dataplot2'."
Because of this issue, I have also been trying to make the spectrogram plots work. Thus far, I have fixed the issue with one of the spectrogram plots, but there are several problems with the other four that I need to address. I have also been looking at the microphone channels and trying to make the plot for them work. I checked which microphone was on the PSL table and plotted it in matplotlib to make sure it was working. However, when I tried to incorporate it into the daily summary pages, the script stops at that point! It might simply be taking an excessively long time, but I have to figure out why this is the case.
(I am using channel C1:PEM-MIC_6_IN1_DQ, if this is blatantly wrong, please let me know!!)
The main point of this ELOG is that I have working test-daily summary pages online! They can be found here:
Also, if anyone has more requests for what they would like to see on the finalized summary pages site, please respond to this post or email me at: firstname.lastname@example.org
Over the past week, I have been focusing on the issues I brought up in my last ELOG, 6956. I spent quite a while attempting to modify the script and create my own spectrogram function within the existing code. I also checked out the channels on the PSL table for the PSL health page and produced a spectrogram plot of the PMC reflected, transmitted, and input powers, the PZT Voltage and the laser output power. When I was entering these channels into the configuration script, I came across an issue with the way the python script parses this. If there were spaces between the channel names (for example: C1:PSL-PMC_INPUT_DC, C1:PSL-PMC_RFPDDC... etc) the program would not recognize the channels. I made some alterations to the parsing script such that all white spaces at the beginning and end of the channels were stripped and the program could find them.
The next thing that I worked on was attempting to see if the microphone channels were actually stopping the program or just taking an extraordinarily long time. I tried running the program with shorter time samples and that seemed to work quite well! However, I had to leave it running overnight in order to finish. I am sure that this difference comes from the fact that the microphone channels are fast channels. I would like to somehow make it run more quickly, and am thinking about how best to do this.
I finally got my spectrogram function to work after quite a bit of trouble. There were issues with mismatched data and limit sets that I discovered came from times when only a few frames (one or two) were in one block. I added some code to ignore small data blocks like those and the program works very well now! It seems like the best way to get the right limits is to let the program automatically set the limits (they are nicely log-scaled and everything) but there are some issues that produce questionable results. I spent a while adding a colormap option to the script so that the spectrogram colors can be adjusted! This mostly took so long because, on Monday night, some strange things were happening with the PMC that made the program fail (zeros were being output, which caused an uproar in the logarithmic data limits). I was incredibly worried about this and thought that I had somehow messed up the script (this happened in the middle of when I was tinkering with the cmap option) so I undid all of my work! It was only when I realized it was still going on and Masha and Jenne were talking about the PMC issues that I figured out that it was an external issue. I then went in and set manual limits so that a blank spectrogram and redid everything.
The spectrogram is not operational and the colormap can be customized. I need to fix the problem with the autoscaled axes (perhaps adding a lower bound?) so that the program does not crash when there is an issue.
Yesterday, I spoke with Rana about what my next step should be. He advised me to look at ELOGs from Steve (6678) and Koji (6675) about what they wanted to see on the site. These gave me a good map of what is needed on the site and where I will go next.
I need to find out what is going on with the weather channels and figure out how to calibrate the microphones. I will also be making sure there are correct units on all of the plots and figure out how to take only a short section of data for the microphone channels. I have already modified the tab template so that it is similar to Koji's ELOG idea and will be making further changes to the layout of the summary pages themselves. I will also be working on having the right plots up consistently on the site.