|
|
# Ing. AVP
|
|
|
# 01/11/2021
|
|
|
# ARCHIVO DE LECTURA
|
|
|
import os, sys
|
|
|
import datetime
|
|
|
import time
|
|
|
from schainpy.controller import Project
|
|
|
print("----[Setup]-RadarMeteorologico--------")
|
|
|
Vel = 10
|
|
|
modo_proc = 0 # 0 Pulse Pair 1 Spectros
|
|
|
#-----------PATH DE DATOS-----------------------#
|
|
|
#------------VERIFICAR SIEMPRE LA FECHA DE LA DATA
|
|
|
path = "/DATA_RM/10"
|
|
|
path_ped = "/DATA_RM/TEST_PEDESTAL/P20211110-171003"
|
|
|
figpath_pp = "/home/soporte/Pictures/TEST_POT"
|
|
|
figpath_ppi_pp = "/home/soporte/Pictures/ppi_PP_30DIC_4"
|
|
|
#-------------------------------------------------------------------
|
|
|
print("----[OPCIONES]------------------------")
|
|
|
op_plot = 0
|
|
|
op_integration = 1
|
|
|
op_save = 1
|
|
|
op_plot_spec = 0
|
|
|
#-------------------------------------
|
|
|
################# RANGO DE PLOTEO######################################
|
|
|
dBmin = '1'
|
|
|
dBmax = '85'
|
|
|
xmin = '17.1'
|
|
|
xmax = '17.25'
|
|
|
ymin = '0'
|
|
|
ymax = '600'
|
|
|
#-------------------NRO Perfiles PROCESAMIENTO --------------------
|
|
|
V=Vel
|
|
|
IPP=400*1e-6
|
|
|
n= int(1/(V*IPP))
|
|
|
print("* n - NRO Perfiles Proc:", n )
|
|
|
time.sleep(3)
|
|
|
|
|
|
#------------------------SIGNAL CHAIN ------------------------------
|
|
|
desc = "USRP_test"
|
|
|
filename = "USRP_processing.xml"
|
|
|
controllerObj = Project()
|
|
|
controllerObj.setup(id = '191', name='Test_USRP', description=desc)
|
|
|
######################## UNIDAD DE LECTURA#############################
|
|
|
readUnitConfObj = controllerObj.addReadUnit(datatype = 'DigitalRFReader',
|
|
|
path = path,
|
|
|
startDate= "2021/11/10",#today,
|
|
|
endDate = "2021/12/30",#today,
|
|
|
startTime= '00:00:25',
|
|
|
endTime = '23:59:59',
|
|
|
delay = 0,
|
|
|
online = 0,
|
|
|
walk = 1,
|
|
|
ippKm = 60)
|
|
|
|
|
|
opObj11 = readUnitConfObj.addOperation(name='printInfo')
|
|
|
procUnitConfObjA = controllerObj.addProcUnit(datatype='VoltageProc',inputId=readUnitConfObj.getId())
|
|
|
|
|
|
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='400', format='int')
|
|
|
|
|
|
if modo_proc ==0:
|
|
|
#----------------------------------------PULSE PAIR --------------------------------------------------#
|
|
|
opObj11 = procUnitConfObjA.addOperation(name='PulsePair', optype='other')
|
|
|
opObj11.addParameter(name='n', value=int(n), format='int')#10 VOY A USAR 250 DADO QUE LA VELOCIDAD ES 10 GRADOS
|
|
|
#opObj11.addParameter(name='removeDC', value=1, format='int')
|
|
|
#------------------------ METODO Parametros -----------------------------------------------------------
|
|
|
procUnitConfObjB= controllerObj.addProcUnit(datatype='ParametersProc',inputId=procUnitConfObjA.getId())
|
|
|
if op_plot==1:
|
|
|
opObj11 = procUnitConfObjB.addOperation(name='GenericRTIPlot',optype='external')
|
|
|
opObj11.addParameter(name='attr_data', value='dataPP_POW')
|
|
|
opObj11.addParameter(name='colormap', value='jet')
|
|
|
#opObj11.addParameter(name='xmin', value=xmin)
|
|
|
#opObj11.addParameter(name='xmax', value=xmax)
|
|
|
opObj11.addParameter(name='zmin', value=dBmin)
|
|
|
opObj11.addParameter(name='zmax', value=dBmax)
|
|
|
opObj11.addParameter(name='save', value=figpath_pp)
|
|
|
opObj11.addParameter(name='showprofile', value=0)
|
|
|
opObj11.addParameter(name='save_period', value=50)
|
|
|
|
|
|
####################### METODO ESCRITURA #######################################################################
|
|
|
|
|
|
if op_integration==1:
|
|
|
V=V
|
|
|
blocksPerfile=100
|
|
|
print("* Velocidad del Pedestal:",V)
|
|
|
tmp_blocksPerfile = 100
|
|
|
f_a_p= int(tmp_blocksPerfile/V)
|
|
|
|
|
|
opObj11 = procUnitConfObjB.addOperation(name='PedestalInformation')
|
|
|
opObj11.addParameter(name='path_ped', value=path_ped)
|
|
|
#opObj11.addParameter(name='path_adq', value=path_adq)
|
|
|
opObj11.addParameter(name='t_Interval_p', value='0.01', format='float')
|
|
|
opObj11.addParameter(name='blocksPerfile', value=blocksPerfile, format='int')
|
|
|
opObj11.addParameter(name='n_Muestras_p', value='100', format='float')
|
|
|
opObj11.addParameter(name='f_a_p', value=f_a_p, format='int')
|
|
|
opObj11.addParameter(name='online', value='0', format='int')
|
|
|
|
|
|
opObj11 = procUnitConfObjB.addOperation(name='Block360')
|
|
|
opObj11.addParameter(name='n', value='10', format='int')
|
|
|
opObj11.addParameter(name='mode', value=modo_proc, format='int')
|
|
|
|
|
|
# este bloque funciona bien con divisores de 360 no olvidar 0 10 20 30 40 60 90 120 180
|
|
|
|
|
|
opObj11= procUnitConfObjB.addOperation(name='WeatherPlot',optype='other')
|
|
|
opObj11.addParameter(name='save', value=figpath_ppi_pp)
|
|
|
opObj11.addParameter(name='save_period', value=1)
|
|
|
|
|
|
if op_save==1:
|
|
|
opObj10 = procUnitConfObjB.addOperation(name='HDFWriter')
|
|
|
opObj10.addParameter(name='path',value=figpath_ppi_pp)
|
|
|
#opObj10.addParameter(name='mode',value=0)
|
|
|
opObj10.addParameter(name='blocksPerFile',value='100',format='int')
|
|
|
opObj10.addParameter(name='metadataList',value='utctimeInit,timeZone,paramInterval,profileIndex,channelList,heightList,flagDataAsBlock',format='list')
|
|
|
opObj10.addParameter(name='dataList',value='dataPP_POW,dataPP_DOP,azimuth,utctime',format='list')#,format='list'
|
|
|
|
|
|
controllerObj.start()
|
|
|
|