##// END OF EJS Templates
LAST FIX PATH DATA
avaldezp -
r1432:444e27e2e24f
parent child
Show More
@@ -39,7 +39,7 class ConfBase():
39 def getId(self):
39 def getId(self):
40
40
41 return self.id
41 return self.id
42
42
43 def getNewId(self):
43 def getNewId(self):
44
44
45 return int(self.id) * 10 + len(self.operations) + 1
45 return int(self.id) * 10 + len(self.operations) + 1
@@ -61,7 +61,7 class ConfBase():
61 for key, value in self.parameters.items():
61 for key, value in self.parameters.items():
62 if value not in (None, '', ' '):
62 if value not in (None, '', ' '):
63 params[key] = value
63 params[key] = value
64
64
65 return params
65 return params
66
66
67 def update(self, **kwargs):
67 def update(self, **kwargs):
@@ -72,8 +72,9 class ConfBase():
72 def addParameter(self, name, value, format=None):
72 def addParameter(self, name, value, format=None):
73 '''
73 '''
74 '''
74 '''
75
75 if os.path.isdir(value):
76 if isinstance(value, str) and re.search(r'(\d+/\d+/\d+)', value):
76 self.parameters[name] = value
77 elif isinstance(value, str) and re.search(r'(\d+/\d+/\d+)', value):
77 self.parameters[name] = datetime.date(*[int(x) for x in value.split('/')])
78 self.parameters[name] = datetime.date(*[int(x) for x in value.split('/')])
78 elif isinstance(value, str) and re.search(r'(\d+:\d+:\d+)', value):
79 elif isinstance(value, str) and re.search(r'(\d+:\d+:\d+)', value):
79 self.parameters[name] = datetime.time(*[int(x) for x in value.split(':')])
80 self.parameters[name] = datetime.time(*[int(x) for x in value.split(':')])
@@ -99,21 +100,21 class ConfBase():
99 params[key] = str(value)
100 params[key] = str(value)
100
101
101 return params
102 return params
102
103
103 def makeXml(self, element):
104 def makeXml(self, element):
104
105
105 xml = SubElement(element, self.ELEMENTNAME)
106 xml = SubElement(element, self.ELEMENTNAME)
106 for label in self.xml_labels:
107 for label in self.xml_labels:
107 xml.set(label, str(getattr(self, label)))
108 xml.set(label, str(getattr(self, label)))
108
109
109 for key, value in self.getParameters().items():
110 for key, value in self.getParameters().items():
110 xml_param = SubElement(xml, 'Parameter')
111 xml_param = SubElement(xml, 'Parameter')
111 xml_param.set('name', key)
112 xml_param.set('name', key)
112 xml_param.set('value', value)
113 xml_param.set('value', value)
113
114
114 for conf in self.operations:
115 for conf in self.operations:
115 conf.makeXml(xml)
116 conf.makeXml(xml)
116
117
117 def __str__(self):
118 def __str__(self):
118
119
119 if self.ELEMENTNAME == 'Operation':
120 if self.ELEMENTNAME == 'Operation':
@@ -126,7 +127,7 class ConfBase():
126 s += ' {}: {}\n'.format(key, value)
127 s += ' {}: {}\n'.format(key, value)
127 else:
128 else:
128 s += ' {}: {}\n'.format(key, value)
129 s += ' {}: {}\n'.format(key, value)
129
130
130 for conf in self.operations:
131 for conf in self.operations:
131 s += str(conf)
132 s += str(conf)
132
133
@@ -179,7 +180,7 class ProcUnitConf(ConfBase):
179 def setup(self, project_id, id, name, datatype, inputId, err_queue):
180 def setup(self, project_id, id, name, datatype, inputId, err_queue):
180 '''
181 '''
181 '''
182 '''
182
183
183 if datatype == None and name == None:
184 if datatype == None and name == None:
184 raise ValueError('datatype or name should be defined')
185 raise ValueError('datatype or name should be defined')
185
186
@@ -205,7 +206,7 class ProcUnitConf(ConfBase):
205
206
206 i = [1 if x.id==id else 0 for x in self.operations]
207 i = [1 if x.id==id else 0 for x in self.operations]
207 self.operations.pop(i.index(1))
208 self.operations.pop(i.index(1))
208
209
209 def getOperation(self, id):
210 def getOperation(self, id):
210
211
211 for conf in self.operations:
212 for conf in self.operations:
@@ -233,7 +234,7 class ProcUnitConf(ConfBase):
233 self.err_queue = err_queue
234 self.err_queue = err_queue
234 self.operations = []
235 self.operations = []
235 self.parameters = {}
236 self.parameters = {}
236
237
237 for elm in element:
238 for elm in element:
238 if elm.tag == 'Parameter':
239 if elm.tag == 'Parameter':
239 self.addParameter(elm.get('name'), elm.get('value'))
240 self.addParameter(elm.get('name'), elm.get('value'))
@@ -254,21 +255,21 class ProcUnitConf(ConfBase):
254 log.success('creating process...', self.name)
255 log.success('creating process...', self.name)
255
256
256 for conf in self.operations:
257 for conf in self.operations:
257
258
258 opObj = conf.createObject()
259 opObj = conf.createObject()
259
260
260 log.success('adding operation: {}, type:{}'.format(
261 log.success('adding operation: {}, type:{}'.format(
261 conf.name,
262 conf.name,
262 conf.type), self.name)
263 conf.type), self.name)
263
264
264 procUnitObj.addOperation(conf, opObj)
265 procUnitObj.addOperation(conf, opObj)
265
266
266 self.object = procUnitObj
267 self.object = procUnitObj
267
268
268 def run(self):
269 def run(self):
269 '''
270 '''
270 '''
271 '''
271
272
272 return self.object.call(**self.getKwargs())
273 return self.object.call(**self.getKwargs())
273
274
274
275
@@ -284,10 +285,10 class ReadUnitConf(ProcUnitConf):
284 self.inputId = None
285 self.inputId = None
285 self.operations = []
286 self.operations = []
286 self.parameters = {}
287 self.parameters = {}
287
288
288 def setup(self, project_id, id, name, datatype, err_queue, path='', startDate='', endDate='',
289 def setup(self, project_id, id, name, datatype, err_queue, path='', startDate='', endDate='',
289 startTime='', endTime='', server=None, **kwargs):
290 startTime='', endTime='', server=None, **kwargs):
290
291
291 if datatype == None and name == None:
292 if datatype == None and name == None:
292 raise ValueError('datatype or name should be defined')
293 raise ValueError('datatype or name should be defined')
293 if name == None:
294 if name == None:
@@ -307,8 +308,8 class ReadUnitConf(ProcUnitConf):
307 self.project_id = project_id
308 self.project_id = project_id
308 self.name = name
309 self.name = name
309 self.datatype = datatype
310 self.datatype = datatype
310 self.err_queue = err_queue
311 self.err_queue = err_queue
311
312
312 self.addParameter(name='path', value=path)
313 self.addParameter(name='path', value=path)
313 self.addParameter(name='startDate', value=startDate)
314 self.addParameter(name='startDate', value=startDate)
314 self.addParameter(name='endDate', value=endDate)
315 self.addParameter(name='endDate', value=endDate)
@@ -377,7 +378,7 class Project(Process):
377 def setup(self, id=1, name='', description='', email=None, alarm=[]):
378 def setup(self, id=1, name='', description='', email=None, alarm=[]):
378
379
379 self.id = str(id)
380 self.id = str(id)
380 self.description = description
381 self.description = description
381 self.email = email
382 self.email = email
382 self.alarm = alarm
383 self.alarm = alarm
383 if name:
384 if name:
@@ -411,7 +412,7 class Project(Process):
411 conf = ReadUnitConf()
412 conf = ReadUnitConf()
412 conf.setup(self.id, idReadUnit, name, datatype, self.err_queue, **kwargs)
413 conf.setup(self.id, idReadUnit, name, datatype, self.err_queue, **kwargs)
413 self.configurations[conf.id] = conf
414 self.configurations[conf.id] = conf
414
415
415 return conf
416 return conf
416
417
417 def addProcUnit(self, id=None, inputId='0', datatype=None, name=None):
418 def addProcUnit(self, id=None, inputId='0', datatype=None, name=None):
@@ -423,7 +424,7 class Project(Process):
423 idProcUnit = self.getNewId()
424 idProcUnit = self.getNewId()
424 else:
425 else:
425 idProcUnit = id
426 idProcUnit = id
426
427
427 conf = ProcUnitConf()
428 conf = ProcUnitConf()
428 conf.setup(self.id, idProcUnit, name, datatype, inputId, self.err_queue)
429 conf.setup(self.id, idProcUnit, name, datatype, inputId, self.err_queue)
429 self.configurations[conf.id] = conf
430 self.configurations[conf.id] = conf
@@ -458,7 +459,7 class Project(Process):
458 def updateUnit(self, id, **kwargs):
459 def updateUnit(self, id, **kwargs):
459
460
460 conf = self.configurations[id].update(**kwargs)
461 conf = self.configurations[id].update(**kwargs)
461
462
462 def makeXml(self):
463 def makeXml(self):
463
464
464 xml = Element('Project')
465 xml = Element('Project')
@@ -529,7 +530,7 class Project(Process):
529 self.configurations[conf.id] = conf
530 self.configurations[conf.id] = conf
530
531
531 self.filename = abs_file
532 self.filename = abs_file
532
533
533 return 1
534 return 1
534
535
535 def __str__(self):
536 def __str__(self):
@@ -559,14 +560,14 class Project(Process):
559
560
560 t = Thread(target=self._monitor, args=(self.err_queue, self.ctx))
561 t = Thread(target=self._monitor, args=(self.err_queue, self.ctx))
561 t.start()
562 t.start()
562
563
563 def _monitor(self, queue, ctx):
564 def _monitor(self, queue, ctx):
564
565
565 import socket
566 import socket
566
567
567 procs = 0
568 procs = 0
568 err_msg = ''
569 err_msg = ''
569
570
570 while True:
571 while True:
571 msg = queue.get()
572 msg = queue.get()
572 if '#_start_#' in msg:
573 if '#_start_#' in msg:
@@ -575,11 +576,11 class Project(Process):
575 procs -=1
576 procs -=1
576 else:
577 else:
577 err_msg = msg
578 err_msg = msg
578
579
579 if procs == 0 or 'Traceback' in err_msg:
580 if procs == 0 or 'Traceback' in err_msg:
580 break
581 break
581 time.sleep(0.1)
582 time.sleep(0.1)
582
583
583 if '|' in err_msg:
584 if '|' in err_msg:
584 name, err = err_msg.split('|')
585 name, err = err_msg.split('|')
585 if 'SchainWarning' in err:
586 if 'SchainWarning' in err:
@@ -588,11 +589,11 class Project(Process):
588 log.error(err.split('SchainError:')[-1].split('\n')[0].strip(), name)
589 log.error(err.split('SchainError:')[-1].split('\n')[0].strip(), name)
589 else:
590 else:
590 log.error(err, name)
591 log.error(err, name)
591 else:
592 else:
592 name, err = self.name, err_msg
593 name, err = self.name, err_msg
593
594
594 time.sleep(1)
595 time.sleep(1)
595
596
596 ctx.term()
597 ctx.term()
597
598
598 message = ''.join(err)
599 message = ''.join(err)
@@ -617,7 +618,7 class Project(Process):
617 subtitle += '[End time = %s]\n' % readUnitConfObj.parameters['endTime']
618 subtitle += '[End time = %s]\n' % readUnitConfObj.parameters['endTime']
618
619
619 a = Alarm(
620 a = Alarm(
620 modes=self.alarm,
621 modes=self.alarm,
621 email=self.email,
622 email=self.email,
622 message=message,
623 message=message,
623 subject=subject,
624 subject=subject,
@@ -635,10 +636,10 class Project(Process):
635
636
636 err = False
637 err = False
637 n = len(self.configurations)
638 n = len(self.configurations)
638
639
639 while not err:
640 while not err:
640 for conf in self.getUnits():
641 for conf in self.getUnits():
641 ok = conf.run()
642 ok = conf.run()
642 if ok == 'Error':
643 if ok == 'Error':
643 n -= 1
644 n -= 1
644 continue
645 continue
@@ -646,12 +647,12 class Project(Process):
646 break
647 break
647 if n == 0:
648 if n == 0:
648 err = True
649 err = True
649
650
650 def run(self):
651 def run(self):
651
652
652 log.success('\nStarting Project {} [id={}]'.format(self.name, self.id), tag='')
653 log.success('\nStarting Project {} [id={}]'.format(self.name, self.id), tag='')
653 self.started = True
654 self.started = True
654 self.start_time = time.time()
655 self.start_time = time.time()
655 self.createObjects()
656 self.createObjects()
656 self.runProcs()
657 self.runProcs()
657 log.success('{} Done (Time: {:4.2f}s)'.format(
658 log.success('{} Done (Time: {:4.2f}s)'.format(
@@ -38,24 +38,33 mode_proc = 0
38 #path = "/DATA_RM/DRONE01ABRIL1429"
38 #path = "/DATA_RM/DRONE01ABRIL1429"
39 #path_ped = "/DATA_RM/TEST_PEDESTAL/P20220322-171722"
39 #path_ped = "/DATA_RM/TEST_PEDESTAL/P20220322-171722"
40 #path = "/DATA_RM/DRONE01ABRIL1701"
40 #path = "/DATA_RM/DRONE01ABRIL1701"
41 path = "/DATA_RM/DATA/Torre_con_bola_1649092242/rawdata"
41 ##path = "/DATA_RM/DATA/Torre_con_bola_1649092242/rawdata"
42 path="/DATA_RM/DRONE01ABRIL1727"
42 ##path="/DATA_RM/DRONE01ABRIL1727"
43 path ="/DATA_RM/DATA/TEST@2022-04-11T17:29:56/rawdata"
44 #path="/DATA_RM/TEST172956_0411"
45
46
47 #path = "/DATA_RM/DATA/TEST@2022-04-11T17:29:56/rawdata"
48
43 #path_ped = "/DATA_RM/DRONE01ABRIL1450"
49 #path_ped = "/DATA_RM/DRONE01ABRIL1450"
44 path_ped="/DATA_RM/TEST_PEDESTAL/P20220401-172744"
50 #path_ped="/DATA_RM/TEST_PEDESTAL/P20220401-172744"
51
52 path_ped="/DATA_RM/TEST_PEDESTAL/P20220411-173017"
53
45 #path_ped = "/DATA_RM/DATA/Torre_con_bola_1649092242/position/2022-04-04T17-00-00"
54 #path_ped = "/DATA_RM/DATA/Torre_con_bola_1649092242/position/2022-04-04T17-00-00"
46 #-------------------------------------------------------------------------------
55 #-------------------------------------------------------------------------------
47 figpath_pp = "/home/soporte/Pictures/Torre_con_bola_1649092242"
56 figpath_pp = "/home/soporte/Pictures/TEST"
48 #figpath_pp = "/home/soporte/Pictures/MARTES_22_PP_1M_1us"
57 #figpath_pp = "/home/soporte/Pictures/MARTES_22_PP_1M_1us"
49 figpath_spec = "/home/soporte/Pictures/MARTES_22_1M_1us"
58 figpath_spec = "/home/soporte/Pictures/MARTES_22_1M_1us"
50 figpath_pp_ppi = "/home/soporte/Pictures/MARTES_22_1M_1us_PPI"
59 figpath_pp_ppi = "/home/soporte/Pictures/PPILUNES11042022"
51
60
52
61
53 figpath_pp_rhi = "/DATA_RM/LUNES04ABRIL_1200_RHI"
62 figpath_pp_rhi = "/DATA_RM/LUNES04ABRIL_1200_RHI"
54 #--------------------------OPCIONES---------------------------------------------
63 #--------------------------OPCIONES---------------------------------------------
55 plot_ppi = 0
64 plot_ppi = 1
56 plot = 0
65 plot = 0#0
57 plot_rhi = 1
66 plot_rhi = 0#1
58 integration = 1
67 integration = 1#1
59 save = 0
68 save = 0
60 plot_spec = 0
69 plot_spec = 0
61 #---------------------------SAVE HDF5 PROCESADO/--------------------------------
70 #---------------------------SAVE HDF5 PROCESADO/--------------------------------
@@ -110,10 +119,10 time.sleep(4)
110 ################# RANGO DE PLOTEO######################################
119 ################# RANGO DE PLOTEO######################################
111 dBmin = '20'
120 dBmin = '20'
112 dBmax = '60'
121 dBmax = '60'
113 xmin = '12.0' #17.1,17.5
122 xmin = '17.4' #17.1,17.5
114 xmax = '12.4' #17.2,17.8
123 xmax = '17.7' #17.2,17.8
115 ymin = '0' #### PONER A 0
124 ymin = '0' #### PONER A 0
116 ymax = '1.0' #### PONER A 8
125 ymax = '1.5' #### PONER A 8
117 ########################FECHA##########################################
126 ########################FECHA##########################################
118 str1 = datetime.date.today()
127 str1 = datetime.date.today()
119 today = str1.strftime("%Y/%m/%d")
128 today = str1.strftime("%Y/%m/%d")
@@ -128,9 +137,9 controllerObj.setup(id = '191', name='Test_USRP', description=desc)
128 #------------------------ UNIDAD DE LECTURA-------------------------------------
137 #------------------------ UNIDAD DE LECTURA-------------------------------------
129 readUnitConfObj = controllerObj.addReadUnit(datatype='DigitalRFReader',
138 readUnitConfObj = controllerObj.addReadUnit(datatype='DigitalRFReader',
130 path=path,
139 path=path,
131 startDate="2022/04/01",#today,
140 startDate="2022/04/11",#today,
132 endDate="2022/04/01",#today,
141 endDate="2022/04/11",#today,
133 startTime='00:10:05',#'17:39:25',
142 startTime='17:36:00',#'17:39:25',
134 endTime='23:59:59',#23:59:59',
143 endTime='23:59:59',#23:59:59',
135 delay=0,
144 delay=0,
136 #set=0,
145 #set=0,
@@ -153,7 +162,7 opObj10.addParameter(name='ymax', value='1200', format='int')
153 opObj10.addParameter(name='save_period', value=10, format='int')
162 opObj10.addParameter(name='save_period', value=10, format='int')
154 '''
163 '''
155 opObj11 = procUnitConfObjA.addOperation(name='setH0')
164 opObj11 = procUnitConfObjA.addOperation(name='setH0')
156 opObj11.addParameter(name='h0', value='-1.2', format='float')
165 opObj11.addParameter(name='h0', value='-1.0', format='float')
157
166
158 opObj11 = procUnitConfObjA.addOperation(name='selectHeights')
167 opObj11 = procUnitConfObjA.addOperation(name='selectHeights')
159 opObj11.addParameter(name='minIndex', value='1', format='int')
168 opObj11.addParameter(name='minIndex', value='1', format='int')
General Comments 0
You need to be logged in to leave comments. Login now