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