From 2ccc6450afd4aba50545c0cd2239a2d42ed12300 2022-02-22 17:26:12 From: avaldezp Date: 2022-02-22 17:26:12 Subject: [PATCH] last_update primeras correciones rhi --- diff --git a/schainpy/model/graphics/jroplot_parameters.py b/schainpy/model/graphics/jroplot_parameters.py index e0840e2..1d1b2b3 100644 --- a/schainpy/model/graphics/jroplot_parameters.py +++ b/schainpy/model/graphics/jroplot_parameters.py @@ -652,11 +652,11 @@ class WeatherRHIPlot(Plot): self.ini =0 self.len_azi =0 self.buffer_ini = None - self.buffer_azi = None + self.buffer_ele = None self.plots_adjust.update({'wspace': 0.4, 'hspace':0.4, 'left': 0.1, 'right': 0.9, 'bottom': 0.08}) self.flag =0 self.indicador= 0 - self.last_data_azi = None + self.last_data_ele = None self.val_mean = None def update(self, dataOut): @@ -672,6 +672,161 @@ class WeatherRHIPlot(Plot): data['ele'] = dataOut.data_ele return data, meta + def get2List(self,angulos): + list1=[] + list2=[] + for i in reversed(range(len(angulos))): + diff_ = angulos[i]-angulos[i-1] + if diff_ >1.5: + list1.append(i-1) + list2.append(diff_) + return list(reversed(list1)),list(reversed(list2)) + + def fixData180(self,list_,ang_): + if list_[0]==-1: + vec = numpy.where(ang_=180) + angulos[vec]=angulos[vec]-180 + return angulos + + + def search_pos(self,pos,list_): + for i in range(len(list_)): + if pos == list_[i]: + return True,i + i=None + return False,i + + def fixDataComp(self,ang_,list1_,list2_): + size = len(ang_) + size2 = 0 + for i in range(len(list2_)): + size2=size2+round(list2_[i])-1 + new_size= size+size2 + ang_new = numpy.zeros(new_size) + ang_new2 = numpy.zeros(new_size) + + tmp = 0 + c = 0 + for i in range(len(ang_)): + ang_new[tmp +c] = ang_[i] + ang_new2[tmp+c] = ang_[i] + condition , value = self.search_pos(i,list1_) + if condition: + pos = tmp + c + 1 + for k in range(round(list2_[value])-1): + ang_new[pos+k] = ang_new[pos+k-1]+1 + ang_new2[pos+k] = numpy.nan + tmp = pos +k + c = 0 + c=c+1 + return ang_new,ang_new2 + + def globalCheckPED(self,angulos): + l1,l2 = self.get2List(angulos) + if len(l1)>0: + angulos2 = self.fixData180(list_=l1,ang_=angulos) + l1,l2 = self.get2List(angulos2) + + ang1_,ang2_ = self.fixDataComp(ang_=angulos2,list1_=l1,list2_=l2) + ang1_ = self.fixData180HL(ang1_) + ang2_ = self.fixData180HL(ang2_) + else: + ang1_= angulos + ang2_= angulos + return ang1_,ang2_ + + + def replaceNAN(self,data_weather,data_ele,val): + data= data_ele + data_T= data_weather + if data.shape[0]> data_T.shape[0]: + data_N = numpy.ones( [data.shape[0],data_T.shape[1]]) + c = 0 + for i in range(len(data)): + if numpy.isnan(data[i]): + data_N[i,:]=numpy.ones(data_T.shape[1])*numpy.nan + else: + data_N[i,:]=data_T[c,:] + sc=c+1 + else: + for i in range(len(data)): + if numpy.isnan(data[i]): + data_T[i,:]=numpy.ones(data_T.shape[1])*numpy.nan + return data_T + + def const_ploteo(self,data_weather,data_ele,step,res): + if self.ini==0: + #------- + n = (180/res)-len(data_ele) + #--------------------- new ------------------------- + data_ele_new ,data_ele_old= self.globalCheckPED(data_ele) + #------------------------ + start = data_ele_new[-1] + res + end = data_ele_new[0] - res + #------ new + self.last_data_ele = end + if start>end: + end = end + 180 + ele_vacia = numpy.linspace(start,end,int(n)) + ele_vacia = numpy.where(ele_vacia>180,ele_vacia-180,ele_vacia) + data_ele = numpy.hstack((data_ele_new,ele_vacia)) + # RADAR + val_mean = numpy.mean(data_weather[:,-1]) + self.val_mean = val_mean + data_weather_cmp = numpy.ones([(180-data_weather.shape[0]),data_weather.shape[1]])*val_mean + data_weather = self.replaceNAN(data_weather=data_weather,data_ele=data_ele_old,val=self.val_mean) + data_weather = numpy.vstack((data_weather,data_weather_cmp)) + else: + # azimuth + flag=0 + start_ele = self.res_ele[0] + #-----------new------------ + data_ele ,data_ele_old= self.globalCheckPED(data_ele) + data_weather = self.replaceNAN(data_weather=data_weather,data_ele=data_ele_old,val=self.val_mean) + #-------------------------- + start = data_ele[0] + end = data_ele[-1] + self.last_data_ele= end + if start< start_ele: + start = start +180 + if end =0)[0] r = numpy.arange(len(r_mask))*delta_height self.y = 2*r + ''' + #------------------------------------------------------------- + # RADAR + #data_weather = data['weather'] + # PEDESTAL + #data_azi = data['azi'] + res = 1 + # STEP + step = (180/(res*data['weather'].shape[0])) + + + self.res_weather, self.res_ele = self.const_ploteo(data_weather=data['weather'][:,r_mask],data_ele=data['ele'],step=step,res=res) + self.res_azi = numpy.mean(data['azi']) + print("self.res_ele------------------------------:",self.res_ele) + ################# PLOTEO ################### + + for i,ax in enumerate(self.axes): + if ax.firsttime: + plt.clf() + cgax, pm = wrl.vis.plot_rhi(self.res_weather,r=r,th=self.res_ele,fig=self.figures[0], proj='cg', vmin=8, vmax=35) + else: + plt.clf() + cgax, pm = wrl.vis.plot_rhi(self.res_weather,r=r,th=self.res_ele,fig=self.figures[0], proj='cg', vmin=8, vmax=35) + caax = cgax.parasites[0] + paax = cgax.parasites[1] + cbar = plt.gcf().colorbar(pm, pad=0.075) + caax.set_xlabel('x_range [km]') + caax.set_ylabel('y_range [km]') + plt.text(1.0, 1.05, 'Elevacion '+str(thisDatetime)+" Step "+str(self.ini)+ " Azi: "+str(round(self.res_azi,2)), transform=caax.transAxes, va='bottom',ha='right') + + self.ini= self.ini+1 + + + ''' + #-------------------------------------------------------- + ###self.res_weather, self.res_ele = self.const_ploteo(data_weather=data['weather'][:,r_mask],data_azi=data['ele'],step=step,res=res) ###self.res_azi = numpy.mean(data['azi']) #------------- # 90 angulos en el axis 0 # 1000 step en el axis 1 - self.res_weather = numpy.ones([90,1000]) + self.res_weather = numpy.ones([120,1000]) r = numpy.linspace(0,1999,1000) - self.res_ele = numpy.arange(0,90) + self.res_ele = numpy.arange(0,120) self.res_azi = 240 #------------- for i,ax in enumerate(self.axes): diff --git a/schainpy/model/proc/jroproc_parameters.py b/schainpy/model/proc/jroproc_parameters.py index a3ad21f..dee42e1 100755 --- a/schainpy/model/proc/jroproc_parameters.py +++ b/schainpy/model/proc/jroproc_parameters.py @@ -3961,7 +3961,7 @@ class WeatherRadar(Operation): return data_param[:,i,:] - def getCoeficienteCorrelacionROhv_R(self.dataOut): + def getCoeficienteCorrelacionROhv_R(self,dataOut): type = dataOut.inputUnit nHeis = dataOut.nHeights data_RhoHV_R = numpy.zeros((nHeis)) @@ -3976,7 +3976,7 @@ class WeatherRadar(Operation): return data_RhoHV_R - def getFasediferencialPhiD_P(self.dataOut,phase= True): + def getFasediferencialPhiD_P(self,dataOut,phase= True): type = dataOut.inputUnit nHeis = dataOut.nHeights data_PhiD_P = numpy.zeros((nHeis)) @@ -4061,25 +4061,34 @@ class PedestalInformation(Operation): Operation.__init__(self) - def getAnguloProfile(self,utc_adq,list_pedestal): + def getAnguloProfile(self,utc_adq,utc_ped_list): utc_adq = utc_adq - list_pedestal = list_pedestal - utc_ped_list = [] - for i in range(len(list_pedestal)): - #print(i)# OJO IDENTIFICADOR DE SINCRONISMO - utc_ped_list.append(self.gettimeutcfromDirFilename(path=self.path_ped,file=list_pedestal[i])) - + ##list_pedestal = list_pedestal + utc_ped_list = utc_ped_list + #for i in range(len(list_pedestal)): + # #print(i)# OJO IDENTIFICADOR DE SINCRONISMO + # utc_ped_list.append(self.gettimeutcfromDirFilename(path=self.path_ped,file=list_pedestal[i])) nro_file,utc_ped,utc_ped_1 =self.getNROFile(utc_adq,utc_ped_list) - ###print("NROFILE************************************", nro_file) + #print("NROFILE************************************", nro_file,utc_ped) if nro_file < 0: return numpy.NaN,numpy.NaN else: nro_key_p = int((utc_adq-utc_ped)/self.t_Interval_p)-1 # ojito al -1 estimado alex - ff_pedestal = list_pedestal[nro_file] + #print("nro_key_p",nro_key_p) + ff_pedestal = self.list_pedestal[nro_file] #angulo = self.getDatavaluefromDirFilename(path=self.path_ped,file=ff_pedestal,value="azimuth") angulo = self.getDatavaluefromDirFilename(path=self.path_ped,file=ff_pedestal,value="azi_pos") angulo_ele = self.getDatavaluefromDirFilename(path=self.path_ped,file=ff_pedestal,value="ele_pos") - + #-----Adicion de filtro........................ + vel_ele = self.getDatavaluefromDirFilename(path=self.path_ped,file=ff_pedestal,value="ele_vel") + ''' + vel_mean = numpy.mean(vel_ele) + print("#############################################################") + print("VEL MEAN----------------:",vel_mean) + f vel_mean<7.7 or vel_mean>8.3: + return numpy.NaN,numpy.NaN + #------------------------------------------------------------------------------------------------------ + ''' if 99>=nro_key_p>0: ##print("angulo_array :",angulo[nro_key_p]) return angulo[nro_key_p],angulo_ele[nro_key_p] @@ -4148,11 +4157,14 @@ class PedestalInformation(Operation): #print(utc_adq) #print(len(utc_ped_list)) ###print(utc_ped_list) - for i in range(len(utc_ped_list)): - if utc_adq>utc_ped_list[i]: - #print("mayor") - #print("utc_ped_list",utc_ped_list[i]) - c +=1 + if utc_adqutc_ped_list[i]: + #print("mayor") + #print("utc_ped_list",utc_ped_list[i]) + c +=1 return c-1,utc_ped_list[c-1],utc_ped_list[c] @@ -4171,7 +4183,12 @@ class PedestalInformation(Operation): self.path_ped = path_ped self.t_Interval_p = t_Interval_p self.list_pedestal = self.getfirstFilefromPath(path=self.path_ped,meta="PE",ext=".hdf5") + self.utc_ped_list= [] + for i in range(len(self.list_pedestal)): + #print(i)# OJO IDENTIFICADOR DE SINCRONISMO + self.utc_ped_list.append(self.gettimeutcfromDirFilename(path=self.path_ped,file=self.list_pedestal[i])) dataOut.wr_exp = wr_exp + print("SETUP READY") def setNextFileP(self,dataOut): @@ -4194,12 +4211,12 @@ class PedestalInformation(Operation): self.isConfig = True #print("config TRUE") utc_adq = dataOut.utctime - ###print("utc_adq---------------",utc_adq) + #print("utc_adq---------------",utc_adq) list_pedestal = self.list_pedestal - #print("list_pedestal",list_pedestal) - angulo,angulo_ele = self.getAnguloProfile(utc_adq=utc_adq,list_pedestal=list_pedestal) - ###print("angulo**********",angulo) + #print("list_pedestal",list_pedestal[:20]) + angulo,angulo_ele = self.getAnguloProfile(utc_adq=utc_adq,utc_ped_list=self.utc_ped_list) + #print("angulo**********",angulo) dataOut.flagNoData = False if numpy.isnan(angulo) or numpy.isnan(angulo_ele) : dataOut.flagNoData = True @@ -4356,12 +4373,13 @@ class Block360(Operation): if self.__dataReady: dataOut.data_360 = data_360 # S ##print("---------------------------------------------------------------------------------") - #####print("---------------------------DATAREADY---------------------------------------------") + print("---------------------------DATAREADY---------------------------------------------") ##print("---------------------------------------------------------------------------------") ##print("data_360",dataOut.data_360.shape) dataOut.data_azi = data_p dataOut.data_ele = data_e #####print("azi: ",dataOut.data_azi) + print("ele: ",dataOut.data_ele) #print("jroproc_parameters",data_p[0],data_p[-1])#,data_360.shape,avgdatatime) dataOut.utctime = avgdatatime dataOut.flagNoData = False diff --git a/schainpy/model/proc/jroproc_voltage.py b/schainpy/model/proc/jroproc_voltage.py index 3b55957..7abc55b 100644 --- a/schainpy/model/proc/jroproc_voltage.py +++ b/schainpy/model/proc/jroproc_voltage.py @@ -1378,7 +1378,7 @@ class PulsePair(Operation): pair0 = pair0.real lag_0 = numpy.sum(pair0,1) #-----------------Calculo de Cscp------------------------------ New - cspc_pair01 = self.__buffer[0]*__self.buffer[1] + cspc_pair01 = self.__buffer[0]*self.__buffer[1] #------------------Calculo de Ruido x canal-------------------- self.noise = numpy.zeros(self.__nch) for i in range(self.__nch): @@ -1463,7 +1463,7 @@ class PulsePair(Operation): self.__lastdatatime = datatime if data_power is None: - return None, None, None,None,None,None + return None, None, None,None,None,None,None avgdatatime = self.__initime deltatime = datatime - self.__lastdatatime diff --git a/schainpy/scripts/TEST_USRP_OPERACIONES.py b/schainpy/scripts/TEST_USRP_OPERACIONES.py index 0272eee..f027e1a 100644 --- a/schainpy/scripts/TEST_USRP_OPERACIONES.py +++ b/schainpy/scripts/TEST_USRP_OPERACIONES.py @@ -25,17 +25,25 @@ controllerObj.setup(id = '191', name='Test_USRP', description=desc) #path = '/media/data/data/vientos/57.2063km/echoes/NCO_Woodman' #path = '/DATA_RM/TEST_INTEGRACION' #path = '/DATA_RM/PRUEBA_USRP_RP' -path = '/DATA_RM/PRUEBA_USRP_RP' +#path = '/DATA_RM/PRUEBA_USRP_RP' -figpath = '/home/soporte/Pictures/TEST_RP_0001' -figpath = '/home/soporte/Pictures/TEST_RP_6000' -figpath = '/home/soporte/Pictures/USRP' +path = '/DATA_RM/TEST_2M' +path = '/DATA_RM/TEST_2M_UD' +path = '/DATA_RM/2MHZ17022022' +path = '/DATA_RM/10MHZTEST/' +path = '/DATA_RM/10MHZDRONE/' + +#figpath = '/home/soporte/Pictures/TEST_RP_0001' +#figpath = '/home/soporte/Pictures/TEST_RP_6000' +figpath = '/home/soporte/Pictures/USRP_TEST_2M' +figpath = '/home/soporte/Pictures/USRP_TEST_2M_UD' +figpaht = '/home/soporte/Pictures/10MHZDRONE' #remotefolder = "/home/wmaster/graficos" ####################################################################### ################# RANGO DE PLOTEO###################################### ####################################################################### -dBmin = '-5' -dBmax = '20' +dBmin = '20' +dBmax = '60' xmin = '0' xmax ='24' ymin = '0' @@ -52,16 +60,16 @@ yesterday = str2.strftime("%Y/%m/%d") ####################################################################### readUnitConfObj = controllerObj.addReadUnit(datatype='DigitalRFReader', path=path, - startDate="2021/07/02",#today, - endDate="2021/07/02",#today, - startTime='14:50:00',# inicio libre + startDate="2022/02/18",#today, + endDate="2022/02/18",#today, + startTime='00:00:00',# inicio libre #startTime='00:00:00', - endTime='14:55:59', + endTime='23:59:59', delay=0, #set=0, - online=0, + online=1, walk=1, - ippKm = 6000) + ippKm = 60) opObj11 = readUnitConfObj.addOperation(name='printInfo') #opObj11 = readUnitConfObj.addOperation(name='printNumberOfBlock') @@ -71,11 +79,24 @@ opObj11 = readUnitConfObj.addOperation(name='printInfo') procUnitConfObjA = controllerObj.addProcUnit(datatype='VoltageProc', inputId=readUnitConfObj.getId()) +''' +# OJO SCOPE +opObj10 = procUnitConfObjA.addOperation(name='ScopePlot', optype='external') +opObj10.addParameter(name='id', value='10', format='int') +##opObj10.addParameter(name='xmin', value='0', format='int') +##opObj10.addParameter(name='xmax', value='50', format='int') +opObj10.addParameter(name='type', value='iq') +opObj10.addParameter(name='ymin', value='-1200', format='int') +opObj10.addParameter(name='ymax', value='1200', format='int') +opObj10.addParameter(name='save', value=figpath, format='str') +opObj10.addParameter(name='save_period', value=10, format='int') +''' +''' opObj11 = procUnitConfObjA.addOperation(name='selectHeights') opObj11.addParameter(name='minIndex', value='1', format='int') # opObj11.addParameter(name='maxIndex', value='10000', format='int') opObj11.addParameter(name='maxIndex', value='39980', format='int') - +''' # # codigo64='1,1,1,0,1,1,0,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,0,1,0,0,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,'+\ # '1,1,1,0,1,1,0,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,0,1' @@ -148,14 +169,19 @@ opObj11.addParameter(name='save_period', value=1) 8 ''' + + +opObj11 = procUnitConfObjA.addOperation(name='CohInt', optype='other') +opObj11.addParameter(name='n', value='250', format='int') + ####################################################################### ########## OPERACIONES DOMINIO DE LA FRECUENCIA######################## ####################################################################### -#procUnitConfObjB = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObjA.getId()) -#procUnitConfObjB.addParameter(name='nFFTPoints', value='32', format='int') -#procUnitConfObjB.addParameter(name='nProfiles', value='32', format='int') - +procUnitConfObjB = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObjA.getId()) +procUnitConfObjB.addParameter(name='nFFTPoints', value='32', format='int') +procUnitConfObjB.addParameter(name='nProfiles', value='32', format='int') +''' procUnitConfObjC = controllerObj.addProcUnit(datatype='SpectraHeisProc', inputId=procUnitConfObjA.getId()) #procUnitConfObjB.addParameter(name='nFFTPoints', value='64', format='int') #procUnitConfObjB.addParameter(name='nProfiles', value='64', format='int') @@ -174,7 +200,8 @@ opObj11.addParameter(name='n', value='100', format='int') ########## PLOTEO DOMINIO DE LA FRECUENCIA############################# ####################################################################### #---- - +''' +''' opObj11 = procUnitConfObjC.addOperation(name='SpectraHeisPlot') opObj11.addParameter(name='id', value='10', format='int') opObj11.addParameter(name='wintitle', value='Spectra_Alturas', format='str') @@ -189,7 +216,7 @@ opObj11.addParameter(name='grid', value=True, format='bool') #opObj11.addParameter(name='showprofile', value='1', format='int') opObj11.addParameter(name='save', value=figpath, format='str') #opObj11.addParameter(name='save_period', value=10, format='int') - +''' ''' opObj11 = procUnitConfObjC.addOperation(name='RTIHeisPlot') opObj11.addParameter(name='id', value='10', format='int') @@ -204,7 +231,7 @@ opObj11.addParameter(name='showprofile', value='1', format='int') opObj11.addParameter(name='save', value=figpath, format='str') opObj11.addParameter(name='save_period', value=10, format='int') ''' -''' + #SpectraPlot opObj11 = procUnitConfObjB.addOperation(name='SpectraPlot', optype='external') @@ -220,6 +247,7 @@ opObj11.addParameter(name='showprofile', value='1', format='int') opObj11.addParameter(name='save', value=figpath, format='str') opObj11.addParameter(name='save_period', value=10, format='int') + #RTIPLOT opObj11 = procUnitConfObjB.addOperation(name='RTIPlot', optype='external') @@ -259,7 +287,7 @@ opObj11.addParameter(name='save_period', value=10, format='int') # opObj11.addParameter(name='save', value=0, format='bool') # opObj11.addParameter(name='pairsList', value='(0,1)', format='pairsList') # - +''' ''' ####################################################################### ############### UNIDAD DE ESCRITURA ################################### diff --git a/schainpy/scripts/basic_proc00003.py b/schainpy/scripts/basic_proc00003.py index 1e06ae9..2c5d12b 100644 --- a/schainpy/scripts/basic_proc00003.py +++ b/schainpy/scripts/basic_proc00003.py @@ -16,6 +16,7 @@ print("[SETUP]-RADAR METEOROLOGICO-") path_ped = "/DATA_RM/TEST_PEDESTAL/P20211111-173856" print("PATH PEDESTAL :",path_ped) path_adq = "/DATA_RM/11" +path_adq = "/DATA_RM/10MHZDRONE/" print("PATH DATA :",path_adq) @@ -60,9 +61,9 @@ n= int(1/(VEL*ipp_sec)) print("N° Profiles : ", n) #--------------------------------------------------------------------------------------- plot_rti = 0 -plot_ppi = 0 +plot_ppi = 1 integration = 1 -save = 1 +save = 0 #---------------------------RANGO DE PLOTEO---------------------------------- dBmin = '1' dBmax = '85' @@ -94,9 +95,9 @@ controllerObj.setup(id = '191', name='Test_USRP', description=desc) #---------------------UNIDAD DE LECTURA-------------------------------- readUnitConfObj = controllerObj.addReadUnit(datatype='DigitalRFReader', path=path_adq, - startDate="2021/11/11",#today, - endDate="2021/12/30",#today, - startTime='17:39:17', + startDate="2022/02/19",#today, + endDate="2022/02/18",#today, + startTime='00:00:00', endTime='23:59:59', delay=0, #set=0, diff --git a/schainpy/scripts/basic_proc00004.py b/schainpy/scripts/basic_proc00004.py index 16d801c..17b5c74 100644 --- a/schainpy/scripts/basic_proc00004.py +++ b/schainpy/scripts/basic_proc00004.py @@ -18,8 +18,10 @@ from schainpy.controller import Project #----------------------------------------------------------------------------------------- print("[SETUP]-RADAR METEOROLOGICO-") path_ped = "/DATA_RM/TEST_PEDESTAL/P20211123-143826" +path_ped = "/DATA_RM/TEST_PEDESTAL/P20220217-172216" print("PATH PEDESTAL :",path_ped) path_adq = "/DATA_RM/DRONE/2MHZ_5V_ELEVACION/" +path_adq = "/DATA_RM/2MHZTEST/" print("PATH DATA :",path_adq) figpath_pp_rti = "/home/soporte/Pictures/TEST_PP_RHI" print("PATH PP RTI :",figpath_pp_rti) @@ -44,7 +46,7 @@ else: ff_pedestal = list_ped[2] ele_vel = getDatavaluefromDirFilename(path=path_ped,file=ff_pedestal,value="ele_vel") V = round(ele_vel[0]) - V = 10.0 + V = 8.0#10.0 print("VELOCIDAD ELE :", int(numpy.mean(ele_vel)),"°/seg") print(" ") #--------------------------------------------------------------------------------------- @@ -83,9 +85,9 @@ controllerObj.setup(id = '191', name='Test_USRP', description=desc) #---------------------UNIDAD DE LECTURA-------------------------------- readUnitConfObj = controllerObj.addReadUnit(datatype='DigitalRFReader', path=path_adq, - startDate="2021/11/23",#today, - endDate="2021/12/30",#today, - startTime='14:38:23', + startDate="2022/02/17",#today, + endDate="2022/02/17",#today, + startTime='00:00:00', endTime='23:59:59', delay=0, #set=0, @@ -109,6 +111,7 @@ if mode_proc==0: opObj11 = procUnitConfObjB.addOperation(name='PedestalInformation') opObj11.addParameter(name='path_ped', value=path_ped) opObj11.addParameter(name='t_Interval_p', value='0.01', format='float') + opObj11.addParameter(name='wr_exp', value='RHI') if plot_rhi==1: opObj11 = procUnitConfObjB.addOperation(name='Block360') diff --git a/schainpy/scripts/check_pedestal.py b/schainpy/scripts/check_pedestal.py index ed7a197..c4ee7b1 100644 --- a/schainpy/scripts/check_pedestal.py +++ b/schainpy/scripts/check_pedestal.py @@ -16,6 +16,7 @@ path_ped = '/DATA_RM/TEST_PEDESTAL/P20211020-131248' path_ped = '/DATA_RM/TEST_PEDESTAL/P20211110-171003' path_ped = '/DATA_RM/TEST_PEDESTAL/P20211111-173856' path_ped = '/DATA_RM/TEST_PEDESTAL/P20211123-143826' +path_ped = "/DATA_RM/TEST_PEDESTAL/P20220217-172216" #path_ped = '/DATA_RM/TEST_PEDESTAL/P20211111-173409' # Metodo para verificar numero def isNumber(str): @@ -48,7 +49,7 @@ for i in range(m): tmp_azi_pos = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="azi_pos") tmp_ele_pos = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="ele_pos") tmp_azi_vel = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="azi_vel") - tmp_ele_vel = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="azi_vel")# nuevo :D + tmp_ele_vel = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="ele_vel")# nuevo :D time_[i] = getDatavaluefromDirFilename(path=path_ped,file=LIST[i],value="utc") @@ -72,8 +73,10 @@ z=0 # CONDICION POR LEER EN TIEMPO REAL NO OFFLINE for filename in LIST: - tmp_azi_pos = getDatavaluefromDirFilename(path=path_ped,file=filename,value="azi_pos") - tmp_ele_pos = getDatavaluefromDirFilename(path=path_ped,file=filename,value="ele_pos") + #tmp_azi_pos = getDatavaluefromDirFilename(path=path_ped,file=filename,value="azi_pos") + #tmp_ele_pos = getDatavaluefromDirFilename(path=path_ped,file=filename,value="ele_pos") + tmp_azi_pos = getDatavaluefromDirFilename(path=path_ped,file=filename,value="ele_vel") + tmp_ele_pos = getDatavaluefromDirFilename(path=path_ped,file=filename,value="azi_vel") # CONDICION POR LEER EN TIEMPO REAL NO OFFLINE if z==(m-1): diff --git a/schainpy/scripts/test_px1000.py b/schainpy/scripts/test_px1000.py new file mode 100644 index 0000000..5e905ed --- /dev/null +++ b/schainpy/scripts/test_px1000.py @@ -0,0 +1,64 @@ +import numpy as np +import matplotlib.pyplot as pl +import warnings +#export WRADLIB_DATA=/path/to/wradlib-data +warnings.filterwarnings('ignore') + +from wradlib.io import read_generic_netcdf +from wradlib.util import get_wradlib_data_file +import os + + + +# A little helper function for repeated tasks +def read_and_overview(filename): + """Read NetCDF using read_generic_netcdf and print upper level dictionary keys + """ + test = read_generic_netcdf(filename) + print("\nPrint keys for file %s" % os.path.basename(filename)) + for key in test.keys(): + print("\t%s" % key) + return test + + +filename = '/home/soporte/Downloads/PX1000/PX-20180220-174014-E0.0-Z.nc' +filename = get_wradlib_data_file(filename) +test= read_and_overview(filename) +print("Height",test['Height']) +print("Azimuth",test['Azimuth']) +print("Elevation",test['Elevation']) +print("CalibH-value",test['CalibH-value']) +print("attributes",test['attributes']) +print("-------------------------------------------------------------------------------------") +for key in test.keys(): + print(key,test[str(key)]) + +''' +try: + get_ipython().magic('matplotlib inline') +except: + pl.ion() +img, meta = wradlib.io.read_dx(filename) +print("Shape of polar array: %r\n" % (img.shape,)) +print("Some meta data of the DX file:") +#print("\tdatetime: %r" % (meta["datetime"],)) +#print("\tRadar ID: %s" % (meta["radarid"],)) + +img[200:250,:]= np.ones([50,img.shape[1]])*np.nan + +img[300:360,:]= np.ones([60,img.shape[1]])*np.nan + +cgax, pm= wradlib.vis.plot_ppi(img) +txt = pl.title('Simple PPI') +print("coordenada angular",img[:,0],len(img[:,0])) +print("COORDENADA 0",img[0],len(img[0])) +cbar = pl.gcf().colorbar(pm, pad=0.075) + +#r = np.arange(40, 80) +#az = np.arange(200, 250) +#ax, pm = wradlib.vis.plot_ppi(img[200:250, 40:80], r, az, autoext=False) +#ax, pm = wradlib.vis.plot_ppi(img[200:250, 40:80], r, az) + +#txt = pl.title('Sector PPI') +pl.show() +'''