diff --git a/schainpy/scripts/test_sim00011.py b/schainpy/scripts/test_sim00011.py new file mode 100644 index 0000000..6b9ccb8 --- /dev/null +++ b/schainpy/scripts/test_sim00011.py @@ -0,0 +1,34 @@ +import os,sys +import datetime +import time +from schainpy.controller import Project +#path = '/home/alex/Downloads/hdf5_testPP2' +path = '/home/alex/Downloads/hdf5_test' + +figpath = path +desc = "Simulator Test" + +controllerObj = Project() + +controllerObj.setup(id='10',name='Test Simulator',description=desc) + +readUnitConfObj = controllerObj.addReadUnit(datatype='ParameterReader', + path=path, + startDate="2020/01/01", #"2020/01/01",#today, + endDate= "2020/12/01", #"2020/12/30",#today, + startTime='00:00:00', + endTime='23:59:59', + delay=0, + #set=0, + online=0, + walk=1) + +procUnitConfObjA = controllerObj.addProcUnit(datatype='ParametersProc',inputId=readUnitConfObj.getId()) +opObj11 = procUnitConfObjA.addOperation(name='Block360') +opObj11.addParameter(name='n', value='100', format='int') +opObj11= procUnitConfObjA.addOperation(name='WeatherPlot',optype='other') +opObj11.addParameter(name='save', value=figpath) +opObj11.addParameter(name='save_period', value=1) +#opObj11 = procUnitConfObjA.addOperation(name='PowerPlot', optype='other')#PulsepairPowerPlot +#opObj11 = procUnitConfObjA.addOperation(name='PPSignalPlot', optype='other') +controllerObj.start() diff --git a/schainpy/scripts/test_sim00012.py b/schainpy/scripts/test_sim00012.py new file mode 100644 index 0000000..4d5a1f8 --- /dev/null +++ b/schainpy/scripts/test_sim00012.py @@ -0,0 +1,50 @@ +import os,sys +import datetime +import time +from schainpy.controller import Project +path = '/home/alex/Downloads/hdf5_testPP' +figpath = path +desc = "Simulator Test" + +controllerObj = Project() + +controllerObj.setup(id='10',name='Test Simulator',description=desc) + +readUnitConfObj = controllerObj.addReadUnit(datatype='SimulatorReader', + frequency=9.345e9, + FixRCP_IPP= 60, + Tau_0 = 30, + AcqH0_0=0, + samples=330, + AcqDH_0=0.15, + FixRCP_TXA=0.15, + FixRCP_TXB=0.15, + Fdoppler=600.0, + Hdoppler=36, + Adoppler=300,#300 + delay=0, + online=0, + walk=0, + profilesPerBlock=625, + dataBlocksPerFile=360)#,#nTotalReadFiles=2) + +### opObj11 = readUnitConfObj.addOperation(name='printInfo') + +procUnitConfObjA = controllerObj.addProcUnit(datatype='VoltageProc', inputId=readUnitConfObj.getId()) + +opObj11 = procUnitConfObjA.addOperation(name='PulsePairVoltage', optype='other') +opObj11.addParameter(name='n', value='625', format='int')#10 +opObj11.addParameter(name='removeDC', value=1, format='int') + +procUnitConfObjB= controllerObj.addProcUnit(datatype='ParametersProc',inputId=procUnitConfObjA.getId()) + +opObj10 = procUnitConfObjB.addOperation(name="WeatherRadar") + +opObj10 = procUnitConfObjB.addOperation(name='ParameterWriter') +opObj10.addParameter(name='path',value=figpath) +#opObj10.addParameter(name='mode',value=0) +opObj10.addParameter(name='blocksPerFile',value='100',format='int') +opObj10.addParameter(name='metadataList',value='utctimeInit,timeInterval',format='list') +opObj10.addParameter(name='dataList',value='dataPP_POW,dataPP_DOP,dataPP_SNR,dataPP_WIDTH,factor_Zeh,utctime')#,format='list' + +controllerObj.start() diff --git a/schainpy/scripts/test_wr0001.py b/schainpy/scripts/test_wr0001.py new file mode 100644 index 0000000..cb479b8 --- /dev/null +++ b/schainpy/scripts/test_wr0001.py @@ -0,0 +1,25 @@ +import os,sys +import datetime +import time +from schainpy.controller import Project +path = '/home/alex/Downloads/hdf5_wr' +figpath = path +desc = "Simulator Test" + +controllerObj = Project() + +controllerObj.setup(id='10',name='Test Simulator',description=desc) + + +readUnitConfObj = controllerObj.addReadUnit(datatype='ParamReader', + path=path, + startDate="2020/01/01", #"2020/01/01",#today, + endDate= "2020/12/01", #"2020/12/30",#today, + startTime='00:00:00', + endTime='23:59:59', + delay=0, + #set=0, + online=0, + walk=1) + +controllerObj.start() diff --git a/schainpy/scripts/test_wradlib_h5.py b/schainpy/scripts/test_wradlib_h5.py new file mode 100644 index 0000000..55a0c0f --- /dev/null +++ b/schainpy/scripts/test_wradlib_h5.py @@ -0,0 +1,150 @@ +#!/usr/bin/env python +#LINUX +#bash: export WRADLIB_DATA=/path/to/wradlib-data +import os +import matplotlib.pyplot as pl +import wradlib as wrl +import numpy as np +pl.switch_backend("TKAgg") +#filename = wrl.util.get_wradlib_data_file('dx/raa00-dx_10908-0806021655-fbg---bin.gz') + + +validFilelist = [] +path="/home/alex/Downloads/hdf5_wr/d2020204/" +ext=".hdf5" + + + +##path= '/home/alex/Downloads/2019-12-29/' +fileList= os.listdir(path) +for thisFile in fileList: + ##if (os.path.splitext(thisFile)[0][-4:] != 'dBuZ'): + ## continue + validFilelist.append(thisFile) + validFilelist.sort() +#---print ("Files",validFilelist) +#print (validFilelist) +i=0 +for thisFile in validFilelist: + i=i+1 + fpath = path+thisFile + print("fpath",fpath) + f = wrl.util.get_wradlib_data_file(fpath) + #print("f",f) + ####fcontent = wrl.io.read_rainbow(f) + fcontent = wrl.io.read_generic_hdf5(f) + #print(fcontent.keys()) + #print (fcontent) + #print(sfcontent['volume'] + + #Get azimuth data + azi = fcontent['Pedestal/azimuth']['data'] + ##print("azi0",azi['data'].shape) + ##print("azi",azi['data']) + ''' + azi = fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['data'] + azidepth = float(fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['@depth']) + azirange = float(fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['@rays']) + azires = float(fcontent['volume']['scan']['slice']['anglestep']) + azi = (azi * azirange / 2**azidepth) * azires + ''' + #---print("AZI",azi.shape) + #---print("AZI",type(azi)) + + ##print("azi_range",azi) + #print("azidepth",azidepth) + #print("azirange",azirange) + #print("azires",azires) + #print("azi azi",azi) + + # Create range array + ''' + stoprange = float(fcontent['volume']['scan']['slice']['stoprange']) + rangestep = float(fcontent['volume']['scan']['slice']['rangestep']) + ''' + stoprange = float(33*1.5) + rangestep = float(0.15) + r = np.arange(0, stoprange, rangestep) + #---print("stoprange",stoprange) + #---print("rangestep",rangestep) + #---print("r",r.shape) + #---print("r",type(r)) + + # GET reflectivity data#print (fcontent) + #print(sfcontent['volume'] + ''' + data = fcontent['volume']['scan']['slice']['slicedata']['rawdata']['data'] + datadepth = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@depth']) + datamin = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@min']) + datamax = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@max']) + data = datamin + data * (datamax - datamin) / 2 ** datadepth + ''' + data = fcontent['Data/dataPP_POW/table00']['data'] + data = 10*np.log10(data/(625**2)) + #---print("DATA",data.shape) + #---print("DATA",type(data)) + + ##data =fcontent['Data/dataPP_POW/table00']['data'] + ##print("data 1",data.shape) + ##data = 10*np.log10(fcontent['Data/dataPP_POW/table00']['data']/(625**2)) + ##print("test data",data.shape) + #print("datadepth",datadepth) + #print("datamin",datamin) + #print("datamax",datamax) + #print("data",data) + if i==1: + azi2= azi + data2= data + #---print("azi2 shape I es 1",azi2.shape) + else: + if i==4: + #---print (azi[60:].shape) + azi2= np.concatenate((azi2,azi[40:])) + data2= np.concatenate((data2,data[40:,:]),axis=0) + else: + azi2= np.concatenate((azi2,azi)) + data2= np.concatenate((data2,data),axis=0) + + #---print("azi2 shape",azi2.shape) + #print(fcontent['volume']['sensorinfo']) + #print("ESPACIO") + #print(data) + + #GET ANNOTATION data + ''' + unit = fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@type'] + time = fcontent['volume']['scan']['slice']['slicedata']['@time'] + date = fcontent['volume']['scan']['slice']['slicedata']['@date'] + lon = fcontent['volume']['sensorinfo']['lon'] + lat = fcontent['volume']['sensorinfo']['lat'] + sensortype = fcontent['volume']['sensorinfo']['@type'] + sensorname = fcontent['volume']['sensorinfo']['@name'] + ''' +#---print("AZI2",azi2.shape) +#---print("data2",data2.shape) + +# PLOT DATA WITH ANNOTATION +fig = pl.figure(figsize=(8,8)) +cgax, pm = wrl.vis.plot_ppi(data2, r=r, az=azi2, fig=fig, proj='cg') + +#title = '{0} {1} {2} {3}\n{4}E {5}N'.format(sensortype, sensorname, date,time, lon, lat) +caax = cgax.parasites[0] +#t = pl.title(title, fontsize=12) +#t.set_y(1.1) +cbar = pl.gcf().colorbar(pm, pad=0.075) +caax.set_xlabel('x_range [km]') +caax.set_ylabel('y_range [km]') +pl.text(1.0, 1.05, 'azimuth', transform=caax.transAxes, va='bottom', + ha='right') +#cbar.set_label('reflectivity [' + unit + ']') +pl.show() + + #print ("FIN") + #import time + #time.sleep(2) + #pl.close() + # stop here + #print(fcontent['data']) + #data, metadata = wrl.io.read_dx(filename) + #ax, pm = wrl.vis.plot_ppi(data) # simple diagnostic plot + #cbar = pl.colorbar(pm, shrink=0.75) diff --git a/schainpy/scripts/test_wradlib_h5v2.py b/schainpy/scripts/test_wradlib_h5v2.py new file mode 100644 index 0000000..c763005 --- /dev/null +++ b/schainpy/scripts/test_wradlib_h5v2.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python +#LINUX +#bash: export WRADLIB_DATA=/path/to/wradlib-data +import os,h5py +import matplotlib.pyplot as pl +import wradlib as wrl +import numpy as np +pl.switch_backend("TKAgg") +#filename = wrl.util.get_wradlib_data_file('dx/raa00-dx_10908-0806021655-fbg---bin.gz') + + +validFilelist = [] +path="/home/alex/Downloads/hdf5_wr/d2020204/" +ext=".hdf5" + + + +##path= '/home/alex/Downloads/2019-12-29/' +fileList= os.listdir(path) +for thisFile in fileList: + ##if (os.path.splitext(thisFile)[0][-4:] != 'dBuZ'): + ## continue + validFilelist.append(thisFile) + validFilelist.sort() +#---print ("Files",validFilelist) +#print (validFilelist) +i=0 +for thisFile in validFilelist: + i=i+1 + fpath = path+thisFile + print("fpath",fpath) + fp = h5py.File(fpath,'r') + value='table00' + data = fp['Data']['dataPP_POW'].get('table00')[()] + azi = fp['Pedestal'].get('azimuth')[()] + fp.close() + data = 10*np.log10(data/(625**2)) + print("azi",azi.shape) + print("azi",azi) + + print("data",data.shape) + ###f = wrl.util.get_wradlib_data_file(fpath) + #print("f",f) + ####fcontent = wrl.io.read_rainbow(f) + ###fcontent = wrl.io.read_generic_hdf5(f) + #print(fcontent.keys()) + #print (fcontent) + #print(sfcontent['volume'] + + #Get azimuth data + ############azi = fcontent['Pedestal/azimuth']['data'] + ##print("azi0",azi['data'].shape) + ##print("azi",azi['data']) + ''' + azi = fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['data'] + azidepth = float(fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['@depth']) + azirange = float(fcontent['volume']['scan']['slice']['slicedata']['rayinfo']['@rays']) + azires = float(fcontent['volume']['scan']['slice']['anglestep']) + azi = (azi * azirange / 2**azidepth) * azires + ''' + #---print("AZI",azi.shape) + #---print("AZI",type(azi)) + + ##print("azi_range",azi) + #print("azidepth",azidepth) + #print("azirange",azirange) + #print("azires",azires) + #print("azi azi",azi) + + # Create range array + ''' + stoprange = float(fcontent['volume']['scan']['slice']['stoprange']) + rangestep = float(fcontent['volume']['scan']['slice']['rangestep']) + ''' + stoprange = float(33*1.5) + rangestep = float(0.15) + r = np.arange(0, stoprange, rangestep) + #---print("stoprange",stoprange) + #---print("rangestep",rangestep) + #---print("r",r.shape) + #---print("r",type(r)) + + # GET reflectivity data#print (fcontent) + #print(sfcontent['volume'] + ''' + data = fcontent['volume']['scan']['slice']['slicedata']['rawdata']['data'] + datadepth = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@depth']) + datamin = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@min']) + datamax = float(fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@max']) + data = datamin + data * (datamax - datamin) / 2 ** datadepth + ''' + ########data = fcontent['Data/dataPP_POW/table00']['data'] + ########data = 10*np.log10(data/(625**2)) + #---print("DATA",data.shape) + #---print("DATA",type(data)) + + ##data =fcontent['Data/dataPP_POW/table00']['data'] + ##print("data 1",data.shape) + ##data = 10*np.log10(fcontent['Data/dataPP_POW/table00']['data']/(625**2)) + ##print("test data",data.shape) + #print("datadepth",datadepth) + #print("datamin",datamin) + #print("datamax",datamax) + #print("data",data) + if i==1: + azi2= azi + data2= data + #---print("azi2 shape I es 1",azi2.shape) + else: + if i==4: + #---print (azi[60:].shape) + azi2= np.concatenate((azi2,azi[40:])) + data2= np.concatenate((data2,data[40:,:]),axis=0) + else: + azi2= np.concatenate((azi2,azi)) + data2= np.concatenate((data2,data),axis=0) + + #---print("azi2 shape",azi2.shape) + #print(fcontent['volume']['sensorinfo']) + #print("ESPACIO") + #print(data) + + #GET ANNOTATION data + ''' + unit = fcontent['volume']['scan']['slice']['slicedata']['rawdata']['@type'] + time = fcontent['volume']['scan']['slice']['slicedata']['@time'] + date = fcontent['volume']['scan']['slice']['slicedata']['@date'] + lon = fcontent['volume']['sensorinfo']['lon'] + lat = fcontent['volume']['sensorinfo']['lat'] + sensortype = fcontent['volume']['sensorinfo']['@type'] + sensorname = fcontent['volume']['sensorinfo']['@name'] + ''' +#---print("AZI2",azi2.shape) +#---print("data2",data2.shape) + +# PLOT DATA WITH ANNOTATION +fig = pl.figure(figsize=(8,8)) +cgax, pm = wrl.vis.plot_ppi(data2, r=r, az=azi2, fig=fig, proj='cg') + +#title = '{0} {1} {2} {3}\n{4}E {5}N'.format(sensortype, sensorname, date,time, lon, lat) +caax = cgax.parasites[0] +#t = pl.title(title, fontsize=12) +#t.set_y(1.1) +cbar = pl.gcf().colorbar(pm, pad=0.075) +caax.set_xlabel('x_range [km]') +caax.set_ylabel('y_range [km]') +pl.text(1.0, 1.05, 'azimuth', transform=caax.transAxes, va='bottom', + ha='right') +#cbar.set_label('reflectivity [' + unit + ']') +pl.show() + + #print ("FIN") + #import time + #time.sleep(2) + #pl.close() + # stop here + #print(fcontent['data']) + #data, metadata = wrl.io.read_dx(filename) + #ax, pm = wrl.vis.plot_ppi(data) # simple diagnostic plot + #cbar = pl.colorbar(pm, shrink=0.75)