##// END OF EJS Templates
Script test de pruebas actuales con el update de heading en el block 360, el parametro adicional es heading que se lee del experiment.conf
Script test de pruebas actuales con el update de heading en el block 360, el parametro adicional es heading que se lee del experiment.conf

File last commit:

r1405:49f004b59e80
r1759:c8ee9da660f1
Show More
basic_proc00001.py
282 lines | 13.4 KiB | text/x-python | PythonLexer
LAST UPDATE INTEGRACION
r1388 # Ing. AVP
# 06/10/2021
# ARCHIVO DE LECTURA
import os, sys
import datetime
import time
from schainpy.controller import Project
#### NOTA###########################################
# INPUT :
# VELOCIDAD PARAMETRO : V = 2°/seg
# MODO PULSE PAIR O MOMENTOS: 0 : Pulse Pair ,1 : Momentos
######################################################
##### PROCESAMIENTO ##################################
##### OJO TENER EN CUENTA EL n= para el Pulse Pair ##
##### O EL n= nFFTPoints ###
######################################################
######## BUSCAMOS EL numero de IPP equivalente 1°#####
######## Sea V la velocidad del Pedestal en °/seg#####
######## 1° sera Recorrido en un tiempo de 1/V ######
######## IPP del Radar 400 useg --> 60 Km ############
######## n = 1/(V(°/seg)*IPP(Km)) , NUMERO DE IPP ##
######## n = 1/(V*IPP) #############################
######## VELOCIDAD DEL PEDESTAL ######################
print("SETUP- RADAR METEOROLOGICO")
avaldezp
last 30-16:19
r1405 V = 6
LAST UPDATE INTEGRACION
r1388 mode = 1
avaldezp
last 30-16:19
r1405 #--------------------------PATH -----------------------------
# path = '/DATA_RM/23/6v'
# path = '/DATA_RM/TEST_INTEGRACION_2M'
# path = '/DATA_RM/TEST_19OCTUBRE/10MHZ'
# path = '/DATA_RM/WR_20_OCT'
LAST CHANGE WR
r1393 #### path_ped='/DATA_RM/TEST_PEDESTAL/P20211012-082745'
valid en jroproc_parameters
r1394 ####path_ped='/DATA_RM/TEST_PEDESTAL/P20211019-192244'
avaldezp
last 30-16:19
r1405 #path = '/DATA_RM/WR_POT_09_1'
#path = '/DATA_RM/WR_POT_09_2'
#path ="/DATA_RM/10"
#path ="/DATA_RM/11"
#path ="/DATA_RM/DRONE/2MHZ_6V"
path ="/DATA_RM/DRONE/2MHZ_10V_ELEVACION"
path ="/DATA_RM/DRONE/2MHZ_6V_AZIMUTH"
#-------------------------PATH-PLOTEO------------------------------------
#figpath_pp = "/home/soporte/Pictures/TEST_PP"
#figpath_spec = "/home/soporte/Pictures/TEST_MOM_15"
#figpath_spec = "/home/soporte/Pictures/11_"
figpath_spec = "/home/soporte/Pictures/23NOV"
figpath_spec = "/home/soporte/Pictures/23NOV_TEST_AZI"
figpath_pp = "/home/soporte/Pictures/TEST_POT"
figpath_pp = "/home/soporte/Pictures/TEST_POT_10_"
#--------------------------OPCIONES-----------------------------------
valid en jroproc_parameters
r1394 plot = 0
avaldezp
last 30-16:19
r1405 integration = 0
LAST UPDATE INTEGRACION
r1388 save = 0
avaldezp
last 30-16:19
r1405 plot_spec = 1
#-------------------------------------------------------------------------
LAST UPDATE INTEGRACION
r1388 if save == 1:
if mode==0:
path_save = '/DATA_RM/TEST_HDF5_PP_23/6v'
path_save = '/DATA_RM/TEST_HDF5_PP'
path_save = '/DATA_RM/TEST_HDF5_PP_100'
else:
path_save = '/DATA_RM/TEST_HDF5_SPEC_23_V2/6v'
print("* PATH data ADQ :", path)
print("* Velocidad Pedestal :",V,"°/seg")
############################ NRO Perfiles PROCESAMIENTO ###################
V=V
IPP=400*1e-6
n= int(1/(V*IPP))
print("* n - NRO Perfiles Proc:", n )
################################## MODE ###################################
print("* Modo de Operacion :",mode)
if mode ==0:
print("* Met. Seleccionado : Pulse Pair")
else:
print("* Met. Momentos : Momentos")
################################## MODE ###################################
print("* Grabado de datos :",save)
if save ==1:
if mode==0:
ope= "Pulse Pair"
else:
ope= "Momentos"
print("* Path-Save Data -", ope , path_save)
print("* Integracion de datos :",integration)
avaldezp
last 30-16:19
r1405 time.sleep(3)
LAST UPDATE INTEGRACION
r1388 #remotefolder = "/home/wmaster/graficos"
#######################################################################
################# RANGO DE PLOTEO######################################
avaldezp
last 30-16:19
r1405 dBmin = '8'
dBmax = '35'
xmin = '12.1'#17.1,17.5
xmax = '12.2'#17.2,17.8
ymin = '0'#### PONER A 0
ymax = '8'#### PONER A 8
LAST UPDATE INTEGRACION
r1388 #######################################################################
########################FECHA##########################################
str = datetime.date.today()
today = str.strftime("%Y/%m/%d")
str2 = str - datetime.timedelta(days=1)
yesterday = str2.strftime("%Y/%m/%d")
#######################################################################
########################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,
avaldezp
last 30-16:19
r1405 startDate="2021/11/23",#today,
endDate="2021/12/23",#today,
startTime='15:00:00',#'17:39:25',
endTime='16:00:59',#23:59:59',
LAST UPDATE INTEGRACION
r1388 delay=0,
#set=0,
avaldezp
last 30-16:19
r1405 online=1,
LAST UPDATE INTEGRACION
r1388 walk=1,
ippKm = 60)
opObj11 = readUnitConfObj.addOperation(name='printInfo')
procUnitConfObjA = controllerObj.addProcUnit(datatype='VoltageProc', inputId=readUnitConfObj.getId())
avaldezp
last 30-16:19
r1405 opObj11 = procUnitConfObjA.addOperation(name='setH0')
opObj11.addParameter(name='h0', value='-3.3', format='float')
#-2.8 5MHZ
#-3.3 2MHZ
###opObj11 = procUnitConfObjA.addOperation(name='selectChannels')
###opObj11.addParameter(name='channelList', value='[1]',format='intList')
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='160', format='int')
## 400 PARA 5MHZ 12KM 2000
## 160 ṔARA 2MHZ 12KM 800
LAST UPDATE INTEGRACION
r1388 if mode ==0:
####################### METODO 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 plot==1:
opObj11 = procUnitConfObjB.addOperation(name='GenericRTIPlot',optype='external')
LAST CHANGE WR
r1393 opObj11.addParameter(name='attr_data', value='dataPP_POWER')
LAST UPDATE INTEGRACION
r1388 opObj11.addParameter(name='colormap', value='jet')
opObj11.addParameter(name='xmin', value=xmin)
opObj11.addParameter(name='xmax', value=xmax)
avaldezp
last 30-16:19
r1405 #opObj11.addParameter(name='ymin', value=ymin)
#opObj11.addParameter(name='ymax', value=ymax)
LAST UPDATE INTEGRACION
r1388 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)
LAST CHANGE WR
r1393 opObj11.addParameter(name='save_period', value=10)
LAST UPDATE INTEGRACION
r1388
####################### METODO ESCRITURA #######################################################################
if save==1:
opObj10 = procUnitConfObjB.addOperation(name='HDFWriter')
opObj10.addParameter(name='path',value=path_save)
#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')
LAST CHANGE WR
r1393 opObj10.addParameter(name='dataList',value='dataPP_POWER,dataPP_DOP,utctime',format='list')#,format='list'
LAST UPDATE INTEGRACION
r1388 if integration==1:
V=10
blocksPerfile=360
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=mode, 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')
else:
####################### METODO SPECTROS ######################################################################
procUnitConfObjB = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObjA.getId())
procUnitConfObjB.addParameter(name='nFFTPoints', value=n, format='int')
procUnitConfObjB.addParameter(name='nProfiles' , value=n, format='int')
avaldezp
last 30-16:19
r1405 if plot_spec==1:
'''
opObj11 = procUnitConfObjB.addOperation(name='SpectraPlot', optype='external')
#.addParameter(name='id', value='2', format='int')
opObj11.addParameter(name='wintitle', value='SpectraPlot', format='str')
opObj11.addParameter(name='channelList', value='1', format='intlist')
#opObj11.addParameter(name='xmin', value=xmin)
#opObj11.addParameter(name='xmax', value=xmax)
opObj11.addParameter(name='ymin', value=ymin)
opObj11.addParameter(name='ymax', value=ymax)
opObj11.addParameter(name='zmin', value=dBmin, format='int')
opObj11.addParameter(name='zmax', value=dBmax, format='int')
opObj11.addParameter(name='save', value=figpath_spec)
opObj11.addParameter(name='showprofile', value=0)
opObj11.addParameter(name='save_period', value=1)
'''
opObj11 = procUnitConfObjB.addOperation(name='RTIPlot', optype='external')
#.addParameter(name='id', value='2', format='int')
opObj11.addParameter(name='wintitle', value='RTIPlot', format='str')
opObj11.addParameter(name='channelList', value='1', format='intlist')
opObj11.addParameter(name='xmin', value=xmin)
opObj11.addParameter(name='xmax', value=xmax)
opObj11.addParameter(name='ymin', value=ymin)
opObj11.addParameter(name='ymax', value=ymax)
opObj11.addParameter(name='zmin', value=dBmin, format='int')
opObj11.addParameter(name='zmax', value=dBmax, format='int')
opObj11.addParameter(name='save', value=figpath_spec)
opObj11.addParameter(name='showprofile', value=0)
opObj11.addParameter(name='save_period', value=1)
LAST UPDATE INTEGRACION
r1388
procUnitConfObjC = controllerObj.addProcUnit(datatype='ParametersProc',inputId=procUnitConfObjB.getId())
procUnitConfObjC.addOperation(name='SpectralMoments')
if plot==1:
opObj11 = procUnitConfObjC.addOperation(name='PowerPlot',optype='external')
opObj11.addParameter(name='xmin', value=xmin)
opObj11.addParameter(name='xmax', value=xmax)
avaldezp
last 30-16:19
r1405 opObj11.addParameter(name='ymin', value=ymin)
opObj11.addParameter(name='ymax', value=ymax)
LAST UPDATE INTEGRACION
r1388 opObj11.addParameter(name='zmin', value=dBmin)
opObj11.addParameter(name='zmax', value=dBmax)
LAST CHANGE WR
r1393 opObj11.addParameter(name='save', value=figpath_spec)
LAST UPDATE INTEGRACION
r1388 opObj11.addParameter(name='showprofile', value=0)
avaldezp
last 30-16:19
r1405 opObj11.addParameter(name='save_period', value=1)
LAST UPDATE INTEGRACION
r1388
if save==1:
opObj10 = procUnitConfObjC.addOperation(name='HDFWriter')
opObj10.addParameter(name='path',value=path_save)
#opObj10.addParameter(name='mode',value=0)
opObj10.addParameter(name='blocksPerFile',value='360',format='int')
#opObj10.addParameter(name='metadataList',value='utctimeInit,heightList,nIncohInt,nCohInt,nProfiles,channelList',format='list')#profileIndex
opObj10.addParameter(name='metadataList',value='utctimeInit,heightList,nIncohInt,nCohInt,nProfiles,channelList',format='list')#profileIndex
opObj10.addParameter(name='dataList',value='data_pow,data_dop,utctime',format='list')#,format='list'
if integration==1:
V=10
blocksPerfile=360
print("* Velocidad del Pedestal:",V)
tmp_blocksPerfile = 100
f_a_p= int(tmp_blocksPerfile/V)
opObj11 = procUnitConfObjC.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 = procUnitConfObjC.addOperation(name='Block360')
opObj11.addParameter(name='n', value='10', format='int')
opObj11.addParameter(name='mode', value=mode, format='int')
# este bloque funciona bien con divisores de 360 no olvidar 0 10 20 30 40 60 90 120 180
opObj11= procUnitConfObjC.addOperation(name='WeatherPlot',optype='other')
controllerObj.start()