##// END OF EJS Templates
update test sophy proc
avaldezp -
r1458:750c4fd6f209
parent child
Show More
@@ -1,162 +1,164
1 # SOPHY PROC script
1 # SOPHY PROC script
2 import os, sys, json, argparse
2 import os, sys, json, argparse
3 import datetime
3 import datetime
4 import time
4 import time
5
5
6 PATH = '/DATA_RM/DATA'
6 PATH = '/DATA_RM/DATA'
7 # PATH = '/Users/jespinoza/workspace/data/'
7 # PATH = '/Users/jespinoza/workspace/data/'
8
8
9 PARAM = {
9 PARAM = {
10 'P': {'name': 'dataPP_POWER', 'zmin': 35, 'zmax': 60, 'colormap': 'viridis', 'label': 'Power', 'cb_label': 'dB'},
10 'P': {'name': 'dataPP_POWER', 'zmin': 35, 'zmax': 60, 'colormap': 'viridis', 'label': 'Power', 'cb_label': 'dB'},
11 'V': {'name': 'dataPP_DOP', 'zmin': -20, 'zmax': 20, 'colormap': 'seismic', 'label': 'Velocity', 'cb_label': 'm/s'},
11 'V': {'name': 'dataPP_DOP', 'zmin': -20, 'zmax': 20, 'colormap': 'seismic', 'label': 'Velocity', 'cb_label': 'm/s'},
12 'RH': {'name': 'RhoHV_R', 'zmin': 0, 'zmax': 1, 'colormap': 'jet', 'label': 'CoeficienteCorrelacion', 'cb_label': '*'},
12 'RH': {'name': 'RhoHV_R', 'zmin': 0, 'zmax': 1, 'colormap': 'jet', 'label': 'CoeficienteCorrelacion', 'cb_label': '*'},
13 'FD': {'name': 'PhiD_P', 'zmin': -180, 'zmax': 180, 'colormap': 'RdBu_r', 'label': 'Fase Diferencial', 'cb_label': 'ΒΊ'},
13 'FD': {'name': 'PhiD_P', 'zmin': -180, 'zmax': 180, 'colormap': 'RdBu_r', 'label': 'Fase Diferencial', 'cb_label': 'ΒΊ'},
14 'ZD': {'name': 'Zdb_D', 'zmin': -20, 'zmax': 60, 'colormap': 'viridis', 'label': 'ReflectividadDiferencial', 'cb_label': 'dB'},
14 'ZD': {'name': 'Zdb_D', 'zmin': -20, 'zmax': 80, 'colormap': 'viridis', 'label': 'ReflectividadDiferencial', 'cb_label': 'dB'},
15 'Z': {'name': 'Zdb', 'zmin': -20, 'zmax': 60, 'colormap': 'viridis', 'label': 'Reflectividad', 'cb_label': 'dB'},
15 'Z': {'name': 'Zdb', 'zmin': 100, 'zmax': 200, 'colormap': 'viridis', 'label': 'Reflectividad', 'cb_label': 'dB'},
16 'W': {'name': 'Sigmav_W', 'zmin': -20, 'zmax': 60, 'colormap': 'viridis', 'label': 'AnchoEspectral', 'cb_label': 'hz'}
16 'W': {'name': 'Sigmav_W', 'zmin': -20, 'zmax': 60, 'colormap': 'viridis', 'label': 'AnchoEspectral', 'cb_label': 'hz'}
17 }
17 }
18 #Z,ZD 'mm^6/m^3'
18 #Z,ZD 'mm^6/m^3'
19
19
20 PATH = '/home/soporte/Downloads/data_WR_RHI'
20 PATH = '/home/soporte/Downloads/data_WR_RHI'
21
21
22
22
23
23
24 def main(args):
24 def main(args):
25
25
26 experiment = args.experiment
26 experiment = args.experiment
27 fp = open(os.path.join(PATH, experiment, 'experiment.conf'))
27 fp = open(os.path.join(PATH, experiment, 'experiment.conf'))
28 conf = json.loads(fp.read())
28 conf = json.loads(fp.read())
29
29
30 ipp_km = conf['usrp_tx']['ipp']
30 ipp_km = conf['usrp_tx']['ipp']
31 ipp = ipp_km * 2 /300000
31 ipp = ipp_km * 2 /300000
32 samp_rate = conf['usrp_rx']['sample_rate']
32 samp_rate = conf['usrp_rx']['sample_rate']
33
33
34 #axis = ['0' if x=='elevation' else '1' for x in conf['pedestal']['speed']] # AZIMUTH 1 ELEVACION 0
34 #axis = ['0' if x=='elevation' else '1' for x in conf['pedestal']['speed']] # AZIMUTH 1 ELEVACION 0
35 axis = ['0' if x=='elevation' else '1' for x in conf['pedestal']['axis']] # AZIMUTH 1 ELEVACION 0
35 axis = ['0' if x=='elevation' else '1' for x in conf['pedestal']['axis']] # AZIMUTH 1 ELEVACION 0
36 speed_axis = conf['pedestal']['speed']
36 speed_axis = conf['pedestal']['speed']
37 steeps = conf['pedestal']['table']
37 steeps = conf['pedestal']['table']
38 time_offset = args.time_offset
38 time_offset = args.time_offset
39 parameters = args.parameters
39 parameters = args.parameters
40 #start_date = experiment.split('@')[1].split('T')[0].replace('-', '/')
40 #start_date = experiment.split('@')[1].split('T')[0].replace('-', '/')
41 start_date = '2022/04/22'
41 start_date = '2022/04/22'
42 end_date = start_date
42 end_date = start_date
43 #start_time = experiment.split('@')[1].split('T')[1]
43 #start_time = experiment.split('@')[1].split('T')[1]
44 start_time = '00:00:01'
44 start_time = '00:00:01'
45 end_time = '23:59:59'
45 end_time = '23:59:59'
46 max_index = int(samp_rate*ipp*1e6 * args.range / 60) + int(samp_rate*ipp*1e6 * 1.2 / 60)
46 max_index = int(samp_rate*ipp*1e6 * args.range / 60) + int(samp_rate*ipp*1e6 * 1.2 / 60)
47 N = int(1/(speed_axis[0]*ipp)) # 1 GRADO DE RESOLUCION
47 N = int(1/(speed_axis[0]*ipp)) # 1 GRADO DE RESOLUCION
48 path = os.path.join(PATH, experiment, 'rawdata')
48 path = os.path.join(PATH, experiment, 'rawdata')
49 path_ped = os.path.join(PATH, experiment, 'position')
49 path_ped = os.path.join(PATH, experiment, 'position')
50 path_plots = os.path.join(PATH, experiment, 'plots')
50 path_plots = os.path.join(PATH, experiment, 'plots')
51 path_save = os.path.join(PATH, experiment, 'param')
51 path_save = os.path.join(PATH, experiment, 'param')
52
52
53 dBmin = 35
53 dBmin = 35
54 dBmax = 60
54 dBmax = 60
55 Vmin = -20
55 Vmin = -20
56 Vmax = 20
56 Vmax = 20
57
57
58 from schainpy.controller import Project
58 from schainpy.controller import Project
59
59
60 project = Project()
60 project = Project()
61 project.setup(id='1', name='Sophy', description='sophy proc')
61 project.setup(id='1', name='Sophy', description='sophy proc')
62
62
63 reader = project.addReadUnit(datatype='DigitalRFReader',
63 reader = project.addReadUnit(datatype='DigitalRFReader',
64 path=path,
64 path=path,
65 startDate=start_date,
65 startDate=start_date,
66 endDate=end_date,
66 endDate=end_date,
67 startTime=start_time,
67 startTime=start_time,
68 endTime=end_time,
68 endTime=end_time,
69 delay=0,
69 delay=0,
70 online=0,
70 online=0,
71 walk=1,
71 walk=1,
72 ippKm = ipp_km,
72 ippKm = ipp_km,
73 getByBlock = 1,
73 getByBlock = 1,
74 nProfileBlocks = N,
74 nProfileBlocks = N,
75 )
75 )
76
76
77 voltage = project.addProcUnit(datatype='VoltageProc', inputId=reader.getId())
77 voltage = project.addProcUnit(datatype='VoltageProc', inputId=reader.getId())
78 op = voltage.addOperation(name='setH0')
78 op = voltage.addOperation(name='setH0')
79 op.addParameter(name='h0', value='-1.2')
79 op.addParameter(name='h0', value='-1.2')
80
80
81 if args.range > 0:
81 if args.range > 0:
82 op = voltage.addOperation(name='selectHeights')
82 op = voltage.addOperation(name='selectHeights')
83 op.addParameter(name='minIndex', value='0', format='int')
83 op.addParameter(name='minIndex', value='0', format='int')
84 op.addParameter(name='maxIndex', value=max_index, format='int')
84 op.addParameter(name='maxIndex', value=max_index, format='int')
85
85
86 op = voltage.addOperation(name='PulsePair_vRF', optype='other')
86 op = voltage.addOperation(name='PulsePair_vRF', optype='other')
87 op.addParameter(name='n', value=int(N), format='int')
87 op.addParameter(name='n', value=int(N), format='int')
88
88
89 proc = project.addProcUnit(datatype='ParametersProc', inputId=voltage.getId())
89 proc = project.addProcUnit(datatype='ParametersProc', inputId=voltage.getId())
90
90
91 #-----------------------new--------- variables polarimetricas---------------
91 #-----------------------new--------- variables polarimetricas---------------
92 opObj10 = proc.addOperation(name="WeatherRadar")
92 opObj10 = proc.addOperation(name="WeatherRadar")
93 opObj10.addParameter(name='variableList',value='Reflectividad,ReflectividadDiferencial,CoeficienteCorrelacion,FaseDiferencial,VelocidadRadial,AnchoEspectral')
93 opObj10.addParameter(name='variableList',value='Reflectividad,ReflectividadDiferencial,CoeficienteCorrelacion,FaseDiferencial,VelocidadRadial,AnchoEspectral')
94
94 #---------------------------------------------------------------------------
95 #---------------------------------------------------------------------------
95 op = proc.addOperation(name='PedestalInformation')
96 op = proc.addOperation(name='PedestalInformation')
96 op.addParameter(name='path', value=path_ped, format='str')
97 op.addParameter(name='path', value=path_ped, format='str')
97 op.addParameter(name='interval', value='0.04', format='float')
98 op.addParameter(name='interval', value='0.04', format='float')
98 op.addParameter(name='offset', value=time_offset)
99 op.addParameter(name='time_offset', value=time_offset)
99
100
100 for param in parameters:
101 for param in parameters:
101 op = proc.addOperation(name='Block360_vRF4')
102 op = proc.addOperation(name='Block360_vRF4')
102 op.addParameter(name='axis', value=','.join(axis))
103 op.addParameter(name='axis', value=','.join(axis))
103 op.addParameter(name='attr_data', value=PARAM[param]['name'])
104 op.addParameter(name='attr_data', value=PARAM[param]['name'])
104
105
105 if axis[0] == '1':
106 if axis[0] == '1':
106 path_fig = '/PPI-{}km'.format(args.range)
107 path_fig = '/PPI-{}km'.format(args.range)
107 op= proc.addOperation(name='Weather_vRF_Plot')
108 op= proc.addOperation(name='Weather_vRF_Plot')
108 op.addParameter(name='save', value=path_plots+path_fig, format='str')
109 op.addParameter(name='save', value=path_plots+path_fig, format='str')
109 op.addParameter(name='save_period', value=-1)
110 op.addParameter(name='save_period', value=-1)
110 op.addParameter(name='show', value=args.show)
111 op.addParameter(name='show', value=args.show)
111 op.addParameter(name='channels', value='1,')
112 op.addParameter(name='channels', value='1,')
112 op.addParameter(name='zmin', value=PARAM[param]['zmin'])
113 op.addParameter(name='zmin', value=PARAM[param]['zmin'])
113 op.addParameter(name='zmax', value=PARAM[param]['zmax'])
114 op.addParameter(name='zmax', value=PARAM[param]['zmax'])
114 op.addParameter(name='attr_data', value=PARAM[param]['name'], format='str')
115 op.addParameter(name='attr_data', value=PARAM[param]['name'], format='str')
115 op.addParameter(name='labels', value=[PARAM[param]['label']])
116 op.addParameter(name='labels', value=[PARAM[param]['label']])
116 op.addParameter(name='save_code', value=param)
117 op.addParameter(name='save_code', value=param)
117 op.addParameter(name='cb_label', value=PARAM[param]['cb_label'])
118 op.addParameter(name='cb_label', value=PARAM[param]['cb_label'])
118 op.addParameter(name='colormap', value=PARAM[param]['colormap'])
119 op.addParameter(name='colormap', value=PARAM[param]['colormap'])
119 if axis[0] == '0':
120 if axis[0] == '0':
120 path_fig = '/RHI{}km'.format(args.range)
121 path_fig = '/RHI{}km'.format(args.range)
121 op= proc.addOperation(name='WeatherRHI_vRF4_Plot')
122 op= proc.addOperation(name='WeatherRHI_vRF4_Plot')
122 op.addParameter(name='save', value=path_plots+path_fig, format='str')
123 op.addParameter(name='save', value=path_plots+path_fig, format='str')
123 op.addParameter(name='save_period', value=-1)
124 op.addParameter(name='save_period', value=-1)
124 op.addParameter(name='show', value=args.show)
125 op.addParameter(name='show', value=args.show)
125 op.addParameter(name='channels', value='(1,)')
126 op.addParameter(name='channels', value='(1,)')
126 op.addParameter(name='zmin', value=PARAM[param]['zmin'])
127 op.addParameter(name='zmin', value=PARAM[param]['zmin'])
127 op.addParameter(name='zmax', value=PARAM[param]['zmax'])
128 op.addParameter(name='zmax', value=PARAM[param]['zmax'])
128 op.addParameter(name='attr_data', value=PARAM[param]['name'], format='str')
129 op.addParameter(name='attr_data', value=PARAM[param]['name'], format='str')
129 op.addParameter(name='labels', value=[PARAM[param]['label']])
130 op.addParameter(name='labels', value=[PARAM[param]['label']])
130 op.addParameter(name='save_code', value=param)
131 op.addParameter(name='save_code', value=param)
131 op.addParameter(name='cb_label', value=PARAM[param]['cb_label'])
132 op.addParameter(name='cb_label', value=PARAM[param]['cb_label'])
132 op.addParameter(name='colormap', value=PARAM[param]['colormap'])
133 op.addParameter(name='colormap', value=PARAM[param]['colormap'])
133
134
134 if args.save:
135 if args.save:
135 opObj10 = proc.addOperation(name='HDFWriter')
136 opObj10 = proc.addOperation(name='HDFWriter')
136 opObj10.addParameter(name='path',value=path_save, format='str')
137 opObj10.addParameter(name='path',value=path_save, format='str')
137 opObj10.addParameter(name='Reset',value=True)
138 opObj10.addParameter(name='Reset',value=True)
138 opObj10.addParameter(name='blocksPerFile',value='1',format='int')
139 opObj10.addParameter(name='blocksPerFile',value='1',format='int')
139 opObj10.addParameter(name='metadataList',value='heightList,data_azi,data_ele')
140 opObj10.addParameter(name='metadataList',value='heightList,data_azi,data_ele')
140 opObj10.addParameter(name='dataList',value='dataPP_POWER,utctime')
141 opObj10.addParameter(name='dataList',value='dataPP_POWER,utctime')
141
142
143
142 project.start()
144 project.start()
143
145
144 if __name__ == '__main__':
146 if __name__ == '__main__':
145
147
146 parser = argparse.ArgumentParser(description='Script to process SOPHy data.')
148 parser = argparse.ArgumentParser(description='Script to process SOPHy data.')
147 parser.add_argument('experiment',
149 parser.add_argument('experiment',
148 help='Experiment name')
150 help='Experiment name')
149 parser.add_argument('--parameters', nargs='*', default=['P'],
151 parser.add_argument('--parameters', nargs='*', default=['P'],
150 help='Variables to process: P, Z, V')
152 help='Variables to process: P, Z, V')
151 parser.add_argument('--time_offset', default=0,
153 parser.add_argument('--time_offset', default=0,
152 help='Fix time offset')
154 help='Fix time offset')
153 parser.add_argument('--range', default=0, type=int,
155 parser.add_argument('--range', default=0, type=int,
154 help='Max range to plot')
156 help='Max range to plot')
155 parser.add_argument('--save', action='store_true',
157 parser.add_argument('--save', action='store_true',
156 help='Create output files')
158 help='Create output files')
157 parser.add_argument('--show', action='store_true',
159 parser.add_argument('--show', action='store_true',
158 help='Show matplotlib plot.')
160 help='Show matplotlib plot.')
159
161
160 args = parser.parse_args()
162 args = parser.parse_args()
161 print (args)
163 print (args)
162 main(args)
164 main(args)
General Comments 0
You need to be logged in to leave comments. Login now