source: fact/tools/pyscripts/sandbox/dneise/SlowDataPlotting/plot_currs.py@ 17893

Last change on this file since 17893 was 14430, checked in by neise, 12 years ago
initial commit
  • Property svn:executable set to *
File size: 2.5 KB
Line 
1#!/usr/bin/python -tti
2
3##############################################
4# based on plot_trigger_rate.py by QW and TPK
5##############################################
6
7from array import array
8import os
9import re
10import sys
11import numpy as np
12import time
13
14from pyfact import SlowData
15
16#from ROOT import TCanvas, TGraph, TGraphErrors, TH2F
17from ROOT import gROOT
18#from ROOT import gStyle
19
20import matplotlib.pyplot as plt
21import matplotlib.dates
22
23gROOT.SetStyle("Plain")
24plt.ion()
25
26filelist = []
27if len(sys.argv) > 1:
28 base_path = sys.argv[1]
29else:
30 print 'Usage:', sys.argv[0], '/your/search/path'
31
32for base,subdirs,files in os.walk(base_path):
33 for filename in files:
34 #include only run files
35 regex = re.search(r'\d\d\d\d\d\d\d\d\.FSC_CONTROL_CURRENT.fits',filename)
36 #include run files and also the nightly file
37 #regex = re.search(r'FTM_CONTROL_TRIGGER_RATES',filename)
38 if regex:
39 filelist.append(os.path.join(base,filename))
40
41
42plotlist = ['FAD_Id', 'FAD_In', 'FAD_Ip', 'FPA_Id', 'FPA_In', 'FPA_Ip', 'FTM_I', 'FFC_I']
43plotfmts = ['+:r', '+:b', '+:g' , '.:m' , '.:y', '.:k' , 'o:c' ,'*:k']
44per_name = []
45
46for filename in filelist:
47
48 print filename
49
50 f = SlowData(filename)
51
52 f.register("all")
53
54 f.stack()
55 for row in f:
56 pass
57
58
59 for name in plotlist:
60 per_name.append(f.columns[name][0])
61
62 fig = plt.figure()
63 ax = fig.add_subplot(111)
64 plt.hold(True)
65 for i,name in enumerate(plotlist):
66 for number in range(per_name[i]):
67 print name, number
68 Time = f.stacked_cols['Time']
69 data = f.stacked_cols[name][:,number]
70 med = np.median(Time)
71 # get rid of Times of the previous day.
72 Time_today = Time[np.where( Time>med-0.25 )[0]]
73 data_today = data[np.where( Time>med-0.25)[0]]
74 if number == 0:
75 ax.plot_date( Time_today, data_today, fmt=plotfmts[i], label=name)
76 else:
77 ax.plot_date( Time_today, data_today, fmt=plotfmts[i])
78 today_str = time.strftime('%d.%m.' ,time.gmtime(Time_today[0]*24*3600))
79 print today_str
80 plt.title('Currents \n'+today_str)
81 ax.xaxis.set_major_locator(
82# matplotlib.dates.HourLocator(byhour=range(24), interval=1)
83 matplotlib.dates.AutoDateLocator()
84 )
85 ax.xaxis.set_major_formatter(
86 matplotlib.dates.DateFormatter('%Hh')
87# matplotlib.dates.AutoDateFormatter()
88 )
89 plt.legend()
90 plt.draw()
91
92# plt.ylim(12,41)
93 plt.savefig(sys.argv[2])
Note: See TracBrowser for help on using the repository browser.