##// END OF EJS Templates
fix merge conflicts
Juan C. Espinoza -
r1022:0af466e13e36 merge
parent child
Show More
@@ -0,0 +1,113
1 import h5py
2 import numpy
3 import matplotlib.pyplot as plt
4 import glob
5 import os
6
7 #---------------------- Functions ---------------------
8
9 def findFiles(path):
10
11 dirList = []
12 fileList = []
13
14 for thisPath in os.listdir(path):
15 dirList.append(os.path.join(path,thisPath))
16 dirList.sort()
17
18 for thisDirectory in dirList:
19 files = glob.glob1(thisDirectory, "*.hdf5")
20 files.sort()
21 for thisFile in files:
22 fileList.append(os.path.join(thisDirectory,thisFile))
23
24 return fileList
25
26 def readFiles(fileList):
27
28 meteors_array = numpy.zeros((1,4))
29
30 for thisFile in fileList:
31
32 #Leer
33 f1 = h5py.File(thisFile,'r')
34 grp1 = f1['Data']
35 grp2 = grp1['data_output']
36 meteors1 = grp2['table0'][:]
37 meteors_array = numpy.vstack((meteors_array,meteors1))
38 #cerrar
39 f1.close()
40
41 meteors_array = numpy.delete(meteors_array, 0, axis=0)
42 meteors_list = [meteors_array[:,0],meteors_array[:,1],meteors_array[:,2],meteors_array[:,3]]
43 return meteors_list
44
45 def estimateMean(offset_list):
46
47 mean_off = []
48 axisY_off = []
49 axisX_off = []
50
51 for thisOffset in offset_list:
52 mean_aux = numpy.mean(thisOffset, axis = 0)
53 mean_off.append(mean_aux)
54 axisX_off.append(numpy.array([0,numpy.size(thisOffset)]))
55 axisY_off.append(numpy.array([mean_aux,mean_aux]))
56
57 return mean_off, axisY_off, axisX_off
58
59 def plotPhases(offset0, axisY0, axisX0, title):
60 f, axarr = plt.subplots(4, sharey=True)
61 color = ['b','g','r','c']
62 # plt.grid()
63 for i in range(len(offset0)):
64 thisMeteor = offset0[i]
65 thisY = axisY0[i]
66 thisX = axisX0[i]
67 thisColor = color[i]
68
69 opt = thisColor + 'o'
70 axarr[i].plot(thisMeteor,opt)
71 axarr[i].plot(thisX, thisY, thisColor)
72 axarr[i].set_ylabel('Offset ' + str(i))
73
74 plt.ylim((-180,180))
75 axarr[0].set_title(title + ' Offsets')
76 axarr[3].set_xlabel('Number of estimations')
77
78 return
79
80 def filterOffsets(offsets0, stdvLimit):
81 offsets1 = []
82
83 for thisOffset in offsets0:
84 pstd = numpy.std(thisOffset)*stdvLimit
85 pmean = numpy.mean(thisOffset)
86 outlier1 = thisOffset > pmean - pstd
87 outlier2 = thisOffset < pmean + pstd
88 not_outlier = numpy.logical_and(outlier1,outlier2)
89 thisOffset1 = thisOffset[not_outlier]
90 offsets1.append(thisOffset1)
91
92 return offsets1
93
94 #---------------------- Setup ---------------------------
95
96 path = '/home/jespinoza/Pictures/JASMET30/201608/phase'
97 stdvLimit = 0.5
98
99 #---------------------- Script ---------------------------
100
101 fileList = findFiles(path)
102 offsets0 = readFiles(fileList)
103 mean0, axisY0, axisX0 = estimateMean(offsets0)
104 plotPhases(offsets0, axisY0, axisX0, 'Original')
105
106 offsets1 = filterOffsets(offsets0, stdvLimit)
107 mean1, axisY1, axisX1 = estimateMean(offsets1)
108 plotPhases(offsets1, axisY1, axisX1, 'Filtered')
109
110 print "Original Offsets: %.2f, %.2f, %.2f, %.2f" % (mean0[0],mean0[1],mean0[2],mean0[3])
111 print "Filtered Offsets: %.2f, %.2f, %.2f, %.2f" % (mean1[0],mean1[1],mean1[2],mean1[3])
112
113 plt.show()
@@ -105,4 +105,9 ENV/
105
105
106 .vscode
106 .vscode
107
107
108 schainpy/scripts/ No newline at end of file
108 .svn/
109 *.png
110 *.pyc
111 schainpy/scripts
112
113 schaingui/node_modules
@@ -129,4 +129,4 op.addParameter(name='wintitle', value='RTI', format='str')
129
129
130 controller.start()
130 controller.start()
131
131
132 ```
132 ``` No newline at end of file
@@ -330,10 +330,10 class OperationConf():
330 def getParameterValue(self, parameterName):
330 def getParameterValue(self, parameterName):
331
331
332 parameterObj = self.getParameterObj(parameterName)
332 parameterObj = self.getParameterObj(parameterName)
333
333
334 # if not parameterObj:
334 # if not parameterObj:
335 # return None
335 # return None
336
336
337 value = parameterObj.getValue()
337 value = parameterObj.getValue()
338
338
339 return value
339 return value
@@ -651,11 +651,11 class ProcUnitConf():
651 def printattr(self):
651 def printattr(self):
652
652
653 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
653 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
654 self.id,
654 self.id,
655 self.name,
655 self.name,
656 self.datatype,
656 self.datatype,
657 self.inputId)
657 self.inputId)
658
658
659 for opConfObj in self.opConfObjList:
659 for opConfObj in self.opConfObjList:
660 opConfObj.printattr()
660 opConfObj.printattr()
661
661
@@ -710,13 +710,13 class ProcUnitConf():
710 sts = self.procUnitObj.call(opType = opConfObj.type,
710 sts = self.procUnitObj.call(opType = opConfObj.type,
711 opName = opConfObj.name,
711 opName = opConfObj.name,
712 opId = opConfObj.id,
712 opId = opConfObj.id,
713 )
713 **kwargs)
714
714
715 # total_time = time.time() - ini
715 # total_time = time.time() - ini
716 #
716 #
717 # if total_time > 0.002:
717 # if total_time > 0.002:
718 # print "%s::%s took %f seconds" %(self.name, opConfObj.name, total_time)
718 # print "%s::%s took %f seconds" %(self.name, opConfObj.name, total_time)
719
719
720 is_ok = is_ok or sts
720 is_ok = is_ok or sts
721
721
722 return is_ok
722 return is_ok
@@ -862,18 +862,18 class ReadUnitConf(ProcUnitConf):
862 opObj.addParameter(name=key, value=value, format=type(value).__name__)
862 opObj.addParameter(name=key, value=value, format=type(value).__name__)
863
863
864 return opObj
864 return opObj
865
865
866 # def makeXml(self, projectElement):
866 # def makeXml(self, projectElement):
867 #
867 #
868 # procUnitElement = SubElement(projectElement, self.ELEMENTNAME)
868 # procUnitElement = SubElement(projectElement, self.ELEMENTNAME)
869 # procUnitElement.set('id', str(self.id))
869 # procUnitElement.set('id', str(self.id))
870 # procUnitElement.set('name', self.name)
870 # procUnitElement.set('name', self.name)
871 # procUnitElement.set('datatype', self.datatype)
871 # procUnitElement.set('datatype', self.datatype)
872 # procUnitElement.set('inputId', str(self.inputId))
872 # procUnitElement.set('inputId', str(self.inputId))
873 #
873 #
874 # for opConfObj in self.opConfObjList:
874 # for opConfObj in self.opConfObjList:
875 # opConfObj.makeXml(procUnitElement)
875 # opConfObj.makeXml(procUnitElement)
876
876
877 def readXml(self, upElement):
877 def readXml(self, upElement):
878
878
879 self.id = upElement.get('id')
879 self.id = upElement.get('id')
@@ -1115,8 +1115,8 class Project():
1115
1115
1116 self.id = self.projectElement.get('id')
1116 self.id = self.projectElement.get('id')
1117 self.name = self.projectElement.get('name')
1117 self.name = self.projectElement.get('name')
1118 self.description = self.projectElement.get('description')
1118 self.description = self.projectElement.get('description')
1119
1119
1120 readUnitElementList = self.projectElement.iter(ReadUnitConf().getElementName())
1120 readUnitElementList = self.projectElement.iter(ReadUnitConf().getElementName())
1121
1121
1122 for readUnitElement in readUnitElementList:
1122 for readUnitElement in readUnitElementList:
@@ -1146,9 +1146,9 class Project():
1146 def printattr(self):
1146 def printattr(self):
1147
1147
1148 print "Project[%s]: name = %s, description = %s" %(self.id,
1148 print "Project[%s]: name = %s, description = %s" %(self.id,
1149 self.name,
1149 self.name,
1150 self.description)
1150 self.description)
1151
1151
1152 for procUnitConfObj in self.procUnitConfObjDict.values():
1152 for procUnitConfObj in self.procUnitConfObjDict.values():
1153 procUnitConfObj.printattr()
1153 procUnitConfObj.printattr()
1154
1154
@@ -1184,9 +1184,9 class Project():
1184 import socket
1184 import socket
1185
1185
1186 err = traceback.format_exception(sys.exc_info()[0],
1186 err = traceback.format_exception(sys.exc_info()[0],
1187 sys.exc_info()[1],
1187 sys.exc_info()[1],
1188 sys.exc_info()[2])
1188 sys.exc_info()[2])
1189
1189
1190 print "***** Error occurred in %s *****" %(procUnitConfObj.name)
1190 print "***** Error occurred in %s *****" %(procUnitConfObj.name)
1191 print "***** %s" %err[-1]
1191 print "***** %s" %err[-1]
1192
1192
@@ -1217,10 +1217,10 class Project():
1217
1217
1218 adminObj = schainpy.admin.SchainNotify()
1218 adminObj = schainpy.admin.SchainNotify()
1219 adminObj.sendAlert(message=message,
1219 adminObj.sendAlert(message=message,
1220 subject=subject,
1220 subject=subject,
1221 subtitle=subtitle,
1221 subtitle=subtitle,
1222 filename=self.filename)
1222 filename=self.filename)
1223
1223
1224 def isPaused(self):
1224 def isPaused(self):
1225 return 0
1225 return 0
1226
1226
@@ -90,7 +90,7 class ControllerThread(threading.Thread, Project):
90 continue
90 continue
91
91
92 if thisOpObj.name in plotterList:
92 if thisOpObj.name in plotterList:
93 thisOpObj.type = "plotter"
93 thisOpObj.type = "other"
94
94
95 def setPlotterQueue(self, plotter_queue):
95 def setPlotterQueue(self, plotter_queue):
96
96
@@ -638,18 +638,20 class SendToServer(ProcessingUnit):
638 return fullfilenameList
638 return fullfilenameList
639
639
640 def run(self, **kwargs):
640 def run(self, **kwargs):
641
642 if not self.isConfig:
641 if not self.isConfig:
643 self.init = time.time()
642 self.init = time.time()
644 self.setup(**kwargs)
643 self.setup(**kwargs)
645 self.isConfig = True
644 self.isConfig = True
646
645
646 if not self.clientObj.is_alive():
647 print "[Remote Server]: Restarting connection "
648 self.setup(**kwargs)
649
647 if time.time() - self.init >= self.period:
650 if time.time() - self.init >= self.period:
648 fullfilenameList = self.findFiles()
651 fullfilenameList = self.findFiles()
649
652
650 if self.clientObj.updateFileList(fullfilenameList):
653 if self.clientObj.updateFileList(fullfilenameList):
651 print "[Remote Server]: Sending the next files ", str(fullfilenameList)
654 print "[Remote Server]: Sending the next files ", str(fullfilenameList)
652
653 self.init = time.time()
655 self.init = time.time()
654
656
655 def close(self):
657 def close(self):
General Comments 0
You need to be logged in to leave comments. Login now