##// END OF EJS Templates
Adding the first version of Controller, including some changes in Voltage and Spectra Processors.
Adding the first version of Controller, including some changes in Voltage and Spectra Processors.

File last commit:

r103:f9ca22364023
r103:f9ca22364023
Show More
TestSVoltageChain.py
101 lines | 3.2 KiB | text/x-python | PythonLexer
/ schainpy / TestSVoltageChain.py
Victor Sarmiento
r70 '''
Created on 27/03/2012
@author $Author$
@version $Id$
'''
import os, sys
import time, datetime
from Model.Voltage import Voltage
from IO.VoltageIO import *
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73 #from Graphics.VoltagePlot import Osciloscope
from Model.Spectra import Spectra
from IO.SpectraIO import *
from Processing.VoltageProcessor import *
from Processing.SpectraProcessor import *
Victor Sarmiento
r70
class TestSChain():
def __init__(self):
self.setValues()
self.createObjects()
self.testSChain()
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
Victor Sarmiento
r70
def setValues( self ):
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73 self.path = "/home/dsuarez/Projects" #1
Daniel Valdez
Adding the first version of Controller, including some changes in Voltage and Spectra Processors.
r103 self.path = "/Users/jro/Documents/RadarData/EW_Drifts"
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73 # self.startDateTime = datetime.datetime(2007,5,1,15,49,0)
# self.endDateTime = datetime.datetime(2007,5,1,23,0,0)
Daniel Valdez
Adding the first version of Controller, including some changes in Voltage and Spectra Processors.
r103 self.startDateTime = datetime.datetime(2011,11,20,0,0,0)
self.endDateTime = datetime.datetime(2011,12,31,0,20,0)
Miguel Valdez
Se ha reordenado las variables
r89 self.N = 10
self.npts = 1024
Victor Sarmiento
r70
def createObjects( self ):
Miguel Valdez
Se ha reordenado las variables
r89 self.voltObj1 = Voltage()
self.voltObj2 = Voltage()
self.specObj1 = Spectra()
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
Miguel Valdez
Se ha reordenado las variables
r89 self.readerObj = VoltageReader(self.voltObj1)
self.voltProcObj = VoltageProcessor(self.voltObj1, self.voltObj2)
self.specProcObj = SpectraProcessor(self.voltObj2, self.specObj1)
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
Miguel Valdez
Se ha reordenado las variables
r89 #self.plotObj = Osciloscope(self.voltObj1)
Victor Sarmiento
r70
if not(self.readerObj.setup( self.path, self.startDateTime, self.endDateTime, expLabel='', online =0) ):
sys.exit(0)
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
# if not(self.readerObj.setup(self.path, self.startDateTime, self.endDateTime)):
# sys.exit(0)
Victor Sarmiento
r70
def testSChain( self ):
ini = time.time()
while(True):
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73 self.readerObj.getData()
Victor Sarmiento
r70
Miguel Valdez
Se ha reordenado las variables
r89 self.voltProcObj.init()
Victor Sarmiento
r70
Miguel Valdez
Se ha reordenado las variables
r89 # self.voltProcObj.plotData(idProfile = 1, type='iq', ymin=-25000, ymax=25000, winTitle='sin decodificar')
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
Daniel Valdez
Adding the first version of Controller, including some changes in Voltage and Spectra Processors.
r103 # self.voltProcObj.decoder(type=0)
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
Miguel Valdez
Se ha reordenado las variables
r89 # self.voltProcObj.plotData(idProfile = 1, type='iq', ymin=-70000, ymax=70000,winTitle='Decodificado')
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73 #
Miguel Valdez
Se ha reordenado las variables
r89 self.voltProcObj.integrator(self.N)
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
Miguel Valdez
Se ha reordenado las variables
r89 # self.voltProcObj.plotData(idProfile = 1, type='iq', ymin=-700000, ymax=700000,winTitle='figura 3')
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
Miguel Valdez
Se ha reordenado las variables
r89 self.specProcObj.init(self.npts)
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
self.specProcObj.integrator(2)
Miguel Valdez
Se ha reordenado las variables
r89 self.specProcObj.plotData(winTitle='Spectra 1', index=0)
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
# if self.readerObj.getData():
# self.plotObj.plotData(idProfile=0, type='power' )
#
#
Miguel Valdez
Se ha reordenado las variables
r89 if self.readerObj.flagNoMoreFiles:
break
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73 #
Victor Sarmiento
r70 if self.readerObj.flagIsNewBlock:
Miguel Valdez
Se ha reordenado las variables
r89 print 'Block No %04d, Time: %s' %(self.readerObj.nTotalBlocks,
Victor Sarmiento
r70 datetime.datetime.fromtimestamp(self.readerObj.m_BasicHeader.utc),)
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73
Victor Sarmiento
r70 # fin = time.time()
# print 'Tiempo de un bloque leido y escrito: [%6.5f]' %(fin - ini)
# ini = time.time()
#time.sleep(0.5)
Daniel Valdez
Se ha definido que el arreglo de datos debe tener el formato [canales, perfiles, alturas]; se han modificado los metodos de lectura, escritura, ploteo, procesamiento que estan relacionados.
r73 # self.plotObj.end()
Victor Sarmiento
r70
if __name__ == '__main__':
TestSChain()