There will be maintenance performed on git.ligo.org, chat.ligo.org, containers.lig.org, and docs.ligo.org starting at 9am PDT on Tuesday 18th August 2020. There will be an extremely small period of downtime at the start of the maintenance window as various services are restarted. Please address any comments, questions, or concerns to computing-help@igwn.org.

Commit d4a55027 authored by cal's avatar cal

Edits to plotting scripts for calibration checks

parent 993c001a
Pipeline #75722 passed with stages
in 25 minutes and 30 seconds
......@@ -40,7 +40,7 @@ calcs_asd = calcs_data.asd(4, 2, method = 'lal_median_mean')
hoft_asd = hoft_data.asd(4, 2, method = 'lal_median_mean')
if options.analyze_additional_hoft_channel:
additional_hoft_asd = additional_hoft_data.asd(4,2, method = 'lal_median_mean')
additional_hoft_asd = additional_hoft_asd.filter([30]*6, [0.3]*6, 1e-12 / 4e3)
#additional_hoft_asd = additional_hoft_asd.filter([30]*6, [0.3]*6, 1e-12 / 4e3)
#dewhiten CALCS
calcs_asd = calcs_asd.filter([30]*6, [0.3]*6, 1e-12 / 4e3)
......@@ -53,7 +53,7 @@ if options.analyze_additional_hoft_channel:
ax = plot.gca()
ax.set_ylabel('Strain [Hz $^{-1/2}$]', fontname = 'Times', fontsize = 18)
ax.set_xlabel('Frequency [Hz]', fontname = 'Times', fontsize = 18)
ax.legend([r'CAL-DELTAL\_EXTERNAL', r'GDS-CALIB\_STRAIN', r'CAL-CFTD\_DELTAL\_EXTERNAL'], loc='upper right', fontsize='small')
ax.legend([r'CAL-DELTAL\_EXTERNAL', r'GDS-CALIB\_STRAIN', r'DCS-CALIB\_STRAIN'], loc='upper right', fontsize='small')
ax.set_xlim(0.5,8192)
ax.set_ylim(1e-24,1e-16)
plot.save('%s_%s_%s_spectrum_comparison.png' % (options.ifo, start_time, end_time))
......@@ -69,7 +69,7 @@ if options.analyze_additional_hoft_channel:
ax = plot.gca()
ax.set_ylabel('Strain [Hz $^{-1/2}$]', fontname = 'Times', fontsize = 18)
ax.set_xlabel('Frequency [Hz]', fontname = 'Times', fontsize = 18)
ax.legend([r'GDS h(t) ASD / CALCS h(t) ASD', r'CALCS h(t) ASD / CFTD CALCS h(t) ASD', r'GDS h(t) ASD / CFTD CALCS h(t) ASD'], loc='upper right', fontsize='small')
ax.set_xlim(5,5000)
ax.legend([r'GDS h(t) ASD / CALCS h(t) ASD', r'CALCS h(t) ASD / DCS h(t) ASD', r'GDS h(t) ASD / DCS h(t) ASD'], loc='upper right', fontsize='small')
ax.set_xlim(0.5,8192)
ax.set_ylim(0.75, 1.25)
plot.save('%s_%s_%s_ASD_residual.png' % (options.ifo, start_time, end_time))
......@@ -154,7 +154,7 @@ if options.analyze_calcs_hoft:
plot.add_frequencyseries(CALCS_tf, dB=False, color='#4ba6ff', linewidth=2)
if options.analyze_additional_hoft:
plot.add_frequencyseries(additional_hoft_tf*3995.1, dB = False, color="#94ded7", linewidth=2)
plot.legend([r'Reference model response function', r'GDS h(t) derived response function', r'CALCS h(t) derived response function'], loc='upper right', fontsize='x-small')
plot.legend([r'Reference model response function', r'GDS h(t) derived response function', r'CALCS h(t) derived response function', r'DCS h(t) derived response function'], loc='upper right', fontsize='x-small')
# FIXME: Figure out how to make the legend and title appropriate and flexible
plot.maxes.set_yscale('log')
plot.paxes.set_yscale("linear")
......@@ -172,7 +172,7 @@ if options.analyze_calcs_hoft:
plot.add_frequencyseries(ratio_CALCS, dB = False, color='#4ba6ff',linewidth=2)
if options.analyze_additional_hoft:
plot.add_frequencyseries(ratio_additional_hoft*3995.1, dB = False, color="#94ded7", linewidth=2)
plot.legend([r'GDS h(t) derived response / Reference model response', 'CALCS h(t) derived response / Reference model response'], loc='upper right', fontsize='small')
plot.legend([r'GDS h(t) derived response / Reference model response', r'CALCS h(t) derived response / Reference model response', r'DCS h(t) derived response / Reference model response'], loc='upper right', fontsize='small')
plot.maxes.set_yscale('linear')
plot.paxes.set_yscale('linear')
plot.maxes.set_ylim(0,2)
......@@ -183,7 +183,7 @@ if options.analyze_calcs_hoft:
plot.add_frequencyseries(ratio_CALCS, dB = False, color='#4ba6ff',linewidth=2)
if options.analyze_additional_hoft:
plot.add_frequencyseries(ratio_additional_hoft*3995.1, dB = False, color="#94ded7", linewidth=2)
plot.legend([r'GDS h(t) derived response / Reference model response', r'CALCS h(t) derived response / Reference model response'], loc='upper right', fontsize='small')
plot.legend([r'GDS h(t) derived response / Reference model response', r'CALCS h(t) derived response / Reference model response', r'DCS h(t) derived response / Reference model response'], loc='upper right', fontsize='small')
plot.maxes.set_yscale('linear')
plot.paxes.set_yscale('linear')
plot.maxes.set_ylim(.9, 1.1)
......
......@@ -13,6 +13,9 @@ parser.add_option("--ifo", metavar = "name", help = "Interferometer to perform t
parser.add_option("--frame-cache", metavar = "name", help = "Filename for frame cache to be analyzed.")
parser.add_option("--channel-list", metavar = "list", help = "List of channels to be plotted.")
parser.add_option("--front-end-channel-list", metavar = "list", help = "List of channels to be plotted from the front-end.")
parser.add_option("--analyze-additional-hoft", action = "store_true", help = "Set this to analyze an additional h(t) channel.")
parser.add_option("--additional-hoft-frames-cache", metavar = "name", help = "If desired, provide an additional frame cache for a secondary h(t) data stream to be analyzed.")
parser.add_option("--additional-channel-list", metavar = "list", help = "List of channels to be plotted from additional h(t) frames.")
options, filenames = parser.parse_args()
......@@ -28,6 +31,17 @@ if options.channel_list is not None:
else:
raise ValueError('Channel list option must be set.')
if options.analyze_additional_hoft:
additional_channel_list = []
if options.additional_channel_list is not None:
additional_channels = options.additional_channel_list.split(',')
for channel in additional_channels:
additional_channel_list.append((ifo, channel))
plot_additional_hoft = True
else:
plot_additional_hoft = False
front_end_channel_list = []
if options.front_end_channel_list is not None:
front_end_channels = options.front_end_channel_list.split(',')
......@@ -40,6 +54,8 @@ else:
data = TimeSeriesDict.read(options.frame_cache, map("%s:%s".__mod__, channel_list), start = start, end = end)
if plot_front_end:
front_end_data = TimeSeriesDict.fetch(map("%s:%s".__mod__, front_end_channel_list), start = start, end = end)
if plot_additional_hoft:
additional_hoft_data = TimeSeriesDict.read(options.additional_hoft_frames_cache, map("%s:%s".__mod__, additional_channel_list), start = start, end = end)
print(map("%s:%s".__mod__, front_end_channel_list))
......@@ -50,6 +66,8 @@ for n, channel in enumerate(channels):
ax = plot.gca()
if plot_front_end:
ax.plot(front_end_data["%s:%s" % (ifo, front_end_channels[n])])
if plot_additional_hoft:
ax.plot(additional_hoft_data["%s:%s" % (ifo, additional_channels[n])])
ax.set_ylabel('Correction value')
plot.gca().legend()
#title = item
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment