##// 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:

r1427:6570b3c66916
r1759:c8ee9da660f1
Show More
wr_marzo_v1_002.py
188 lines | 8.4 KiB | text/x-python | PythonLexer
# 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 Y MODO ------------------------
print("SETUP- RADAR METEOROLOGICO")
IPP = 400*1e-6
V = 12
samp_rate = 10# VERIFICAR
MODE_TABLE = 1 # PUEDE SER 1 sO 0
AXIS = [1,1,1,1] # AZIMUTH 1 ELEVACION 0
SPEED_AXIS = [10,10,10,10] # VELOCIDAD
ANGLE_AXIS = [20,25,30,15] # ANGULOS
mode_proc = 0
#-----------------------------PATH ADQ Y PEDESTAL-------------------------------
path = "/DATA_RM/DRONE2"
path_ped = "/DATA_RM/TEST_PEDESTAL/P20220329-174143"
#-------------------------------------------------------------------------------
figpath_pp = "/home/soporte/Pictures/MARTES_29_PP_10M_.1us"
figpath_spec = "/home/soporte/Pictures/MARTES_29_10M_.1us"
figpath_pp_ppi = "/home/soporte/Pictures/MARTES_29_10M_.1us_PPI"
#--------------------------OPCIONES---------------------------------------------
plot = 1
plot_ppi = 1
integration = 1
save = 0
plot_spec = 0
#---------------------------SAVE HDF5 PROCESADO/--------------------------------
if save == 1:
if mode_proc==0:
path_save = '/DATA_RM/TEST_HDF5_PP_MAR22/6v'
else:
path_save = '/DATA_RM/TEST_HDF5_SPEC_MAR22/6v'
print("[SETUP]-RADAR METEOROLOGICO-")
print("* PATH data ADQ :", path)
print("* PATH data PED :", path_ped)
print("* SAMPLE RATE ADQ Mhz :", samp_rate)
print("* Velocidad Pedestal :",V,"°/seg")
print("* Configuracion del Pedestal *")
print("*** AXIS :",AXIS)
print("*** SPEED_AXIS:",SPEED_AXIS)
print("*** ANGLE_AXIS:",ANGLE_AXIS)
num_alturas = int(samp_rate*IPP*1e6)
print("* Nro de Altura :",num_alturas)
############################ NRO Perfiles PROCESAMIENTO ###################
V=V
n= int(1/(V*IPP))
print("* n - NRO Perfiles Proc:", n )
################################## MODE ###################################
print("* Modo de Operacion :",mode_proc)
if mode_proc ==0:
print("* Met. Seleccionado : Pulse Pair")
else:
print("* Met. Momentos : Momentos")
################################## MODE ###################################
print("* Grabado de datos :",save)
if save ==1:
if mode_proc==0:
print("[ ON ] MODE PULSEPAIR")
else:
print("[ ON ] MODE FREQUENCY")
print("* Integracion de datos :",integration)
print("* Ploteo de datos Parameters:", plot)
if plot==1:
print("* Path PP plot :", figpath_pp )
if plot_ppi==1:
print("* Path PPI plot :", figpath_pp_ppi )
time.sleep(5)
#remotefolder = "/home/wmaster/graficos"
################# RANGO DE PLOTEO######################################
dBmin = '20'
dBmax = '80'
xmin = '17.6' #17.1,17.5
xmax = '17.9' #17.2,17.8
ymin = '0' #### PONER A 0
ymax = '8' #### PONER A 8
########################FECHA##########################################
str1 = datetime.date.today()
today = str1.strftime("%Y/%m/%d")
str2 = str1 - 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,
startDate="2022/03/29",#today,
endDate="2022/03/29",#today,
startTime='17:40:00',#'17:39:25',
endTime='23:59:59',#23:59:59',
delay=0,
#set=0,
online=0,
walk=1,
ippKm = 60,
getByBlock=1,
nProfileBlocks=250)
opObj11 = readUnitConfObj.addOperation(name='printInfo')
procUnitConfObjA = controllerObj.addProcUnit(datatype='VoltageProc', inputId=readUnitConfObj.getId())
###opObj11 = procUnitConfObjA.addOperation(name='setH0')
###opObj11.addParameter(name='h0', value='-1.5', format='float')
opObj11 = procUnitConfObjA.addOperation(name='selectHeights')
opObj11.addParameter(name='minIndex', value='1', format='int')
#opObj11.addParameter(name='maxIndex', value='1000', format='int')
#opObj11.addParameter(name='maxIndex', value=str(int(num_alturas/4.0)), format='int')
# CUARTA PARTE de 60 Km POR ESO ENTRE 4 - 15 Km
opObj11.addParameter(name='maxIndex', value=str(int(num_alturas/10.0)), format='int')
# CUARTA PARTE de 60 Km POR ESO ENTRE 10 - 6 Km
if mode_proc ==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')
opObj11.addParameter(name='attr_data', value='dataPP_POWER')
opObj11.addParameter(name='colormap', value='jet')
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)
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=10)
####################### 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')
opObj10.addParhirameter(name='dataList',value='dataPP_POWER,dataPP_DOP,utctime',format='list')#,format='list'
if integration==1:
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='PPI')
if plot_ppi==1:
opObj11 = procUnitConfObjB.addOperation(name='Block360')
opObj11.addParameter(name='n', value='10', format='int')
opObj11.addParameter(name='mode', value=mode_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_pp_ppi)
opObj11.addParameter(name='save_period', value=1)
controllerObj.start()