##// END OF EJS Templates
scripts de prueba para data procesada con signal chain y script proc_JC.py con los ultimos cambios y parametros de escritura
avaldezp -
r1535:0450a3a7a48e
parent child
Show More
@@ -0,0 +1,418
1 # SOPHY PROC script
2 import os, sys, json, argparse
3 import datetime
4 import time
5
6 PATH = '/DATA_RM/DATA'
7 PATH = '/media/jespinoza/Elements'
8 PATH = '/media/jespinoza/data/SOPHY'
9 PATH = '/home/soporte/Documents/EVENTO/'
10
11 # NOTA: EL GRABADO ESTA EN PARAM
12 PARAM = {
13 'S': {'zmin': -45, 'zmax': -25, 'colormap': 'jet', 'label': 'Power', 'wrname': 'power','cb_label': 'dBm', 'ch':0},
14 'SNR': {'zmin': -40, 'zmax': -20, 'colormap': 'jet', 'label': 'SNR', 'wrname': 'snr','cb_label': 'dB', 'ch':0},
15 'V': {'zmin': -12, 'zmax': 12, 'colormap': 'sophy_v', 'label': 'Velocity', 'wrname': 'velocity', 'cb_label': 'm/s', 'ch':0},
16 'R': {'zmin': 0, 'zmax': 1, 'colormap': 'jet', 'label': 'RhoHV', 'wrname':'rhoHV', 'cb_label': '', 'ch':0},
17 'P': {'zmin': -180,'zmax': 180,'colormap': 'RdBu_r', 'label': 'PhiDP', 'wrname':'phiDP' , 'cb_label': 'degrees', 'ch':0},
18 'D': {'zmin': -30, 'zmax': 80, 'colormap': 'sophy_r','label': 'ZDR','wrname':'differential_reflectivity' , 'cb_label': 'dBz','ch':0},
19 'Z': {'zmin': -30, 'zmax': 80, 'colormap': 'sophy_r','label': 'Reflectivity ', 'wrname':'reflectivity', 'cb_label': 'dBz','ch':0},
20 'W': {'zmin': 0, 'zmax': 15, 'colormap': 'sophy_w','label': 'Spectral Width', 'wrname':'spectral_width', 'cb_label': 'm/s', 'ch':0}
21 }
22
23 META = ['heightList', 'data_azi', 'data_ele', 'mode_op', 'latitude', 'longitude', 'altitude', 'heading', 'radar_name',
24 'institution', 'contact', 'h0', 'range_unit', 'prf', 'prf_unit', 'variable', 'variable_unit', 'n_pulses',
25 'pulse1_range', 'pulse1_width', 'pulse2_width', 'pulse1_repetitions', 'pulse2_repetitions', 'pulse_width_unit',
26 'snr_threshold','dataPP_NOISE']
27
28
29 def max_index(r, sample_rate, ipp):
30
31 return int(sample_rate*ipp*1e6 * r / 60) + int(sample_rate*ipp*1e6 * 1.2 / 60)
32
33 def main(args):
34
35 experiment = args.experiment
36 fp = open(os.path.join(PATH, experiment, 'experiment.conf'))
37 conf = json.loads(fp.read())
38
39 ipp_km = conf['usrp_tx']['ipp']
40 ipp = ipp_km * 2 /300000
41 sample_rate = conf['usrp_rx']['sample_rate']
42 axis = ['0' if x=='elevation' else '1' for x in conf['pedestal']['axis']] # AZIMUTH 1 ELEVACION 0
43 speed_axis = conf['pedestal']['speed']
44 steps = conf['pedestal']['table']
45 time_offset = args.time_offset
46 parameters = args.parameters
47 start_date = experiment.split('@')[1].split('T')[0].replace('-', '/')
48 end_date = start_date
49 if args.start_time:
50 start_time = args.start_time
51 else:
52 start_time = experiment.split('@')[1].split('T')[1].replace('-', ':')
53 end_time = '23:59:59'
54 N = int(1/(speed_axis[0]*ipp)) # 1 GRADO DE RESOLUCION
55 path = os.path.join(PATH, experiment, 'rawdata')
56 path_ped = os.path.join(PATH, experiment, 'position')
57 if args.label:
58 label = '-{}'.format(args.label)
59 else:
60 label = ''
61 path_plots = os.path.join(PATH, experiment, 'plots{}'.format(label))
62 path_save = os.path.join(PATH, experiment, 'param{}'.format(label))
63 RMIX = 1.62
64 H0 = -1.68
65 MASK = 0.3
66
67 from schainpy.controller import Project
68
69 project = Project()
70 project.setup(id='1', name='Sophy', description='sophy proc')
71
72 reader = project.addReadUnit(datatype='DigitalRFReader',
73 path=path,
74 startDate=start_date,
75 endDate=end_date,
76 startTime=start_time,
77 endTime=end_time,
78 delay=30,
79 online=args.online,
80 walk=1,
81 ippKm = ipp_km,
82 getByBlock = 1,
83 nProfileBlocks = N,
84 )
85
86 if not conf['usrp_tx']['enable_2']: # One Pulse
87 n_pulses = 1
88 pulse_1_width = conf['usrp_tx']['pulse_1']
89 pulse_1_repetitions = conf['usrp_tx']['repetitions_1']
90 pulse_2_width = 0
91 pulse_2_repetitions = 0
92
93 voltage = project.addProcUnit(datatype='VoltageProc', inputId=reader.getId())
94
95 if conf['usrp_tx']['code_type_1'] != 'None':
96 codes = [ c.strip() for c in conf['usrp_tx']['code_1'].split(',')]
97 code = []
98 for c in codes:
99 code.append([int(x) for x in c])
100 op = voltage.addOperation(name='Decoder', optype='other')
101 op.addParameter(name='code', value=code)
102 op.addParameter(name='nCode', value=len(code), format='int')
103 op.addParameter(name='nBaud', value=len(code[0]), format='int')
104
105 op = voltage.addOperation(name='CohInt', optype='other') #Minimo integrar 2 perfiles por ser codigo complementario
106 op.addParameter(name='n', value=len(code), format='int')
107 ncode = len(code)
108 else:
109 ncode = 1
110 code = ['0']
111
112 op = voltage.addOperation(name='setH0')
113 op.addParameter(name='h0', value=H0)
114
115 if args.range > 0:
116 op = voltage.addOperation(name='selectHeights')
117 op.addParameter(name='minIndex', value='0', format='int')
118 op.addParameter(name='maxIndex', value=max_index(args.range, sample_rate, ipp), format='int')
119
120 op = voltage.addOperation(name='PulsePair_vRF', optype='other')
121 op.addParameter(name='n', value=int(N)/ncode, format='int')
122
123 proc = project.addProcUnit(datatype='ParametersProc', inputId=voltage.getId())
124
125 opObj10 = proc.addOperation(name="WeatherRadar")
126 opObj10.addParameter(name='tauW',value=(1e-6/sample_rate)*len(code[0]))
127 opObj10.addParameter(name='Pt',value=((1e-6/sample_rate)*len(code[0])/ipp)*200)
128
129 op = proc.addOperation(name='PedestalInformation')
130 op.addParameter(name='path', value=path_ped, format='str')
131 op.addParameter(name='interval', value='0.04')
132 op.addParameter(name='time_offset', value=time_offset)
133 op.addParameter(name='mode', value='PPI')
134
135 for param in parameters:
136 op = proc.addOperation(name='Block360')
137 op.addParameter(name='runNextOp', value=True)
138
139 op= proc.addOperation(name='WeatherParamsPlot')
140 if args.save: op.addParameter(name='save', value=path_plots, format='str')
141 op.addParameter(name='save_period', value=-1)
142 op.addParameter(name='show', value=args.show)
143 op.addParameter(name='channels', value='1,')
144 op.addParameter(name='zmin', value=PARAM[param]['zmin'])
145 op.addParameter(name='zmax', value=PARAM[param]['zmax'])
146 op.addParameter(name='attr_data', value=param, format='str')
147 op.addParameter(name='labels', value=[PARAM[param]['label']])
148 op.addParameter(name='save_code', value=param)
149 op.addParameter(name='cb_label', value=PARAM[param]['cb_label'])
150 op.addParameter(name='colormap', value=PARAM[param]['colormap'])
151 op.addParameter(name='bgcolor', value='black')
152 if MASK: op.addParameter(name='mask', value=MASK, format='float')
153 if args.server:
154 op.addParameter(name='server', value='0.0.0.0:4444')
155 op.addParameter(name='exp_code', value='400')
156
157 desc = {
158 'Data': {
159 param: PARAM[param]['wrname'],
160 'utctime': 'time'
161 },
162 'Metadata': {
163 'heightList': 'range',
164 'data_azi': 'azimuth',
165 'data_ele': 'elevation',
166 'mode_op': 'scan_type',
167 'h0': 'range_correction',
168 }
169 }
170
171 if args.save:
172 writer = merge.addOperation(name='HDFWriter')
173 writer.addParameter(name='path', value=path_save, format='str')
174 writer.addParameter(name='Reset', value=True)
175 writer.addParameter(name='setType', value='weather')
176 writer.addParameter(name='description', value=json.dumps(desc))
177 writer.addParameter(name='blocksPerFile', value='1',format='int')
178 writer.addParameter(name='metadataList', value=','.join(META))
179 writer.addParameter(name='dataList', value='data_param,utctime')
180 writer.addParameter(name='weather_var', value=param)
181 writer.addParameter(name='mask', value=MASK, format='float')
182 # meta
183 writer.addParameter(name='latitude', value='-12.040436')
184 writer.addParameter(name='longitude', value='-75.295893')
185 writer.addParameter(name='altitude', value='3379.2147')
186 writer.addParameter(name='heading', value='0')
187 writer.addParameter(name='radar_name', value='SOPHy')
188 writer.addParameter(name='institution', value='IGP')
189 writer.addParameter(name='contact', value='dscipion@igp.gob.pe')
190 writer.addParameter(name='created_by', value='Signal Chain (https://pypi.org/project/schainpy/)')
191 writer.addParameter(name='range_unit', value='km')
192 writer.addParameter(name='prf', value=1/ipp)
193 writer.addParameter(name='prf_unit', value='hertz')
194 writer.addParameter(name='variable', value=PARAM[param]['label'])
195 writer.addParameter(name='variable_unit', value=PARAM[param]['cb_label'])
196 writer.addParameter(name='n_pulses', value=n_pulses)
197 writer.addParameter(name='pulse1_range', value=RMIX)
198 writer.addParameter(name='pulse1_width', value=pulse_1_width)
199 writer.addParameter(name='pulse2_width', value=pulse_2_width)
200 writer.addParameter(name='pulse1_repetitions', value=pulse_1_repetitions)
201 writer.addParameter(name='pulse2_repetitions', value=pulse_2_repetitions)
202 writer.addParameter(name='pulse_width_unit', value='microseconds')
203 writer.addParameter(name='snr_threshold', value=MASK)
204
205
206 else: #Two pulses
207 n_pulses = 1
208 pulse_1_width = conf['usrp_tx']['pulse_1']
209 pulse_1_repetitions = conf['usrp_tx']['repetitions_1']
210 pulse_2_width = conf['usrp_tx']['pulse_2']
211 pulse_2_repetitions = conf['usrp_tx']['repetitions_2']
212
213 voltage1 = project.addProcUnit(datatype='VoltageProc', inputId=reader.getId())
214
215 op = voltage1.addOperation(name='ProfileSelector')
216 op.addParameter(name='profileRangeList', value='0,{}'.format(conf['usrp_tx']['repetitions_1']-1))
217
218 if conf['usrp_tx']['code_type_1'] != 'None':
219 codes = [ c.strip() for c in conf['usrp_tx']['code_1'].split(',')]
220 code = []
221 for c in codes:
222 code.append([int(x) for x in c])
223 op = voltage1.addOperation(name='Decoder', optype='other')
224 op.addParameter(name='code', value=code)
225 op.addParameter(name='nCode', value=len(code), format='int')
226 op.addParameter(name='nBaud', value=len(code[0]), format='int')
227 else:
228 code = ['0']
229
230 op = voltage1.addOperation(name='CohInt', optype='other') #Minimo integrar 2 perfiles por ser codigo complementario
231 op.addParameter(name='n', value=2, format='int')
232
233 if args.range > 0:
234 op = voltage1.addOperation(name='selectHeights')
235 op.addParameter(name='minIndex', value='0', format='int')
236 op.addParameter(name='maxIndex', value=max_index(RMIX, sample_rate, ipp), format='int')
237
238 op = voltage1.addOperation(name='setH0')
239 op.addParameter(name='h0', value=H0, format='float')
240
241 op = voltage1.addOperation(name='PulsePair_vRF', optype='other')
242 op.addParameter(name='n', value=int(conf['usrp_tx']['repetitions_1'])/2, format='int')
243
244 proc1 = project.addProcUnit(datatype='ParametersProc', inputId=voltage1.getId())
245 proc1.addParameter(name='runNextUnit', value=True)
246
247 opObj10 = proc1.addOperation(name="WeatherRadar")
248 opObj10.addParameter(name='tauW',value=(1e-6/sample_rate)*len(code[0]))
249 opObj10.addParameter(name='Pt',value=((1e-6/sample_rate)*len(code[0])/ipp)*200)
250
251 op = proc1.addOperation(name='PedestalInformation')
252 op.addParameter(name='path', value=path_ped, format='str')
253 op.addParameter(name='interval', value='0.04')
254 op.addParameter(name='time_offset', value=time_offset)
255 op.addParameter(name='mode', value='PPI')
256
257 op = proc1.addOperation(name='Block360')
258 op.addParameter(name='attr_data', value='data_param')
259 op.addParameter(name='runNextOp', value=True)
260
261
262 voltage2 = project.addProcUnit(datatype='VoltageProc', inputId=reader.getId())
263
264 op = voltage2.addOperation(name='ProfileSelector')
265 op.addParameter(name='profileRangeList', value='{},{}'.format(conf['usrp_tx']['repetitions_1'], conf['usrp_tx']['repetitions_1']+conf['usrp_tx']['repetitions_2']-1))
266
267 if conf['usrp_tx']['code_type_2']:
268 codes = [ c.strip() for c in conf['usrp_tx']['code_2'].split(',')]
269 code = []
270 for c in codes:
271 code.append([int(x) for x in c])
272 op = voltage2.addOperation(name='Decoder', optype='other')
273 op.addParameter(name='code', value=code)
274 op.addParameter(name='nCode', value=len(code), format='int')
275 op.addParameter(name='nBaud', value=len(code[0]), format='int')
276
277 op = voltage2.addOperation(name='CohInt', optype='other') #Minimo integrar 2 perfiles por ser codigo complementario
278 op.addParameter(name='n', value=len(code), format='int')
279 ncode = len(code)
280 else:
281 ncode = 1
282
283 if args.range > 0:
284 op = voltage2.addOperation(name='selectHeights')
285 op.addParameter(name='minIndex', value=max_index(RMIX, sample_rate, ipp), format='int')
286 op.addParameter(name='maxIndex', value=max_index(args.range, sample_rate, ipp), format='int')
287
288 op = voltage2.addOperation(name='setH0')
289 op.addParameter(name='h0', value=H0, format='float')
290
291 op = voltage2.addOperation(name='PulsePair_vRF', optype='other')
292 op.addParameter(name='n', value=int(conf['usrp_tx']['repetitions_2'])/ncode, format='int')
293
294 proc2 = project.addProcUnit(datatype='ParametersProc', inputId=voltage2.getId())
295 proc2.addParameter(name='runNextUnit', value=True)
296
297 opObj10 = proc2.addOperation(name="WeatherRadar")
298 opObj10.addParameter(name='tauW',value=(1e-6/sample_rate)*len(code[0]))
299 opObj10.addParameter(name='Pt',value=((1e-6/sample_rate)*len(code[0])/ipp)*200)
300
301 op = proc2.addOperation(name='PedestalInformation')
302 op.addParameter(name='path', value=path_ped, format='str')
303 op.addParameter(name='interval', value='0.04')
304 op.addParameter(name='time_offset', value=time_offset)
305 op.addParameter(name='mode', value='PPI')
306
307 op = proc2.addOperation(name='Block360')
308 op.addParameter(name='attr_data', value='data_param')
309 op.addParameter(name='runNextOp', value=True)
310
311 merge = project.addProcUnit(datatype='MergeProc', inputId=[proc1.getId(), proc2.getId()])
312 merge.addParameter(name='attr_data', value='data_param')
313 merge.addParameter(name='mode', value='7') #RM
314
315
316 for param in parameters:
317
318 if args.plot:
319 op= merge.addOperation(name='WeatherParamsPlot')
320 if args.save:
321 op.addParameter(name='save', value=path_plots, format='str')
322 op.addParameter(name='save_period', value=-1)
323 op.addParameter(name='show', value=args.show)
324 op.addParameter(name='channels', value='0,')
325 op.addParameter(name='zmin', value=PARAM[param]['zmin'], format='int')
326 op.addParameter(name='zmax', value=PARAM[param]['zmax'], format='int')
327 op.addParameter(name='attr_data', value=param, format='str')
328 op.addParameter(name='labels', value=[PARAM[param]['label']])
329 op.addParameter(name='save_code', value=param)
330 op.addParameter(name='cb_label', value=PARAM[param]['cb_label'])
331 op.addParameter(name='colormap', value=PARAM[param]['colormap'])
332 op.addParameter(name='bgcolor', value='black')
333 if MASK: op.addParameter(name='mask', value=MASK, format='float')
334 if args.server:
335 op.addParameter(name='server', value='0.0.0.0:4444')
336 op.addParameter(name='exp_code', value='400')
337
338 desc = {
339 'Data': {
340 'data_param': {PARAM[param]['wrname']: ['H', 'V']},
341 'utctime': 'time'
342 },
343 'Metadata': {
344 'heightList': 'range',
345 'data_azi': 'azimuth',
346 'data_ele': 'elevation',
347 'mode_op': 'scan_type',
348 'h0': 'range_correction',
349 'dataPP_NOISE': 'noise',
350 }
351 }
352
353 if args.save:
354 writer = merge.addOperation(name='HDFWriter')
355 writer.addParameter(name='path', value=path_save, format='str')
356 writer.addParameter(name='Reset', value=True)
357 writer.addParameter(name='setType', value='weather')
358 writer.addParameter(name='description', value=json.dumps(desc))
359 writer.addParameter(name='blocksPerFile', value='1',format='int')
360 writer.addParameter(name='metadataList', value=','.join(META))
361 writer.addParameter(name='dataList', value='data_param,utctime')
362 writer.addParameter(name='weather_var', value=param)
363 writer.addParameter(name='mask', value=MASK, format='float')
364 # meta
365 writer.addParameter(name='latitude', value='-12.040436')
366 writer.addParameter(name='longitude', value='-75.295893')
367 writer.addParameter(name='altitude', value='3379.2147')
368 writer.addParameter(name='heading', value='0')
369 writer.addParameter(name='radar_name', value='SOPHy')
370 writer.addParameter(name='institution', value='IGP')
371 writer.addParameter(name='contact', value='dscipion@igp.gob.pe')
372 writer.addParameter(name='created_by', value='Signal Chain (https://pypi.org/project/schainpy/)')
373 writer.addParameter(name='range_unit', value='km')
374 writer.addParameter(name='prf', value=1/ipp)
375 writer.addParameter(name='prf_unit', value='hertz')
376 writer.addParameter(name='variable', value=PARAM[param]['label'])
377 writer.addParameter(name='variable_unit', value=PARAM[param]['cb_label'])
378 writer.addParameter(name='n_pulses', value=n_pulses)
379 writer.addParameter(name='pulse1_range', value=RMIX)
380 writer.addParameter(name='pulse1_width', value=pulse_1_width)
381 writer.addParameter(name='pulse2_width', value=pulse_2_width)
382 writer.addParameter(name='pulse1_repetitions', value=pulse_1_repetitions)
383 writer.addParameter(name='pulse2_repetitions', value=pulse_2_repetitions)
384 writer.addParameter(name='pulse_width_unit', value='microseconds')
385 writer.addParameter(name='snr_threshold', value=MASK)
386
387
388 project.start()
389
390 if __name__ == '__main__':
391
392 parser = argparse.ArgumentParser(description='Script to process SOPHy data.')
393 parser.add_argument('experiment',
394 help='Experiment name')
395 parser.add_argument('--parameters', nargs='*', default=['S'],
396 help='Variables to process: P, Z, V')
397 parser.add_argument('--time_offset', default=0,
398 help='Fix time offset')
399 parser.add_argument('--range', default=0, type=float,
400 help='Max range to plot')
401 parser.add_argument('--save', action='store_true',
402 help='Create output files')
403 parser.add_argument('--plot', action='store_true',
404 help='Create plot files')
405 parser.add_argument('--show', action='store_true',
406 help='Show matplotlib plot.')
407 parser.add_argument('--online', action='store_true',
408 help='Set online mode.')
409 parser.add_argument('--server', action='store_true',
410 help='Send to realtime')
411 parser.add_argument('--start_time', default='',
412 help='Set start time.')
413 parser.add_argument('--label', default='',
414 help='Label for plot & param folder')
415
416 args = parser.parse_args()
417
418 main(args)
@@ -0,0 +1,117
1 import os,sys,json
2 import datetime
3 import time
4 import argparse
5
6 from schainpy.controller import Project
7 '''
8 NOTA:
9 Este script de prueba.
10 - Unidad del lectura 'HDFReader'.
11 - Unidad de procesamiento ParametersProc
12 '''
13 PATH = "/home/soporte/Documents/EVENTO/HYO_PM@2022-06-09T15-05-12/paramC0N36.0/2022-06-09T18-00-00/"
14 #PATH = "/home/soporte/Documents/EVENTO/HYO_PM@2022-06-09T15-05-12/param/2022-06-09T18-00-00/"
15
16 #PATH = "/home/soporte/Documents/EVENTO/HYO_PM@2022-06-09T15-05-12/paramC0N36.0/2022-06-09T19-00-00/"
17 #PATH = "/home/soporte/Documents/EVENTO/HYO_PM@2022-05-31T12-00-17/paramC0N36.0/2022-05-31T16-00-00/"
18 path = PATH
19 PARAM = {
20 'S': {'zmin': -45, 'zmax': -25, 'colormap': 'jet', 'label': 'Power', 'wrname': 'power','cb_label': 'dBm', 'ch':0},
21 'SNR': {'zmin': -40, 'zmax': -20, 'colormap': 'jet', 'label': 'SNR', 'wrname': 'snr','cb_label': 'dB', 'ch':0},
22 'V': {'zmin': -12, 'zmax': 12, 'colormap': 'sophy_v', 'label': 'Velocity', 'wrname': 'velocity', 'cb_label': 'm/s', 'ch':0},
23 'R': {'zmin': 0, 'zmax': 1, 'colormap': 'jet', 'label': 'RhoHV', 'wrname':'rhoHV', 'cb_label': '*', 'ch':0},
24 'P': {'zmin': -180,'zmax': 180,'colormap': 'RdBu_r', 'label': 'PhiDP', 'wrname':'phiDP' , 'cb_label': 'ΒΊ', 'ch':0},
25 'D': {'zmin': -30, 'zmax': 80, 'colormap': 'sophy_r','label': 'ZDR','wrname':'differential_reflectivity' , 'cb_label': 'dBz','ch':0},
26 'Z': {'zmin': -30, 'zmax': 80, 'colormap': 'sophy_r','label': 'Reflectivity ', 'wrname':'reflectivity', 'cb_label': 'dBz','ch':0},
27 'W': {'zmin': 0, 'zmax': 15, 'colormap': 'sophy_w','label': 'Spectral Width', 'wrname':'spectral_width', 'cb_label': 'm/s', 'ch':0}
28 }
29
30 def main(args):
31 #filefmt="******%Y%m%d*%H%M%S*******"
32 #filefmt="SOPHY_20220609_184620_E8.0_Z"
33 parameters = args.parameters
34 grado = args.grado
35 MASK = None
36
37 for param in parameters:
38 filefmt ="******%Y%m%d*%H%M%S*******"
39 filter= "_E"+str(grado)+".0_"+param
40 variable = 'Data/'+PARAM[param]['wrname']+'/H'
41 desc = {
42 'Data': {
43 'data_param': [variable],
44 'utctime' : 'Data/time'
45 },
46 'Metadata': {
47 'heightList': 'Metadata/range',
48 'data_azi' : 'Metadata/azimuth',
49 'data_ele' : 'Metadata/elevation',
50 'mode_op' : 'Metadata/scan_type',
51 'h0' : 'Metadata/range_correction',
52 }
53 }
54
55 project = Project()
56
57 project.setup(id='10',name='Test Simulator',description=desc)
58
59 readUnitConfObj = project.addReadUnit(datatype='HDFReader',
60 path=path,
61 startDate="2022/01/01", #"2020/01/01",#today,
62 endDate= "2022/12/01", #"2020/12/30",#today,
63 startTime='00:00:00',
64 endTime='23:59:59',
65 delay=0,
66 #set=0,
67 online=0,
68 walk=0,
69 filefmt=filefmt,
70 filter=filter,
71 dparam= 1,
72 description= json.dumps(desc))#1
73
74 proc1 = project.addProcUnit(datatype='ParametersProc',inputId=readUnitConfObj.getId())
75
76 if args.plot:
77 print("plotea")
78 op= proc1.addOperation(name='WeatherParamsPlot')
79 if args.save:
80 op.addParameter(name='save', value=path_plots, format='str')
81 op.addParameter(name='save_period', value=-1)
82 op.addParameter(name='show', value=args.show)
83 op.addParameter(name='channels', value='0,')
84 op.addParameter(name='zmin', value=PARAM[param]['zmin'], format='int')
85 op.addParameter(name='zmax', value=PARAM[param]['zmax'], format='int')
86 op.addParameter(name='attr_data', value=param, format='str')
87 op.addParameter(name='labels', value=[PARAM[param]['label']])
88 op.addParameter(name='save_code', value=param)
89 op.addParameter(name='cb_label', value=PARAM[param]['cb_label'])
90 op.addParameter(name='colormap', value=PARAM[param]['colormap'])
91 op.addParameter(name='bgcolor', value='black')
92 if MASK: op.addParameter(name='mask', value=MASK, format='float')
93 if args.server:
94 op.addParameter(name='server', value='0.0.0.0:4444')
95 op.addParameter(name='exp_code', value='400')
96 project.start()
97
98 if __name__ == '__main__':
99
100 parser = argparse.ArgumentParser(description='Script to process SOPHy data.')
101 parser.add_argument('--parameters', nargs='*', default=['S'],
102 help='Variables to process: P, Z, V ,W')
103 parser.add_argument('--grado', default=2,
104 help='Angle in Elev to plot')
105 parser.add_argument('--save', default=0,
106 help='Save plot')
107 parser.add_argument('--range', default=0, type=float,
108 help='Max range to plot')
109 parser.add_argument('--plot', action='store_true',
110 help='Create plot files')
111 parser.add_argument('--show', action='store_true',
112 help='Show matplotlib plot.')
113 parser.add_argument('--server', action='store_true',
114 help='Send to realtime')
115 args = parser.parse_args()
116
117 main(args)
General Comments 0
You need to be logged in to leave comments. Login now