From 6be45640c54f6dc30942d5a54be406b84e207a98 Mon Sep 17 00:00:00 2001 From: Bernardo Carvalho Date: Thu, 9 May 2024 12:21:08 +0000 Subject: [PATCH] changed to decimated integrals Signed-off-by: Bernardo Carvalho --- Analysis/calcDriftMds.py | 55 ++++++++++++++++++++++------------------ Analysis/pyqtPlotMds.py | 33 ++++++++++++++---------- 2 files changed, 50 insertions(+), 38 deletions(-) diff --git a/Analysis/calcDriftMds.py b/Analysis/calcDriftMds.py index 2f5bc1b..ec616f7 100755 --- a/Analysis/calcDriftMds.py +++ b/Analysis/calcDriftMds.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """ This script plots the MARTe2 ATCAIop samples stored in MDSplus -All of the plots may be panned/scaled by dragging with +All of the plots may be panned/scaled by dragging with the left/right mouse buttons. Right click on any plot to show a context menu. """ import numpy as np @@ -9,16 +9,17 @@ import numpy as np from MDSplus import Tree import argparse -ADC_CHANNELS = 14 # channels stored in ISTTOK +ADC_CHANNELS = 14 # channels stored in ISTTOK DECIM_RATE = 200 MDSTREENAME = 'rtappisttok' + def main(args): mdsPulseNumber = args.shot try: - if(mdsPulseNumber > 0): + if (mdsPulseNumber > 0): tree = Tree(MDSTREENAME, mdsPulseNumber) else: tree = Tree(MDSTREENAME) @@ -26,52 +27,58 @@ def main(args): tree.close() tree = Tree(MDSTREENAME, mdsPulseNumber) - except: - print(f'Failed opening {MDSTREENAME} for pulse number {mdsPulseNumber:d}') + except Exception: + print(f'Failed opening {MDSTREENAME} for pulse number ' + + f'{mdsPulseNumber:d}') exit() - print(f'Openpening {MDSTREENAME} for pulse number {mdsPulseNumber:d}') + print(f'Opening {MDSTREENAME} for pulse number {mdsPulseNumber:d}') # add plt.addLegend() BEFORE you create the curves. -#mdsNode = tree.getNode("ATCAIOP1.ADC0RAW") -#dataAdc = mdsNode.getData().data() -#timeData = mdsNode.getDimensionAt(0).data() - start = args.crange[0] -1; stop = args.crange[1] -#for i in range(args.crange[0], args.crange[1]): +# mdsNode = tree.getNode("ATCAIOP1.ADC0RAW") +# dataAdc = mdsNode.getData().data() +# timeData = mdsNode.getDimensionAt(0).data() + # start = args.crange[0] - 1 + # top = args.crange[1] +# for i in range(args.crange[0], args.crange[1]): meanD = np.zeros(ADC_CHANNELS, dtype=int) driftW = np.zeros(ADC_CHANNELS) total_samples = 0 for i in range(ADC_CHANNELS): mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}RAW") dataAdc = mdsNode.getData().data() - meanD[i] = np.mean(dataAdc[:,0]).astype(int) + meanD[i] = np.mean(dataAdc[:, 0]).astype(int) mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}INT") dataAdcInt = mdsNode.getData().data() total_samples = DECIM_RATE * len(dataAdcInt[:, 0]) - driftW[i] = (dataAdcInt[-1, 0] - dataAdcInt[0, 0]) /total_samples + driftW[i] = (dataAdcInt[-1, 0] - dataAdcInt[0, 0]) / total_samples - # if(args.averages): + # if(args.averages): print(f"EO: {ADC_CHANNELS} ", end='') for i in range(ADC_CHANNELS): print(f"{meanD[i]:d} ", end='') print(" ") print(f"WO: {ADC_CHANNELS} ", end='') for i in range(ADC_CHANNELS): - print(f"{driftW[i]:0.3f} ", end='') + print(f"{driftW[i]:0.3f} ", end='') print(" ") print(f"Samples {total_samples}, time {total_samples/2e3:.2f} ms") if __name__ == '__main__': - parser = argparse.ArgumentParser(description = 'Script to support the QA activities') + parser = argparse.ArgumentParser( + description='Script to support the QA activities') - #parser.add_argument('-l','--list', nargs='+', help=' Set flag', required=True) - #parser.add_argument('-l','--list', nargs='+') - parser.add_argument('-c', '--crange', nargs='+',type=int, help='Channel plots (1 12)',default=[1, 12]) - parser.add_argument('-i', '--irange', nargs='+',type=int,default=[1, 12]) - parser.add_argument('-s', '--shot', type=int, help='Mds+ pulse Number ([1, ...])', default=0) - #parser.add_argument('-e', '--averages', action='store_true', help='Calc averages') -#parser.add_argument('-w', '--drift', action='store_true', help='Calc drifts') -#, default='') + # parser.add_argument('-l','--list', nargs='+', help=' Set flag', required=True) + # parser.add_argument('-l','--list', nargs='+') + parser.add_argument('-c', '--crange', nargs='+', + type=int, help='Channel plots (1 12)', default=[1, 12]) + parser.add_argument('-i', '--irange', nargs='+', + type=int, default=[1, 12]) + parser.add_argument('-s', '--shot', + type=int, help='Mds+ pulse Number ([1, ...])', + default=0) + # parser.add_argument('-e', '--averages', action='store_true', help='Calc averages') +# parser.add_argument('-w', '--drift', action='store_true', help='Calc drifts') args = parser.parse_args() main(args) diff --git a/Analysis/pyqtPlotMds.py b/Analysis/pyqtPlotMds.py index 82d0959..28859d4 100755 --- a/Analysis/pyqtPlotMds.py +++ b/Analysis/pyqtPlotMds.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """ This script plots the MARTe2 ATCAIop samples stored in MDSplus -All of the plots may be panned/scaled by dragging with +All of the plots may be panned/scaled by dragging with the left/right mouse buttons. Right click on any plot to show a context menu. """ import numpy as np @@ -22,14 +22,17 @@ DECIM_RATE = 200 parser = argparse.ArgumentParser( description='Script to support the QA activities') -# parser.add_argument('-l','--list', nargs='+', help=' Set flag', required=True) +# parser.add_argument('-l','--list', nargs='+', +# help=' Set flag', required=True) # parser.add_argument('-l','--list', nargs='+') parser.add_argument('-c', '--crange', nargs='+', type=int, help='Channel plots (1 12)', default=[1, 12]) parser.add_argument('-i', '--irange', nargs='+', type=int, default=[1, 12]) # arser.add_argument('pulse','-', nargs='+', help=' Set flag', required=True) -parser.add_argument('-s', '--shot', type=int, help='Mds+ pulse Number ([1, ...])', default=100) -parser.add_argument('-m', '--maxpoints', type=int, help='Max points to plot', default=50000) +parser.add_argument('-s', '--shot', type=int, + help='Mds+ pulse Number ([1, ...])', default=100) +parser.add_argument('-m', '--maxpoints', type=int, + help='Max points to plot', default=50000) parser.add_argument('-e', '--averages', action='store_true', help='Calc averages') # parser.add_argument('-w', '--drift', action='store_true', help='Calc drifts') @@ -60,7 +63,8 @@ p1 = win.addPlot(title="ATCA-IOP ADC raw decimated") # dataAdc = mdsNode.getData().data() # timeData = mdsNode.getDimensionAt(0).data() p1.addLegend() -start = args.crange[0] -1; stop = args.crange[1] +start = args.crange[0] - 1 +stop = args.crange[1] # for i in range(args.crange[0], args.crange[1]): meanD = np.zeros(ADC_CHANNELS, dtype=int) driftW = np.zeros(ADC_CHANNELS) @@ -68,7 +72,7 @@ total_samples = 0 for i in range(ADC_CHANNELS): mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}RAW") dataAdc = mdsNode.getData().data() - meanD[i] = np.mean(dataAdc[:,0]).astype(int) + meanD[i] = np.mean(dataAdc[:, 0]).astype(int) mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}INT") dataAdcInt = mdsNode.getData().data() total_samples = DECIM_RATE * len(dataAdcInt[:, 0]) @@ -90,7 +94,7 @@ for i in range(start, stop): mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}RAW") dataAdc = mdsNode.getData().data() timeData = mdsNode.getDimensionAt(0).data() - y = dataAdc[ :args.maxpoints, 0] + y = dataAdc[:args.maxpoints, 0] x = DECIM_RATE * np.arange(len(y)) / 2.0e6 p1.plot(x, y, pen=pg.mkPen(i, width=2), name=f"Ch {i+1}") # p1.setLabel('bottom', "Y Axis", units='s') @@ -99,7 +103,8 @@ win.nextRow() p4 = win.addPlot(title="Channel Integrals") p4.addLegend() # for i in range(8,12): -start = args.irange[0] -1; stop = args.irange[1] +start = args.irange[0] - 1 +stop = args.irange[1] # print("WO: ", end='') for i in range(start, stop): # mdsNode = tree.getNode(f"ATCAIOP1.ADC8INT") @@ -108,15 +113,15 @@ for i in range(start, stop): dataAdcInt = mdsNode.getData().data() timeData = mdsNode.getDimensionAt(0).data() total_samples = DECIM_RATE * len(dataAdcInt[:, 0]) - y = dataAdcInt[ :args.maxpoints, 0] / 2.0e6 # LSB * sec + y = dataAdcInt[:args.maxpoints, 0] / 2.0e6 # LSB * sec if (args.zero): - y = y - dataAdcInt[0, 0] / 2.0e6 # LSB * sec + y = y - dataAdcInt[0, 0] / 2.0e6 # LSB * sec # wo = (dataAdcInt[-1, 0] - dataAdcInt[0, 0]) /total_samples # print(f"{wo:0.4f} ", end='') - x = DECIM_RATE * np.arange(len(y)) / 2.0e6 # in sec - p4.plot(x,y, pen=pg.mkPen(i, width=2), name=f"Ch {i+1}") - except: - print(f"No data ATCAIOP1.ADC{i:d}INT") + x = DECIM_RATE * np.arange(len(y)) / 2.0e6 # in sec + p4.plot(x, y, pen=pg.mkPen(i, width=2), name=f"Ch {i+1}") + except Exception: + print(f"No data ATCAIOP1.ADC{i:d}INTD") print(" ")