@@ -0,0 +1,34 | |||||
|
1 | import os,sys | |||
|
2 | import datetime | |||
|
3 | import time | |||
|
4 | from schainpy.controller import Project | |||
|
5 | #path = '/home/alex/Downloads/hdf5_testPP2' | |||
|
6 | path = '/home/alex/Downloads/hdf5_test' | |||
|
7 | ||||
|
8 | figpath = path | |||
|
9 | desc = "Simulator Test" | |||
|
10 | ||||
|
11 | controllerObj = Project() | |||
|
12 | ||||
|
13 | controllerObj.setup(id='10',name='Test Simulator',description=desc) | |||
|
14 | ||||
|
15 | readUnitConfObj = controllerObj.addReadUnit(datatype='ParameterReader', | |||
|
16 | path=path, | |||
|
17 | startDate="2020/01/01", #"2020/01/01",#today, | |||
|
18 | endDate= "2020/12/01", #"2020/12/30",#today, | |||
|
19 | startTime='00:00:00', | |||
|
20 | endTime='23:59:59', | |||
|
21 | delay=0, | |||
|
22 | #set=0, | |||
|
23 | online=0, | |||
|
24 | walk=1) | |||
|
25 | ||||
|
26 | procUnitConfObjA = controllerObj.addProcUnit(datatype='ParametersProc',inputId=readUnitConfObj.getId()) | |||
|
27 | opObj11 = procUnitConfObjA.addOperation(name='Block360') | |||
|
28 | opObj11.addParameter(name='n', value='100', format='int') | |||
|
29 | opObj11= procUnitConfObjA.addOperation(name='WeatherPlot',optype='other') | |||
|
30 | opObj11.addParameter(name='save', value=figpath) | |||
|
31 | opObj11.addParameter(name='save_period', value=1) | |||
|
32 | #opObj11 = procUnitConfObjA.addOperation(name='PowerPlot', optype='other')#PulsepairPowerPlot | |||
|
33 | #opObj11 = procUnitConfObjA.addOperation(name='PPSignalPlot', optype='other') | |||
|
34 | controllerObj.start() |
@@ -0,0 +1,50 | |||||
|
1 | import os,sys | |||
|
2 | import datetime | |||
|
3 | import time | |||
|
4 | from schainpy.controller import Project | |||
|
5 | path = '/home/alex/Downloads/hdf5_testPP' | |||
|
6 | figpath = path | |||
|
7 | desc = "Simulator Test" | |||
|
8 | ||||
|
9 | controllerObj = Project() | |||
|
10 | ||||
|
11 | controllerObj.setup(id='10',name='Test Simulator',description=desc) | |||
|
12 | ||||
|
13 | readUnitConfObj = controllerObj.addReadUnit(datatype='SimulatorReader', | |||
|
14 | frequency=9.345e9, | |||
|
15 | FixRCP_IPP= 60, | |||
|
16 | Tau_0 = 30, | |||
|
17 | AcqH0_0=0, | |||
|
18 | samples=330, | |||
|
19 | AcqDH_0=0.15, | |||
|
20 | FixRCP_TXA=0.15, | |||
|
21 | FixRCP_TXB=0.15, | |||
|
22 | Fdoppler=600.0, | |||
|
23 | Hdoppler=36, | |||
|
24 | Adoppler=300,#300 | |||
|
25 | delay=0, | |||
|
26 | online=0, | |||
|
27 | walk=0, | |||
|
28 | profilesPerBlock=625, | |||
|
29 | dataBlocksPerFile=360)#,#nTotalReadFiles=2) | |||
|
30 | ||||
|
31 | ### opObj11 = readUnitConfObj.addOperation(name='printInfo') | |||
|
32 | ||||
|
33 | procUnitConfObjA = controllerObj.addProcUnit(datatype='VoltageProc', inputId=readUnitConfObj.getId()) | |||
|
34 | ||||
|
35 | opObj11 = procUnitConfObjA.addOperation(name='PulsePairVoltage', optype='other') | |||
|
36 | opObj11.addParameter(name='n', value='625', format='int')#10 | |||
|
37 | opObj11.addParameter(name='removeDC', value=1, format='int') | |||
|
38 | ||||
|
39 | procUnitConfObjB= controllerObj.addProcUnit(datatype='ParametersProc',inputId=procUnitConfObjA.getId()) | |||
|
40 | ||||
|
41 | opObj10 = procUnitConfObjB.addOperation(name="WeatherRadar") | |||
|
42 | ||||
|
43 | opObj10 = procUnitConfObjB.addOperation(name='ParameterWriter') | |||
|
44 | opObj10.addParameter(name='path',value=figpath) | |||
|
45 | #opObj10.addParameter(name='mode',value=0) | |||
|
46 | opObj10.addParameter(name='blocksPerFile',value='100',format='int') | |||
|
47 | opObj10.addParameter(name='metadataList',value='utctimeInit,timeInterval',format='list') | |||
|
48 | opObj10.addParameter(name='dataList',value='dataPP_POW,dataPP_DOP,dataPP_SNR,dataPP_WIDTH,factor_Zeh,utctime')#,format='list' | |||
|
49 | ||||
|
50 | controllerObj.start() |
@@ -0,0 +1,25 | |||||
|
1 | import os,sys | |||
|
2 | import datetime | |||
|
3 | import time | |||
|
4 | from schainpy.controller import Project | |||
|
5 | path = '/home/alex/Downloads/hdf5_wr' | |||
|
6 | figpath = path | |||
|
7 | desc = "Simulator Test" | |||
|
8 | ||||
|
9 | controllerObj = Project() | |||
|
10 | ||||
|
11 | controllerObj.setup(id='10',name='Test Simulator',description=desc) | |||
|
12 | ||||
|
13 | ||||
|
14 | readUnitConfObj = controllerObj.addReadUnit(datatype='ParamReader', | |||
|
15 | path=path, | |||
|
16 | startDate="2020/01/01", #"2020/01/01",#today, | |||
|
17 | endDate= "2020/12/01", #"2020/12/30",#today, | |||
|
18 | startTime='00:00:00', | |||
|
19 | endTime='23:59:59', | |||
|
20 | delay=0, | |||
|
21 | #set=0, | |||
|
22 | online=0, | |||
|
23 | walk=1) | |||
|
24 | ||||
|
25 | controllerObj.start() |
@@ -0,0 +1,150 | |||||
|
1 | #!/usr/bin/env python | |||
|
2 | #LINUX | |||
|
3 | #bash: export WRADLIB_DATA=/path/to/wradlib-data | |||
|
4 | import os | |||
|
5 | import matplotlib.pyplot as pl | |||
|
6 | import wradlib as wrl | |||
|
7 | import numpy as np | |||
|
8 | pl.switch_backend("TKAgg") | |||
|
9 | #filename = wrl.util.get_wradlib_data_file('dx/raa00-dx_10908-0806021655-fbg---bin.gz') | |||
|
10 | ||||
|
11 | ||||
|
12 | validFilelist = [] | |||
|
13 | path="/home/alex/Downloads/hdf5_wr/d2020204/" | |||
|
14 | ext=".hdf5" | |||
|
15 | ||||
|
16 | ||||
|
17 | ||||
|
18 | ##path= '/home/alex/Downloads/2019-12-29/' | |||
|
19 | fileList= os.listdir(path) | |||
|
20 | for thisFile in fileList: | |||
|
21 | ##if (os.path.splitext(thisFile)[0][-4:] != 'dBuZ'): | |||
|
22 | ## continue | |||
|
23 | validFilelist.append(thisFile) | |||
|
24 | validFilelist.sort() | |||
|
25 | #---print ("Files",validFilelist) | |||
|
26 | #print (validFilelist) | |||
|
27 | i=0 | |||
|
28 | for thisFile in validFilelist: | |||
|
29 | i=i+1 | |||
|
30 | fpath = path+thisFile | |||
|
31 | print("fpath",fpath) | |||
|
32 | f = wrl.util.get_wradlib_data_file(fpath) | |||
|
33 | #print("f",f) | |||
|
34 | ####fcontent = wrl.io.read_rainbow(f) | |||
|
35 | fcontent = wrl.io.read_generic_hdf5(f) | |||
|
36 | #print(fcontent.keys()) | |||
|
37 | #print (fcontent) | |||
|
38 | #print(sfcontent['volume'] | |||
|
39 | ||||
|
40 | #Get azimuth data | |||
|
41 | azi = fcontent['Pedestal/azimuth']['data'] | |||
|
42 | ##print("azi0",azi['data'].shape) | |||
|
43 | ##print("azi",azi['data']) | |||
|
44 | ''' | |||
|
45 | azi = fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['data'] | |||
|
46 | azidepth = float(fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['@depth']) | |||
|
47 | azirange = float(fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['@rays']) | |||
|
48 | azires = float(fcontent['volume']['scan']['slice']['anglestep']) | |||
|
49 | azi = (azi * azirange / 2**azidepth) * azires | |||
|
50 | ''' | |||
|
51 | #---print("AZI",azi.shape) | |||
|
52 | #---print("AZI",type(azi)) | |||
|
53 | ||||
|
54 | ##print("azi_range",azi) | |||
|
55 | #print("azidepth",azidepth) | |||
|
56 | #print("azirange",azirange) | |||
|
57 | #print("azires",azires) | |||
|
58 | #print("azi azi",azi) | |||
|
59 | ||||
|
60 | # Create range array | |||
|
61 | ''' | |||
|
62 | stoprange = float(fcontent['volume']['scan']['slice']['stoprange']) | |||
|
63 | rangestep = float(fcontent['volume']['scan']['slice']['rangestep']) | |||
|
64 | ''' | |||
|
65 | stoprange = float(33*1.5) | |||
|
66 | rangestep = float(0.15) | |||
|
67 | r = np.arange(0, stoprange, rangestep) | |||
|
68 | #---print("stoprange",stoprange) | |||
|
69 | #---print("rangestep",rangestep) | |||
|
70 | #---print("r",r.shape) | |||
|
71 | #---print("r",type(r)) | |||
|
72 | ||||
|
73 | # GET reflectivity data#print (fcontent) | |||
|
74 | #print(sfcontent['volume'] | |||
|
75 | ''' | |||
|
76 | data = fcontent['volume']['scan']['slice']['slicedata']['rawdata']['data'] | |||
|
77 | datadepth = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@depth']) | |||
|
78 | datamin = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@min']) | |||
|
79 | datamax = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@max']) | |||
|
80 | data = datamin + data * (datamax - datamin) / 2 ** datadepth | |||
|
81 | ''' | |||
|
82 | data = fcontent['Data/dataPP_POW/table00']['data'] | |||
|
83 | data = 10*np.log10(data/(625**2)) | |||
|
84 | #---print("DATA",data.shape) | |||
|
85 | #---print("DATA",type(data)) | |||
|
86 | ||||
|
87 | ##data =fcontent['Data/dataPP_POW/table00']['data'] | |||
|
88 | ##print("data 1",data.shape) | |||
|
89 | ##data = 10*np.log10(fcontent['Data/dataPP_POW/table00']['data']/(625**2)) | |||
|
90 | ##print("test data",data.shape) | |||
|
91 | #print("datadepth",datadepth) | |||
|
92 | #print("datamin",datamin) | |||
|
93 | #print("datamax",datamax) | |||
|
94 | #print("data",data) | |||
|
95 | if i==1: | |||
|
96 | azi2= azi | |||
|
97 | data2= data | |||
|
98 | #---print("azi2 shape I es 1",azi2.shape) | |||
|
99 | else: | |||
|
100 | if i==4: | |||
|
101 | #---print (azi[60:].shape) | |||
|
102 | azi2= np.concatenate((azi2,azi[40:])) | |||
|
103 | data2= np.concatenate((data2,data[40:,:]),axis=0) | |||
|
104 | else: | |||
|
105 | azi2= np.concatenate((azi2,azi)) | |||
|
106 | data2= np.concatenate((data2,data),axis=0) | |||
|
107 | ||||
|
108 | #---print("azi2 shape",azi2.shape) | |||
|
109 | #print(fcontent['volume']['sensorinfo']) | |||
|
110 | #print("ESPACIO") | |||
|
111 | #print(data) | |||
|
112 | ||||
|
113 | #GET ANNOTATION data | |||
|
114 | ''' | |||
|
115 | unit = fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@type'] | |||
|
116 | time = fcontent['volume']['scan']['slice']['slicedata']['@time'] | |||
|
117 | date = fcontent['volume']['scan']['slice']['slicedata']['@date'] | |||
|
118 | lon = fcontent['volume']['sensorinfo']['lon'] | |||
|
119 | lat = fcontent['volume']['sensorinfo']['lat'] | |||
|
120 | sensortype = fcontent['volume']['sensorinfo']['@type'] | |||
|
121 | sensorname = fcontent['volume']['sensorinfo']['@name'] | |||
|
122 | ''' | |||
|
123 | #---print("AZI2",azi2.shape) | |||
|
124 | #---print("data2",data2.shape) | |||
|
125 | ||||
|
126 | # PLOT DATA WITH ANNOTATION | |||
|
127 | fig = pl.figure(figsize=(8,8)) | |||
|
128 | cgax, pm = wrl.vis.plot_ppi(data2, r=r, az=azi2, fig=fig, proj='cg') | |||
|
129 | ||||
|
130 | #title = '{0} {1} {2} {3}\n{4}E {5}N'.format(sensortype, sensorname, date,time, lon, lat) | |||
|
131 | caax = cgax.parasites[0] | |||
|
132 | #t = pl.title(title, fontsize=12) | |||
|
133 | #t.set_y(1.1) | |||
|
134 | cbar = pl.gcf().colorbar(pm, pad=0.075) | |||
|
135 | caax.set_xlabel('x_range [km]') | |||
|
136 | caax.set_ylabel('y_range [km]') | |||
|
137 | pl.text(1.0, 1.05, 'azimuth', transform=caax.transAxes, va='bottom', | |||
|
138 | ha='right') | |||
|
139 | #cbar.set_label('reflectivity [' + unit + ']') | |||
|
140 | pl.show() | |||
|
141 | ||||
|
142 | #print ("FIN") | |||
|
143 | #import time | |||
|
144 | #time.sleep(2) | |||
|
145 | #pl.close() | |||
|
146 | # stop here | |||
|
147 | #print(fcontent['data']) | |||
|
148 | #data, metadata = wrl.io.read_dx(filename) | |||
|
149 | #ax, pm = wrl.vis.plot_ppi(data) # simple diagnostic plot | |||
|
150 | #cbar = pl.colorbar(pm, shrink=0.75) |
@@ -0,0 +1,160 | |||||
|
1 | #!/usr/bin/env python | |||
|
2 | #LINUX | |||
|
3 | #bash: export WRADLIB_DATA=/path/to/wradlib-data | |||
|
4 | import os,h5py | |||
|
5 | import matplotlib.pyplot as pl | |||
|
6 | import wradlib as wrl | |||
|
7 | import numpy as np | |||
|
8 | pl.switch_backend("TKAgg") | |||
|
9 | #filename = wrl.util.get_wradlib_data_file('dx/raa00-dx_10908-0806021655-fbg---bin.gz') | |||
|
10 | ||||
|
11 | ||||
|
12 | validFilelist = [] | |||
|
13 | path="/home/alex/Downloads/hdf5_wr/d2020204/" | |||
|
14 | ext=".hdf5" | |||
|
15 | ||||
|
16 | ||||
|
17 | ||||
|
18 | ##path= '/home/alex/Downloads/2019-12-29/' | |||
|
19 | fileList= os.listdir(path) | |||
|
20 | for thisFile in fileList: | |||
|
21 | ##if (os.path.splitext(thisFile)[0][-4:] != 'dBuZ'): | |||
|
22 | ## continue | |||
|
23 | validFilelist.append(thisFile) | |||
|
24 | validFilelist.sort() | |||
|
25 | #---print ("Files",validFilelist) | |||
|
26 | #print (validFilelist) | |||
|
27 | i=0 | |||
|
28 | for thisFile in validFilelist: | |||
|
29 | i=i+1 | |||
|
30 | fpath = path+thisFile | |||
|
31 | print("fpath",fpath) | |||
|
32 | fp = h5py.File(fpath,'r') | |||
|
33 | value='table00' | |||
|
34 | data = fp['Data']['dataPP_POW'].get('table00')[()] | |||
|
35 | azi = fp['Pedestal'].get('azimuth')[()] | |||
|
36 | fp.close() | |||
|
37 | data = 10*np.log10(data/(625**2)) | |||
|
38 | print("azi",azi.shape) | |||
|
39 | print("azi",azi) | |||
|
40 | ||||
|
41 | print("data",data.shape) | |||
|
42 | ###f = wrl.util.get_wradlib_data_file(fpath) | |||
|
43 | #print("f",f) | |||
|
44 | ####fcontent = wrl.io.read_rainbow(f) | |||
|
45 | ###fcontent = wrl.io.read_generic_hdf5(f) | |||
|
46 | #print(fcontent.keys()) | |||
|
47 | #print (fcontent) | |||
|
48 | #print(sfcontent['volume'] | |||
|
49 | ||||
|
50 | #Get azimuth data | |||
|
51 | ############azi = fcontent['Pedestal/azimuth']['data'] | |||
|
52 | ##print("azi0",azi['data'].shape) | |||
|
53 | ##print("azi",azi['data']) | |||
|
54 | ''' | |||
|
55 | azi = fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['data'] | |||
|
56 | azidepth = float(fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['@depth']) | |||
|
57 | azirange = float(fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['@rays']) | |||
|
58 | azires = float(fcontent['volume']['scan']['slice']['anglestep']) | |||
|
59 | azi = (azi * azirange / 2**azidepth) * azires | |||
|
60 | ''' | |||
|
61 | #---print("AZI",azi.shape) | |||
|
62 | #---print("AZI",type(azi)) | |||
|
63 | ||||
|
64 | ##print("azi_range",azi) | |||
|
65 | #print("azidepth",azidepth) | |||
|
66 | #print("azirange",azirange) | |||
|
67 | #print("azires",azires) | |||
|
68 | #print("azi azi",azi) | |||
|
69 | ||||
|
70 | # Create range array | |||
|
71 | ''' | |||
|
72 | stoprange = float(fcontent['volume']['scan']['slice']['stoprange']) | |||
|
73 | rangestep = float(fcontent['volume']['scan']['slice']['rangestep']) | |||
|
74 | ''' | |||
|
75 | stoprange = float(33*1.5) | |||
|
76 | rangestep = float(0.15) | |||
|
77 | r = np.arange(0, stoprange, rangestep) | |||
|
78 | #---print("stoprange",stoprange) | |||
|
79 | #---print("rangestep",rangestep) | |||
|
80 | #---print("r",r.shape) | |||
|
81 | #---print("r",type(r)) | |||
|
82 | ||||
|
83 | # GET reflectivity data#print (fcontent) | |||
|
84 | #print(sfcontent['volume'] | |||
|
85 | ''' | |||
|
86 | data = fcontent['volume']['scan']['slice']['slicedata']['rawdata']['data'] | |||
|
87 | datadepth = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@depth']) | |||
|
88 | datamin = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@min']) | |||
|
89 | datamax = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@max']) | |||
|
90 | data = datamin + data * (datamax - datamin) / 2 ** datadepth | |||
|
91 | ''' | |||
|
92 | ########data = fcontent['Data/dataPP_POW/table00']['data'] | |||
|
93 | ########data = 10*np.log10(data/(625**2)) | |||
|
94 | #---print("DATA",data.shape) | |||
|
95 | #---print("DATA",type(data)) | |||
|
96 | ||||
|
97 | ##data =fcontent['Data/dataPP_POW/table00']['data'] | |||
|
98 | ##print("data 1",data.shape) | |||
|
99 | ##data = 10*np.log10(fcontent['Data/dataPP_POW/table00']['data']/(625**2)) | |||
|
100 | ##print("test data",data.shape) | |||
|
101 | #print("datadepth",datadepth) | |||
|
102 | #print("datamin",datamin) | |||
|
103 | #print("datamax",datamax) | |||
|
104 | #print("data",data) | |||
|
105 | if i==1: | |||
|
106 | azi2= azi | |||
|
107 | data2= data | |||
|
108 | #---print("azi2 shape I es 1",azi2.shape) | |||
|
109 | else: | |||
|
110 | if i==4: | |||
|
111 | #---print (azi[60:].shape) | |||
|
112 | azi2= np.concatenate((azi2,azi[40:])) | |||
|
113 | data2= np.concatenate((data2,data[40:,:]),axis=0) | |||
|
114 | else: | |||
|
115 | azi2= np.concatenate((azi2,azi)) | |||
|
116 | data2= np.concatenate((data2,data),axis=0) | |||
|
117 | ||||
|
118 | #---print("azi2 shape",azi2.shape) | |||
|
119 | #print(fcontent['volume']['sensorinfo']) | |||
|
120 | #print("ESPACIO") | |||
|
121 | #print(data) | |||
|
122 | ||||
|
123 | #GET ANNOTATION data | |||
|
124 | ''' | |||
|
125 | unit = fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@type'] | |||
|
126 | time = fcontent['volume']['scan']['slice']['slicedata']['@time'] | |||
|
127 | date = fcontent['volume']['scan']['slice']['slicedata']['@date'] | |||
|
128 | lon = fcontent['volume']['sensorinfo']['lon'] | |||
|
129 | lat = fcontent['volume']['sensorinfo']['lat'] | |||
|
130 | sensortype = fcontent['volume']['sensorinfo']['@type'] | |||
|
131 | sensorname = fcontent['volume']['sensorinfo']['@name'] | |||
|
132 | ''' | |||
|
133 | #---print("AZI2",azi2.shape) | |||
|
134 | #---print("data2",data2.shape) | |||
|
135 | ||||
|
136 | # PLOT DATA WITH ANNOTATION | |||
|
137 | fig = pl.figure(figsize=(8,8)) | |||
|
138 | cgax, pm = wrl.vis.plot_ppi(data2, r=r, az=azi2, fig=fig, proj='cg') | |||
|
139 | ||||
|
140 | #title = '{0} {1} {2} {3}\n{4}E {5}N'.format(sensortype, sensorname, date,time, lon, lat) | |||
|
141 | caax = cgax.parasites[0] | |||
|
142 | #t = pl.title(title, fontsize=12) | |||
|
143 | #t.set_y(1.1) | |||
|
144 | cbar = pl.gcf().colorbar(pm, pad=0.075) | |||
|
145 | caax.set_xlabel('x_range [km]') | |||
|
146 | caax.set_ylabel('y_range [km]') | |||
|
147 | pl.text(1.0, 1.05, 'azimuth', transform=caax.transAxes, va='bottom', | |||
|
148 | ha='right') | |||
|
149 | #cbar.set_label('reflectivity [' + unit + ']') | |||
|
150 | pl.show() | |||
|
151 | ||||
|
152 | #print ("FIN") | |||
|
153 | #import time | |||
|
154 | #time.sleep(2) | |||
|
155 | #pl.close() | |||
|
156 | # stop here | |||
|
157 | #print(fcontent['data']) | |||
|
158 | #data, metadata = wrl.io.read_dx(filename) | |||
|
159 | #ax, pm = wrl.vis.plot_ppi(data) # simple diagnostic plot | |||
|
160 | #cbar = pl.colorbar(pm, shrink=0.75) |
General Comments 0
You need to be logged in to leave comments.
Login now