Commit 9ab3e5d1 authored by Daniel Brown's avatar Daniel Brown

updating error signals plotting

parent 6716c81d
......@@ -819,19 +819,10 @@ def make_kat(name="design", katfile=None, verbose = False, debug=False, use_RF_D
kat.IFO.POP_f2 = Output(kat.IFO, "POP_f2", "nPOP", "f2", phase=13)
kat.IFO.REFL_f1 = Output(kat.IFO, "REFL_f1", "nREFL", "f1", phase=101)
kat.IFO.REFL_f2 = Output(kat.IFO, "REFL_f2", "nREFL", "f2", phase=14)
# If we don't have an OMC then we need to attach
# directly to the AS node. Otherwise use OMC refl
if "OMC" in kat.getBlocks():
alt_nAS = "nAS"
nAS_RF = "nOMC_ICb"
alt_nAS = None
nAS_RF = "nAS"
kat.IFO.AS_f1 = Output(kat.IFO, "AS_f1", nAS_RF, "f1", phase=101, alternate_node_name=alt_nAS)
kat.IFO.AS_f2 = Output(kat.IFO, "AS_f2", nAS_RF, "f2", phase=14, alternate_node_name=alt_nAS)
kat.IFO.AS_f36 = Output(kat.IFO, "AS_f36", nAS_RF, "f36M", phase=14, alternate_node_name=alt_nAS)
kat.IFO.AS_f1 = Output(kat.IFO, "AS_f1", "nSRM2", "f1", phase=101)
kat.IFO.AS_f2 = Output(kat.IFO, "AS_f2", "nSRM2", "f2", phase=14)
kat.IFO.AS_f36 = Output(kat.IFO, "AS_f36", "nSRM2", "f36M", phase=14)
kat.IFO.AS_DC = Output(kat.IFO, "AS_DC", "nAS")
kat.IFO.POW_BS = Output(kat.IFO, "PowBS", "nPRBS*")
......@@ -79,7 +79,8 @@ def pretuning_powers(self, _kat, xlimits=[-10,10]):
def error_signals(_kat, xlimits=[-1,1], DOFs=None, plotDOFs=None,
replaceDOFSignals=False, block=True, fig=None, label=None, steps=100):
replaceDOFSignals=False, block=True, fig=None, label=None, steps=100,
Displays error signals for a given kat file. Can also be used to plot multiple
DOF's error signals against each other for visualising any cross coupling.
......@@ -92,7 +93,8 @@ def error_signals(_kat, xlimits=[-1,1], DOFs=None, plotDOFs=None,
replaceDOFSignals: Bool, replaces already present signals for any DOF if already defined in kat. Regardless of this value, it will add default signals if none found.
fig: figure, uses predefined figure, when defined it won't be shown automatically
label: string, if no plotDOFs is defined this legend is shown
verbose: prints more output about what's happening, e.g. what commands are getting added
import pykat
from pykat.gw_detectors import ifo
......@@ -119,7 +121,9 @@ def error_signals(_kat, xlimits=[-1,1], DOFs=None, plotDOFs=None,
# add in signals for those DOF to plot
for _ in dofs:
if replaceDOFSignals and not hasattr(kat, _.signal_name()):
if replaceDOFSignals:
if verbose:
print(, "PD COMMAND", _.signal())
toShow = None
......@@ -161,7 +165,8 @@ def error_signals(_kat, xlimits=[-1,1], DOFs=None, plotDOFs=None,
scan_cmd = scan_optics_string(d.optics, d.factors, "scan", linlog="lin",
xlimits=np.multiply(d.scale, xlimits), steps=steps,
axis=1, relative=True)
if verbose:
print(, "SCAN COMMAND", scan_cmd)
kat.parse(scan_cmd, addToBlock="SCAN")
out =['-cr=on'])
......@@ -187,7 +192,7 @@ def error_signals(_kat, xlimits=[-1,1], DOFs=None, plotDOFs=None,
ax.set_xlabel("{} [deg]".format(
if plotDOFs is None:
ax.set_ylabel('{} [W] '.format(
ax.set_ylabel('{} {} [W] '.format(, d.quad))
ax.set_ylabel('Error signal [W]')
......@@ -12,7 +12,7 @@ text.usetex : False
axes.grid : True
axes.formatter.useoffset : False
axes.formatter.use_locale : False
axes.prop_cycle : cycler('color', ['0000FF', 'FF0000', '000000', '00FF00', 'FF00FF'])
axes.prop_cycle : cycler('color', ['b', 'r', 'k', 'g', 'c', 'm', 'y'])
axes.axisbelow : True
axes.xmargin : 0
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