@@ -1,57 +1,75 | |||
|
1 | 1 | # SOPHY PROC script |
|
2 | 2 | import os, sys, json, argparse |
|
3 | import multiprocessing | |
|
3 | 4 | import datetime |
|
4 | 5 | import time |
|
5 | 6 | |
|
6 | PATH = '/DATA_RM/DATA' | |
|
7 | PATH = '/media/jespinoza/Elements' | |
|
8 | PATH = '/media/jespinoza/data/SOPHY' | |
|
9 | PATH = '/home/soporte/Documents/EVENTO' | |
|
10 | ||
|
7 | PATH = '/data' | |
|
8 | #PATH = "/media/soporte/TOSHIBAEXT/sophy/" | |
|
9 | # SNR ZMIN -40 A ZMAX -20 | |
|
11 | 10 | PARAM = { |
|
12 | 11 |
'S': {'zmin': -45, 'zmax': |
|
13 |
'SNR': |
|
|
12 | 'SNR':{'zmin': -10, 'zmax': 15, 'colormap': 'jet' , 'label': 'SNR', 'wrname': 'snr','cb_label': 'dB', 'ch':0}, | |
|
14 | 13 | 'V': {'zmin': -12, 'zmax': 12, 'colormap': 'sophy_v', 'label': 'Velocity', 'wrname': 'velocity', 'cb_label': 'm/s', 'ch':0}, |
|
15 |
'R': {'zmin': 0, |
|
|
16 |
'P': {'zmin': -180,'zmax': 180,'colormap': ' |
|
|
17 |
'D': {'zmin': - |
|
|
18 |
'Z': {'zmin': - |
|
|
19 |
'W': {'zmin': |
|
|
14 | 'R': {'zmin': 0.5, 'zmax': 1 , 'colormap': 'sophy_r', 'label': 'RhoHV', 'wrname':'rhoHV', 'cb_label': '', 'ch':0}, | |
|
15 | 'P': {'zmin': -180,'zmax': 180,'colormap': 'sophy_p', 'label': 'PhiDP', 'wrname':'phiDP' , 'cb_label': 'degrees', 'ch':0}, | |
|
16 | 'D': {'zmin': -9 , 'zmax': 12, 'colormap': 'sophy_d', 'label': 'ZDR','wrname':'differential_reflectivity' , 'cb_label': 'dB','ch':0}, | |
|
17 | 'Z': {'zmin': -20, 'zmax': 80, 'colormap': 'sophy_z', 'label': 'Reflectivity ', 'wrname':'reflectivity', 'cb_label': 'dBz','ch':0}, | |
|
18 | 'W': {'zmin': 0 , 'zmax': 12, 'colormap': 'sophy_w', 'label': 'Spectral Width', 'wrname':'spectral_width', 'cb_label': 'm/s', 'ch':0} | |
|
20 | 19 | } |
|
21 | 20 | |
|
22 | def max_index(r, sample_rate, ipp): | |
|
21 | META = ['heightList', 'data_azi', 'data_ele', 'mode_op', 'latitude', 'longitude', 'altitude', 'heading', 'radar_name', | |
|
22 | 'institution', 'contact', 'h0', 'range_unit', 'prf', 'prf_unit', 'variable', 'variable_unit', 'n_pulses', | |
|
23 | 'pulse1_range', 'pulse1_width', 'pulse2_width', 'pulse1_repetitions', 'pulse2_repetitions', 'pulse_width_unit', | |
|
24 | 'snr_threshold', 'data_noise'] | |
|
25 | ||
|
26 | ||
|
27 | def max_index(r, sample_rate, ipp, h0): | |
|
23 | 28 | |
|
24 |
return int(sample_rate*ipp*1e6 * r / 60) + int(sample_rate*ipp*1e6 * |
|
|
29 | return int(sample_rate*ipp*1e6 * r / 60) + int(sample_rate*ipp*1e6 * -h0 / 60) | |
|
25 | 30 | |
|
26 | 31 | def main(args): |
|
27 | 32 | |
|
28 | 33 | experiment = args.experiment |
|
29 |
fp = open(os.path.join(PATH, experiment, 'experiment. |
|
|
34 | fp = open(os.path.join(PATH, experiment, 'experiment.json')) | |
|
30 | 35 | conf = json.loads(fp.read()) |
|
31 | 36 | |
|
32 | 37 | ipp_km = conf['usrp_tx']['ipp'] |
|
33 | 38 | ipp = ipp_km * 2 /300000 |
|
34 | 39 | sample_rate = conf['usrp_rx']['sample_rate'] |
|
35 | axis = ['0' if x=='elevation' else '1' for x in conf['pedestal']['axis']] # AZIMUTH 1 ELEVACION 0 | |
|
36 | 40 | speed_axis = conf['pedestal']['speed'] |
|
37 | steps = conf['pedestal']['table'] | |
|
41 | if args.angles: | |
|
42 | angles = args.angles | |
|
43 | else: | |
|
44 | angles = conf['pedestal']['table'] | |
|
38 | 45 | time_offset = args.time_offset |
|
39 | 46 | parameters = args.parameters |
|
40 |
start_date = |
|
|
47 | start_date = conf['name'].split('@')[1].split('T')[0].replace('-', '/') | |
|
41 | 48 | end_date = start_date |
|
42 | 49 | if args.start_time: |
|
43 | 50 | start_time = args.start_time |
|
44 | 51 | else: |
|
45 |
start_time = |
|
|
52 | start_time = conf['name'].split('@')[1].split('T')[1].replace('-', ':') | |
|
53 | ||
|
54 | if args.end_time: | |
|
55 | end_time = args.end_time | |
|
56 | else: | |
|
46 | 57 | end_time = '23:59:59' |
|
47 | N = int(1/(speed_axis[0]*ipp)) # 1 GRADO DE RESOLUCION | |
|
58 | ||
|
59 | N = int(1.0/(abs(speed_axis[0])*ipp)) # 1 GRADO DE RESOLUCION | |
|
60 | ||
|
48 | 61 | path = os.path.join(PATH, experiment, 'rawdata') |
|
49 | 62 | path_ped = os.path.join(PATH, experiment, 'position') |
|
50 | path_plots = os.path.join(PATH, experiment, 'plotsC0N'+str(args.range)) | |
|
51 | path_save = os.path.join(PATH, experiment, 'paramC0N'+str(args.range)) | |
|
52 | RMIX = 1.62 | |
|
53 | H0 = -1.68 | |
|
54 | MASK = 0.3 | |
|
63 | if args.label: | |
|
64 | label = '-{}'.format(args.label) | |
|
65 | else: | |
|
66 | label = '' | |
|
67 | path_plots = os.path.join(PATH, experiment, 'plots{}'.format(label)) | |
|
68 | path_save = os.path.join(PATH, experiment, 'param{}'.format(label)) | |
|
69 | RMIX = 4.8#5.8 #4.8#5.68#4.8#4.8#2.64#10#2.64 | |
|
70 | H0 = -1.68 #-1.68# -1.2#-1.68#-1.2#0.5#-1.2 | |
|
71 | MASK = 0.6 | |
|
72 | #MASK = 0.4#0.35 | |
|
55 | 73 | |
|
56 | 74 | from schainpy.controller import Project |
|
57 | 75 | |
@@ -73,6 +91,12 def main(args): | |||
|
73 | 91 | ) |
|
74 | 92 | |
|
75 | 93 | if not conf['usrp_tx']['enable_2']: # One Pulse |
|
94 | n_pulses = 1 | |
|
95 | pulse_1_width = conf['usrp_tx']['pulse_1'] | |
|
96 | pulse_1_repetitions = conf['usrp_tx']['repetitions_1'] | |
|
97 | pulse_2_width = 0 | |
|
98 | pulse_2_repetitions = 0 | |
|
99 | ||
|
76 | 100 | voltage = project.addProcUnit(datatype='VoltageProc', inputId=reader.getId()) |
|
77 | 101 | |
|
78 | 102 | if conf['usrp_tx']['code_type_1'] != 'None': |
@@ -98,50 +122,55 def main(args): | |||
|
98 | 122 | if args.range > 0: |
|
99 | 123 | op = voltage.addOperation(name='selectHeights') |
|
100 | 124 | op.addParameter(name='minIndex', value='0', format='int') |
|
101 | op.addParameter(name='maxIndex', value=max_index(args.range, sample_rate, ipp), format='int') | |
|
125 | op.addParameter(name='maxIndex', value=max_index(args.range, sample_rate, ipp, H0), format='int') | |
|
102 | 126 | |
|
103 | 127 | op = voltage.addOperation(name='PulsePair_vRF', optype='other') |
|
104 | 128 | op.addParameter(name='n', value=int(N)/ncode, format='int') |
|
105 | #op.addParameter(name='removeDC', value=1, format='int') | |
|
106 | ||
|
129 | if args.rmDC: | |
|
130 | op.addParameter(name='removeDC', value=1, format='int') | |
|
107 | 131 | |
|
108 | 132 | proc = project.addProcUnit(datatype='ParametersProc', inputId=voltage.getId()) |
|
109 | 133 | |
|
110 | 134 | opObj10 = proc.addOperation(name="WeatherRadar") |
|
111 | 135 | opObj10.addParameter(name='tauW',value=(1e-6/sample_rate)*len(code[0])) |
|
112 | opObj10.addParameter(name='Pt',value=((1e-6/sample_rate)*len(code[0])/ipp)*200) | |
|
136 | # opObj10.addParameter(name='Pt',value=((1e-6/sample_rate)*len(code[0])/ipp)*200) | |
|
137 | opObj10.addParameter(name='Pt',value=200) | |
|
113 | 138 | |
|
114 | 139 | op = proc.addOperation(name='PedestalInformation') |
|
115 | 140 | op.addParameter(name='path', value=path_ped, format='str') |
|
116 | 141 | op.addParameter(name='interval', value='0.04') |
|
117 | 142 | op.addParameter(name='time_offset', value=time_offset) |
|
118 |
op.addParameter(name='mode', value= |
|
|
143 | op.addParameter(name='mode', value=args.mode) | |
|
119 | 144 | |
|
120 | 145 | for param in parameters: |
|
121 | 146 | op = proc.addOperation(name='Block360') |
|
122 | 147 | op.addParameter(name='runNextOp', value=True) |
|
148 | op.addParameter(name='attr_data', value='data_param') | |
|
149 | op.addParameter(name='angles', value=angles) | |
|
123 | 150 | |
|
124 | 151 | op= proc.addOperation(name='WeatherParamsPlot') |
|
125 | 152 | if args.save: op.addParameter(name='save', value=path_plots, format='str') |
|
126 | 153 | op.addParameter(name='save_period', value=-1) |
|
127 | 154 | op.addParameter(name='show', value=args.show) |
|
128 |
op.addParameter(name='channels', value=' |
|
|
155 | op.addParameter(name='channels', value='0,') | |
|
129 | 156 | op.addParameter(name='zmin', value=PARAM[param]['zmin']) |
|
130 | 157 | op.addParameter(name='zmax', value=PARAM[param]['zmax']) |
|
131 | 158 | op.addParameter(name='attr_data', value=param, format='str') |
|
132 | op.addParameter(name='labels', value=[PARAM[param]['label']]) | |
|
159 | op.addParameter(name='labels', value=[PARAM[param]['label'], PARAM[param]['label']]) | |
|
133 | 160 | op.addParameter(name='save_code', value=param) |
|
134 | 161 | op.addParameter(name='cb_label', value=PARAM[param]['cb_label']) |
|
135 | 162 | op.addParameter(name='colormap', value=PARAM[param]['colormap']) |
|
136 | 163 | op.addParameter(name='bgcolor', value='black') |
|
164 | op.addParameter(name='localtime', value=False) | |
|
165 | op.addParameter(name='shapes', value='./shapes') | |
|
137 | 166 | if MASK: op.addParameter(name='mask', value=MASK, format='float') |
|
138 | 167 | if args.server: |
|
139 |
op.addParameter(name='server', value=' |
|
|
168 | op.addParameter(name='server', value='190.187.237.239:4444') | |
|
140 | 169 | op.addParameter(name='exp_code', value='400') |
|
141 | 170 | |
|
142 | 171 | desc = { |
|
143 | 172 | 'Data': { |
|
144 | param: PARAM[param]['wrname'], | |
|
173 | 'data_param': {PARAM[param]['wrname']: ['H', 'V']}, | |
|
145 | 174 | 'utctime': 'time' |
|
146 | 175 | }, |
|
147 | 176 | 'Metadata': { |
@@ -150,19 +179,22 def main(args): | |||
|
150 | 179 | 'data_ele': 'elevation', |
|
151 | 180 | 'mode_op': 'scan_type', |
|
152 | 181 | 'h0': 'range_correction', |
|
182 | 'dataPP_NOISE': 'noise', | |
|
153 | 183 | } |
|
154 | 184 | } |
|
155 | 185 | |
|
156 | 186 | if args.save: |
|
157 |
|
|
|
187 | writer = proc.addOperation(name='HDFWriter') | |
|
158 | 188 | writer.addParameter(name='path', value=path_save, format='str') |
|
159 | 189 | writer.addParameter(name='Reset', value=True) |
|
160 | 190 | writer.addParameter(name='setType', value='weather') |
|
161 | 191 | writer.addParameter(name='description', value=json.dumps(desc)) |
|
162 | 192 | writer.addParameter(name='blocksPerFile', value='1',format='int') |
|
163 | writer.addParameter(name='metadataList', value='heightList,data_azi,data_ele,mode_op,latitude,longitude,altitude,heading,radar_name,institution,contact,h0,range_unit') | |
|
164 |
writer.addParameter(name='dataList', value=' |
|
|
193 | writer.addParameter(name='metadataList', value=','.join(META)) | |
|
194 | writer.addParameter(name='dataList', value='data_param,utctime') | |
|
195 | writer.addParameter(name='weather_var', value=param) | |
|
165 | 196 | writer.addParameter(name='mask', value=MASK, format='float') |
|
197 | writer.addParameter(name='localtime', value=False) | |
|
166 | 198 | # meta |
|
167 | 199 | writer.addParameter(name='latitude', value='-12.040436') |
|
168 | 200 | writer.addParameter(name='longitude', value='-75.295893') |
@@ -173,8 +205,26 def main(args): | |||
|
173 | 205 | writer.addParameter(name='contact', value='dscipion@igp.gob.pe') |
|
174 | 206 | writer.addParameter(name='created_by', value='Signal Chain (https://pypi.org/project/schainpy/)') |
|
175 | 207 | writer.addParameter(name='range_unit', value='km') |
|
208 | writer.addParameter(name='prf', value=1/ipp) | |
|
209 | writer.addParameter(name='prf_unit', value='hertz') | |
|
210 | writer.addParameter(name='variable', value=PARAM[param]['label']) | |
|
211 | writer.addParameter(name='variable_unit', value=PARAM[param]['cb_label']) | |
|
212 | writer.addParameter(name='n_pulses', value=n_pulses) | |
|
213 | writer.addParameter(name='pulse1_range', value=RMIX) | |
|
214 | writer.addParameter(name='pulse1_width', value=pulse_1_width) | |
|
215 | writer.addParameter(name='pulse2_width', value=pulse_2_width) | |
|
216 | writer.addParameter(name='pulse1_repetitions', value=pulse_1_repetitions) | |
|
217 | writer.addParameter(name='pulse2_repetitions', value=pulse_2_repetitions) | |
|
218 | writer.addParameter(name='pulse_width_unit', value='microseconds') | |
|
219 | writer.addParameter(name='snr_threshold', value=MASK) | |
|
220 | ||
|
176 | 221 | |
|
177 | 222 | else: #Two pulses |
|
223 | n_pulses = 1 | |
|
224 | pulse_1_width = conf['usrp_tx']['pulse_1'] | |
|
225 | pulse_1_repetitions = conf['usrp_tx']['repetitions_1'] | |
|
226 | pulse_2_width = conf['usrp_tx']['pulse_2'] | |
|
227 | pulse_2_repetitions = conf['usrp_tx']['repetitions_2'] | |
|
178 | 228 | |
|
179 | 229 | voltage1 = project.addProcUnit(datatype='VoltageProc', inputId=reader.getId()) |
|
180 | 230 | |
@@ -190,42 +240,54 def main(args): | |||
|
190 | 240 | op.addParameter(name='code', value=code) |
|
191 | 241 | op.addParameter(name='nCode', value=len(code), format='int') |
|
192 | 242 | op.addParameter(name='nBaud', value=len(code[0]), format='int') |
|
243 | ncode = len(code) | |
|
193 | 244 | else: |
|
245 | ncode = 1 | |
|
194 | 246 | code = ['0'] |
|
195 | 247 | |
|
196 | 248 | op = voltage1.addOperation(name='CohInt', optype='other') #Minimo integrar 2 perfiles por ser codigo complementario |
|
197 | 249 | op.addParameter(name='n', value=2, format='int') |
|
198 | 250 | |
|
251 | op = voltage1.addOperation(name='setH0') | |
|
252 | op.addParameter(name='h0', value=H0, format='float') | |
|
253 | ||
|
199 | 254 | if args.range > 0: |
|
200 | 255 | op = voltage1.addOperation(name='selectHeights') |
|
201 |
op.addParameter(name='minIndex', value= |
|
|
202 | op.addParameter(name='maxIndex', value=max_index(RMIX, sample_rate, ipp), format='int') | |
|
256 | op.addParameter(name='minIndex', value=max_index(0, sample_rate, ipp, H0), format='int') | |
|
257 | op.addParameter(name='maxIndex', value=max_index(RMIX, sample_rate, ipp, H0), format='int') | |
|
203 | 258 | |
|
204 | op = voltage1.addOperation(name='setH0') | |
|
205 | op.addParameter(name='h0', value=H0, format='float') | |
|
259 | #op = voltage1.addOperation(name='setH0') | |
|
260 | #op.addParameter(name='h0', value=H0, format='float') | |
|
206 | 261 | |
|
207 | 262 | op = voltage1.addOperation(name='PulsePair_vRF', optype='other') |
|
208 |
op.addParameter(name='n', value=int(conf['usrp_tx']['repetitions_1'])/ |
|
|
209 | #op.addParameter(name='removeDC', value=1, format='int') | |
|
210 | ||
|
263 | op.addParameter(name='n', value=int(conf['usrp_tx']['repetitions_1'])/ncode, format='int') | |
|
264 | if args.rmDC: | |
|
265 | op.addParameter(name='removeDC', value=1, format='int') | |
|
211 | 266 | |
|
212 | 267 | proc1 = project.addProcUnit(datatype='ParametersProc', inputId=voltage1.getId()) |
|
213 | 268 | proc1.addParameter(name='runNextUnit', value=True) |
|
214 | 269 | |
|
215 | 270 | opObj10 = proc1.addOperation(name="WeatherRadar") |
|
271 | opObj10.addParameter(name='CR_Flag',value=True) | |
|
216 | 272 | opObj10.addParameter(name='tauW',value=(1e-6/sample_rate)*len(code[0])) |
|
273 | #opObj10.addParameter(name='Pt',value=((1e-6/sample_rate)*len(code[0])/ipp)*200) | |
|
217 | 274 | opObj10.addParameter(name='Pt',value=200) |
|
275 | #opObj10.addParameter(name='min_index',value=0) | |
|
276 | opObj10.addParameter(name='min_index',value=max_index(0, sample_rate, ipp, H0)) | |
|
277 | #opObj10.addParameter(name='sesgoZD',value=7.73) | |
|
278 | ||
|
218 | 279 | |
|
219 | 280 | op = proc1.addOperation(name='PedestalInformation') |
|
220 | 281 | op.addParameter(name='path', value=path_ped, format='str') |
|
221 | 282 | op.addParameter(name='interval', value='0.04') |
|
222 | 283 | op.addParameter(name='time_offset', value=time_offset) |
|
223 |
op.addParameter(name='mode', value= |
|
|
284 | op.addParameter(name='mode', value=args.mode) | |
|
224 | 285 | |
|
225 | 286 | op = proc1.addOperation(name='Block360') |
|
226 | 287 | op.addParameter(name='attr_data', value='data_param') |
|
227 | 288 | op.addParameter(name='runNextOp', value=True) |
|
228 | ||
|
289 | op.addParameter(name='angles', value=angles) | |
|
290 | #op.addParameter(name='horario',value=False) | |
|
229 | 291 | |
|
230 | 292 | voltage2 = project.addProcUnit(datatype='VoltageProc', inputId=reader.getId()) |
|
231 | 293 | |
@@ -248,35 +310,45 def main(args): | |||
|
248 | 310 | else: |
|
249 | 311 | ncode = 1 |
|
250 | 312 | |
|
313 | op = voltage2.addOperation(name='setH0') | |
|
314 | op.addParameter(name='h0', value=H0, format='float') | |
|
315 | ||
|
251 | 316 | if args.range > 0: |
|
317 | print('voltage 2', flush=True) | |
|
252 | 318 | op = voltage2.addOperation(name='selectHeights') |
|
253 | op.addParameter(name='minIndex', value=max_index(RMIX, sample_rate, ipp), format='int') | |
|
254 | op.addParameter(name='maxIndex', value=max_index(args.range, sample_rate, ipp), format='int') | |
|
319 | op.addParameter(name='minIndex', value=max_index(RMIX, sample_rate, ipp, H0), format='int') | |
|
320 | op.addParameter(name='maxIndex', value=max_index(args.range, sample_rate, ipp, H0), format='int') | |
|
255 | 321 | |
|
256 | op = voltage2.addOperation(name='setH0') | |
|
257 | op.addParameter(name='h0', value=H0, format='float') | |
|
322 | #op = voltage2.addOperation(name='setH0') | |
|
323 | #op.addParameter(name='h0', value=H0, format='float') | |
|
258 | 324 | |
|
259 | 325 | op = voltage2.addOperation(name='PulsePair_vRF', optype='other') |
|
260 | 326 | op.addParameter(name='n', value=int(conf['usrp_tx']['repetitions_2'])/ncode, format='int') |
|
261 | #op.addParameter(name='removeDC', value=1, format='int') | |
|
262 | ||
|
327 | if args.rmDC: | |
|
328 | op.addParameter(name='removeDC', value=1, format='int') | |
|
263 | 329 | |
|
264 | 330 | proc2 = project.addProcUnit(datatype='ParametersProc', inputId=voltage2.getId()) |
|
265 | 331 | proc2.addParameter(name='runNextUnit', value=True) |
|
266 | 332 | |
|
267 | 333 | opObj10 = proc2.addOperation(name="WeatherRadar") |
|
334 | opObj10.addParameter(name='CR_Flag',value=True,format='bool') | |
|
268 | 335 | opObj10.addParameter(name='tauW',value=(1e-6/sample_rate)*len(code[0])) |
|
336 | #opObj10.addParameter(name='Pt',value=((1e-6/sample_rate)*len(code[0])/ipp)*200) | |
|
269 | 337 | opObj10.addParameter(name='Pt',value=200) |
|
338 | opObj10.addParameter(name='min_index',value=max_index(RMIX, sample_rate, ipp, H0)) | |
|
339 | #opObj10.addParameter(name='sesgoZD',value=7.73) | |
|
270 | 340 | |
|
271 | 341 | op = proc2.addOperation(name='PedestalInformation') |
|
272 | 342 | op.addParameter(name='path', value=path_ped, format='str') |
|
273 | 343 | op.addParameter(name='interval', value='0.04') |
|
274 | 344 | op.addParameter(name='time_offset', value=time_offset) |
|
275 |
op.addParameter(name='mode', value= |
|
|
345 | op.addParameter(name='mode', value=args.mode) | |
|
276 | 346 | |
|
277 | 347 | op = proc2.addOperation(name='Block360') |
|
278 | 348 | op.addParameter(name='attr_data', value='data_param') |
|
279 | 349 | op.addParameter(name='runNextOp', value=True) |
|
350 | op.addParameter(name='angles', value=angles) | |
|
351 | #op.addParameter(name='horario',value=False) | |
|
280 | 352 | |
|
281 | 353 | merge = project.addProcUnit(datatype='MergeProc', inputId=[proc1.getId(), proc2.getId()]) |
|
282 | 354 | merge.addParameter(name='attr_data', value='data_param') |
@@ -291,18 +363,24 def main(args): | |||
|
291 | 363 | op.addParameter(name='save', value=path_plots, format='str') |
|
292 | 364 | op.addParameter(name='save_period', value=-1) |
|
293 | 365 | op.addParameter(name='show', value=args.show) |
|
366 | #op.addParameter(name='channels', value='0,1') | |
|
294 | 367 | op.addParameter(name='channels', value='0,') |
|
295 | 368 | op.addParameter(name='zmin', value=PARAM[param]['zmin'], format='int') |
|
296 | 369 | op.addParameter(name='zmax', value=PARAM[param]['zmax'], format='int') |
|
370 | op.addParameter(name='ymax', value=20, format='int') | |
|
371 | op.addParameter(name='xmin', value=-50, format='int') | |
|
372 | op.addParameter(name='xmax', value=50, format='int') | |
|
297 | 373 | op.addParameter(name='attr_data', value=param, format='str') |
|
298 | op.addParameter(name='labels', value=[PARAM[param]['label']]) | |
|
374 | op.addParameter(name='labels', value=[[PARAM[param]['label']], [PARAM[param]['label']]]) | |
|
299 | 375 | op.addParameter(name='save_code', value=param) |
|
300 | 376 | op.addParameter(name='cb_label', value=PARAM[param]['cb_label']) |
|
301 | 377 | op.addParameter(name='colormap', value=PARAM[param]['colormap']) |
|
302 | 378 | op.addParameter(name='bgcolor', value='black') |
|
379 | op.addParameter(name='localtime', value=False) | |
|
380 | op.addParameter(name='shapes', value='./shapes') | |
|
303 | 381 | if MASK: op.addParameter(name='mask', value=MASK, format='float') |
|
304 | 382 | if args.server: |
|
305 |
op.addParameter(name='server', value=' |
|
|
383 | op.addParameter(name='server', value='190.187.237.239:4444') | |
|
306 | 384 | op.addParameter(name='exp_code', value='400') |
|
307 | 385 | |
|
308 | 386 | desc = { |
@@ -316,6 +394,7 def main(args): | |||
|
316 | 394 | 'data_ele': 'elevation', |
|
317 | 395 | 'mode_op': 'scan_type', |
|
318 | 396 | 'h0': 'range_correction', |
|
397 | 'dataPP_NOISE': 'noise', | |
|
319 | 398 | } |
|
320 | 399 | } |
|
321 | 400 | |
@@ -324,12 +403,14 def main(args): | |||
|
324 | 403 | writer.addParameter(name='path', value=path_save, format='str') |
|
325 | 404 | writer.addParameter(name='Reset', value=True) |
|
326 | 405 | writer.addParameter(name='setType', value='weather') |
|
406 | writer.addParameter(name='setChannel', value='0') #new parameter choose ch 0 H or ch 1 V | |
|
327 | 407 | writer.addParameter(name='description', value=json.dumps(desc)) |
|
328 | 408 | writer.addParameter(name='blocksPerFile', value='1',format='int') |
|
329 | writer.addParameter(name='metadataList', value='heightList,data_azi,data_ele,mode_op,latitude,longitude,altitude,heading,radar_name,institution,contact,h0,range_unit') | |
|
409 | writer.addParameter(name='metadataList', value=','.join(META)) | |
|
330 | 410 | writer.addParameter(name='dataList', value='data_param,utctime') |
|
331 | 411 | writer.addParameter(name='weather_var', value=param) |
|
332 | 412 | writer.addParameter(name='mask', value=MASK, format='float') |
|
413 | writer.addParameter(name='localtime', value=False) | |
|
333 | 414 | # meta |
|
334 | 415 | writer.addParameter(name='latitude', value='-12.040436') |
|
335 | 416 | writer.addParameter(name='longitude', value='-75.295893') |
@@ -340,8 +421,20 def main(args): | |||
|
340 | 421 | writer.addParameter(name='contact', value='dscipion@igp.gob.pe') |
|
341 | 422 | writer.addParameter(name='created_by', value='Signal Chain (https://pypi.org/project/schainpy/)') |
|
342 | 423 | writer.addParameter(name='range_unit', value='km') |
|
343 | ||
|
344 | project.start() | |
|
424 | writer.addParameter(name='prf', value=1/ipp) | |
|
425 | writer.addParameter(name='prf_unit', value='hertz') | |
|
426 | writer.addParameter(name='variable', value=PARAM[param]['label']) | |
|
427 | writer.addParameter(name='variable_unit', value=PARAM[param]['cb_label']) | |
|
428 | writer.addParameter(name='n_pulses', value=n_pulses) | |
|
429 | writer.addParameter(name='pulse1_range', value=RMIX) | |
|
430 | writer.addParameter(name='pulse1_width', value=pulse_1_width) | |
|
431 | writer.addParameter(name='pulse2_width', value=pulse_2_width) | |
|
432 | writer.addParameter(name='pulse1_repetitions', value=pulse_1_repetitions) | |
|
433 | writer.addParameter(name='pulse2_repetitions', value=pulse_2_repetitions) | |
|
434 | writer.addParameter(name='pulse_width_unit', value='microseconds') | |
|
435 | writer.addParameter(name='snr_threshold', value=MASK) | |
|
436 | ||
|
437 | return project | |
|
345 | 438 | |
|
346 | 439 | if __name__ == '__main__': |
|
347 | 440 | |
@@ -350,6 +443,8 if __name__ == '__main__': | |||
|
350 | 443 | help='Experiment name') |
|
351 | 444 | parser.add_argument('--parameters', nargs='*', default=['S'], |
|
352 | 445 | help='Variables to process: P, Z, V') |
|
446 | parser.add_argument('--angles', nargs='*', default=[], type=int, | |
|
447 | help='Angles to process') | |
|
353 | 448 | parser.add_argument('--time_offset', default=0, |
|
354 | 449 | help='Fix time offset') |
|
355 | 450 | parser.add_argument('--range', default=0, type=float, |
@@ -366,10 +461,18 if __name__ == '__main__': | |||
|
366 | 461 | help='Send to realtime') |
|
367 | 462 | parser.add_argument('--start_time', default='', |
|
368 | 463 | help='Set start time.') |
|
369 | ||
|
370 | ||
|
464 | parser.add_argument('--end_time', default='', | |
|
465 | help='Set end time.') | |
|
466 | parser.add_argument('--label', default='', | |
|
467 | help='Label for plot & param folder') | |
|
468 | parser.add_argument('--mode', default=None, | |
|
469 | help='Type of scan') | |
|
470 | parser.add_argument('--rmDC', action='store_true', | |
|
471 | help='Apply remove DC.') | |
|
371 | 472 | args = parser.parse_args() |
|
372 | 473 | |
|
373 | main(args) | |
|
474 | project = main(args) | |
|
475 | project.start() | |
|
374 | 476 | |
|
375 |
# |
|
|
477 | #python sophy_A.py HYO_CC4_CC64_COMB@2022-12-27T00-00-32 --parameters Z --plot --save --show --rmDC --label Z_04 --range 60 --start_time "22:00:00" | |
|
478 | # colocar siempre el range que asume 0 y no hace la seleccion de alturas |
General Comments 0
You need to be logged in to leave comments.
Login now