##// END OF EJS Templates

File last commit:

r99:a87a6795637a
r99:a87a6795637a
Show More
VoltageProcessor.py
502 lines | 15.1 KiB | text/x-python | PythonLexer
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10 '''
Created on Feb 7, 2012
Daniel Valdez
Fijando variables svn:keywords Author Id
r16 @author $Author$
@version $Id$
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10 '''
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 import os, sys
import numpy
path = os.path.split(os.getcwd())[0]
sys.path.append(path)
from Model.Voltage import Voltage
from IO.VoltageIO import VoltageWriter
from Graphics.VoltagePlot import Osciloscope
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10 class VoltageProcessor:
'''
classdocs
'''
Miguel Valdez
r99
dataInObj = None
dataOutObj = None
integratorObjIndex = None
decoderObjIndex = None
profSelectorObjIndex = None
writerObjIndex = None
plotterObjIndex = None
integratorObjList = []
decoderObjList = []
profileSelectorObjList = []
writerObjList = []
plotterObjList = []
m_Voltage= Voltage()
m_ProfileSelector= ProfileSelector()
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
r99 m_Decoder= Decoder()
m_CoherentIntegrator= CoherentIntegrator()
def __init__(self, dataInObj, dataOutObj=None):
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10 '''
Constructor
'''
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 self.dataInObj = dataInObj
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 if dataOutObj == None:
self.dataOutObj = Voltage()
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 else:
Miguel Valdez
r99 self.dataOutObj = dataOutObj
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 self.integratorObjIndex = None
self.decoderObjIndex = None
self.profSelectorObjIndex = None
self.writerObjIndex = None
self.plotterObjIndex = None
self.integratorObjList = []
self.decoderObjList = []
self.profileSelectorObjList = []
self.writerObjList = []
self.plotterObjList = []
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
def init(self):
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Miguel Valdez
r99 self.integratorObjIndex = 0
self.decoderObjIndex = 0
self.profSelectorObjIndex = 0
self.writerObjIndex = 0
self.plotterObjIndex = 0
self.dataOutObj.copy(self.dataInObj)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 def addWriter(self, wrpath):
Miguel Valdez
r99 objWriter = VoltageWriter(self.dataOutObj)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 objWriter.setup(wrpath)
Miguel Valdez
r99 self.writerObjList.append(objWriter)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
def addPlotter(self):
Miguel Valdez
r99 plotObj = Osciloscope(self.dataOutObj,self.plotterObjIndex)
self.plotterObjList.append(plotObj)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 def addIntegrator(self, nCohInt):
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 objCohInt = CoherentIntegrator(nCohInt)
Miguel Valdez
r99 self.integratorObjList.append(objCohInt)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 def addDecoder(self, code, ncode, nbaud):
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
objDecoder = Decoder(code,ncode,nbaud)
Miguel Valdez
r99 self.decoderObjList.append(objDecoder)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 def addProfileSelector(self, nProfiles):
objProfSelector = ProfileSelector(nProfiles)
Miguel Valdez
r99 self.profileSelectorObjList.append(objProfSelector)
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 def writeData(self,wrpath):
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Miguel Valdez
r99 if self.dataOutObj.flagNoData:
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 return 0
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 if len(self.writerObjList) <= self.writerObjIndex:
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 self.addWriter(wrpath)
Miguel Valdez
r99 self.writerObjList[self.writerObjIndex].putData()
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 # myWrObj = self.writerObjList[self.writerObjIndex]
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 # myWrObj.putData()
Miguel Valdez
r99 self.writerObjIndex += 1
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
def plotData(self,idProfile, type, xmin=None, xmax=None, ymin=None, ymax=None, winTitle=''):
Miguel Valdez
r99 if self.dataOutObj.flagNoData:
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 return 0
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 if len(self.plotterObjList) <= self.plotterObjIndex:
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 self.addPlotter()
Miguel Valdez
r99 self.plotterObjList[self.plotterObjIndex].plotData(type=type, xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax,winTitle=winTitle)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 self.plotterObjIndex += 1
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
def integrator(self, N):
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Miguel Valdez
r99 if self.dataOutObj.flagNoData:
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 return 0
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 if len(self.integratorObjList) <= self.integratorObjIndex:
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 self.addIntegrator(N)
Miguel Valdez
r99 myCohIntObj = self.integratorObjList[self.integratorObjIndex]
myCohIntObj.exe(self.dataOutObj.data)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
if myCohIntObj.flag:
Miguel Valdez
r99 self.dataOutObj.data = myCohIntObj.data
self.dataOutObj.m_ProcessingHeader.coherentInt *= N
self.dataOutObj.flagNoData = False
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
else:
Miguel Valdez
r99 self.dataOutObj.flagNoData = True
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 self.integratorObjIndex += 1
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
def decoder(self,code=None,type = 0):
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Miguel Valdez
r99 if self.dataOutObj.flagNoData:
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 return 0
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 if code == None:
Miguel Valdez
r99 code = self.dataOutObj.m_RadarControllerHeader.code
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 ncode, nbaud = code.shape
Miguel Valdez
r99 if len(self.decoderObjList) <= self.decoderObjIndex:
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 self.addDecoder(code,ncode,nbaud)
Miguel Valdez
r99 myDecodObj = self.decoderObjList[self.decoderObjIndex]
myDecodObj.exe(data=self.dataOutObj.data,type=type)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
if myDecodObj.flag:
Miguel Valdez
r99 self.dataOutObj.data = myDecodObj.data
self.dataOutObj.flagNoData = False
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 else:
Miguel Valdez
r99 self.dataOutObj.flagNoData = True
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 self.decoderObjIndex += 1
Victor Sarmiento
VoltageProcesor.py:...
r84
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Victor Sarmiento
VoltageProcesor.py:...
r84 def filterByHei(self, window):
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 pass
Victor Sarmiento
VoltageProcesor.py:...
r84
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Victor Sarmiento
VoltageProcesor.py:...
r84 def selectChannels(self, channelList):
"""
Selecciona un bloque de datos en base a canales y pares segun el channelList y el pairList
Input:
Victor Sarmiento
VoltageProcessor.py:...
r97 channelList : lista sencilla de canales a seleccionar por ej. [2,3,7]
Victor Sarmiento
VoltageProcesor.py:...
r84
Affected:
Victor Sarmiento
VoltageProcessor.py:...
r97 self.dataOutObj.data
Miguel Valdez
r99 self.dataOutObj.channelList
Victor Sarmiento
VoltageProcesor.py:...
r84 self.dataOutObj.nChannels
Miguel Valdez
r99 self.dataOutObj.m_ProcessingHeader.totalSpectra
Victor Sarmiento
VoltageProcesor.py:...
r84 self.dataOutObj.m_SystemHeader.numChannels
Miguel Valdez
r99 self.dataOutObj.m_ProcessingHeader.blockSize
Victor Sarmiento
VoltageProcesor.py:...
r84
Return:
None
"""
Miguel Valdez
r99 if self.dataOutObj.flagNoData:
Victor Sarmiento
VoltageProcessor.py:...
r97 return 0
for channel in channelList:
Miguel Valdez
r99 if channel not in self.dataOutObj.channelList:
Victor Sarmiento
VoltageProcessor.py:...
r97 raise ValueError, "The value %d in channelList is not valid" %channel
Victor Sarmiento
VoltageProcesor.py:...
r84
Victor Sarmiento
VoltageProcessor.py:...
r97 nchannels = len(channelList)
Miguel Valdez
r99 profiles = self.dataOutObj.nProfiles
heights = self.dataOutObj.nHeights #m_ProcessingHeader.numHeights
Victor Sarmiento
VoltageProcesor.py:...
r84
Victor Sarmiento
VoltageProcessor.py:...
r97 data = numpy.zeros( (nchannels,heights), dtype='complex' )
Victor Sarmiento
VoltageProcesor.py:...
r84 for index,channel in enumerate(channelList):
Miguel Valdez
r99 data[index,:] = self.dataOutObj.data[channel,:]
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Miguel Valdez
r99 self.dataOutObj.data = data
self.dataOutObj.channelList = channelList
self.dataOutObj.nChannels = nchannels
self.dataOutObj.m_ProcessingHeader.totalSpectra = nchannels
self.dataOutObj.m_SystemHeader.numChannels = nchannels
self.dataOutObj.m_ProcessingHeader.blockSize = data.size
Victor Sarmiento
VoltageProcessor.py:...
r97 return 1
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Victor Sarmiento
VoltageProcesor.py:...
r84 def selectHeightsByValue(self, minHei, maxHei):
"""
Selecciona un bloque de datos en base a un grupo de valores de alturas segun el rango
minHei <= height <= maxHei
Input:
minHei : valor minimo de altura a considerar
maxHei : valor maximo de altura a considerar
Affected:
Indirectamente son cambiados varios valores a travez del metodo selectHeightsByIndex
Return:
Victor Sarmiento
VoltageProcessor.py:...
r97 1 si el metodo se ejecuto con exito caso contrario devuelve 0
Victor Sarmiento
VoltageProcesor.py:...
r84 """
Miguel Valdez
r99 if self.dataOutObj.flagNoData:
Victor Sarmiento
VoltageProcessor.py:...
r97 return 0
Miguel Valdez
r99 if (minHei < self.dataOutObj.heightList[0]) or (minHei > maxHei):
Victor Sarmiento
VoltageProcessor.py:...
r97 raise ValueError, "some value in (%d,%d) is not valid" % (minHei, maxHei)
Miguel Valdez
r99 if (maxHei > self.dataOutObj.heightList[-1]):
Victor Sarmiento
VoltageProcessor.py:...
r97 raise ValueError, "some value in (%d,%d) is not valid" % (minHei, maxHei)
Victor Sarmiento
VoltageProcesor.py:...
r84 minIndex = 0
maxIndex = 0
Miguel Valdez
r99 data = self.dataOutObj.heightList
Victor Sarmiento
VoltageProcesor.py:...
r84
for i,val in enumerate(data):
if val < minHei:
continue
else:
minIndex = i;
break
for i,val in enumerate(data):
if val <= maxHei:
maxIndex = i;
else:
break
self.selectHeightsByIndex(minIndex, maxIndex)
Victor Sarmiento
VoltageProcessor.py:...
r97 return 1
Victor Sarmiento
VoltageProcesor.py:...
r84
def selectHeightsByIndex(self, minIndex, maxIndex):
"""
Selecciona un bloque de datos en base a un grupo indices de alturas segun el rango
minIndex <= index <= maxIndex
Input:
Victor Sarmiento
VoltageProcessor.py:...
r97 minIndex : valor de indice minimo de altura a considerar
maxIndex : valor de indice maximo de altura a considerar
Victor Sarmiento
VoltageProcesor.py:...
r84
Affected:
Miguel Valdez
r99 self.dataOutObj.data
self.dataOutObj.heightList
self.dataOutObj.nHeights
self.dataOutObj.m_ProcessingHeader.blockSize
self.dataOutObj.m_ProcessingHeader.numHeights
self.dataOutObj.m_ProcessingHeader.firstHeight
self.dataOutObj.m_RadarControllerHeader
Victor Sarmiento
VoltageProcesor.py:...
r84
Return:
Victor Sarmiento
VoltageProcessor.py:...
r97 1 si el metodo se ejecuto con exito caso contrario devuelve 0
Victor Sarmiento
VoltageProcesor.py:...
r84 """
Miguel Valdez
r99 if self.dataOutObj.flagNoData:
Victor Sarmiento
VoltageProcessor.py:...
r97 return 0
if (minIndex < 0) or (minIndex > maxIndex):
raise ValueError, "some value in (%d,%d) is not valid" % (minIndex, maxIndex)
Miguel Valdez
r99 if (maxIndex >= self.dataOutObj.nHeights):
Victor Sarmiento
VoltageProcessor.py:...
r97 raise ValueError, "some value in (%d,%d) is not valid" % (minIndex, maxIndex)
nHeights = maxIndex - minIndex + 1
Victor Sarmiento
VoltageProcesor.py:...
r84 firstHeight = 0
#voltage
Miguel Valdez
r99 data = self.dataOutObj.data[:,minIndex:maxIndex+1]
Victor Sarmiento
VoltageProcesor.py:...
r84
Miguel Valdez
r99 firstHeight = self.dataOutObj.heightList[minIndex]
Victor Sarmiento
VoltageProcesor.py:...
r84
Miguel Valdez
r99 self.dataOutObj.data = data
self.dataOutObj.heightList = self.dataOutObj.heightList[minIndex:maxIndex+1]
self.dataOutObj.nHeights = nHeights
self.dataOutObj.m_ProcessingHeader.blockSize = data.size
self.dataOutObj.m_ProcessingHeader.numHeights = nHeights
self.dataOutObj.m_ProcessingHeader.firstHeight = firstHeight
self.dataOutObj.m_RadarControllerHeader.numHeights = nHeights
Victor Sarmiento
VoltageProcessor.py:...
r97 return 1
Victor Sarmiento
VoltageProcesor.py:...
r84
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 def selectProfiles(self, minIndex, maxIndex, nProfiles):
Victor Sarmiento
VoltageProcesor.py:...
r84 """
Victor Sarmiento
VoltageProcessor.py:...
r97 Selecciona un bloque de datos en base a un grupo indices de perfiles segun el rango
Victor Sarmiento
VoltageProcesor.py:...
r84 minIndex <= index <= maxIndex
Input:
Victor Sarmiento
VoltageProcessor.py:...
r97 minIndex : valor de indice minimo de perfil a considerar
maxIndex : valor de indice maximo de perfil a considerar
nProfiles : numero de profiles
Victor Sarmiento
VoltageProcesor.py:...
r84
Affected:
Miguel Valdez
r99 self.dataOutObj.flagNoData
self.profSelectorObjIndex
Victor Sarmiento
VoltageProcesor.py:...
r84
Return:
Victor Sarmiento
VoltageProcessor.py:...
r97 1 si el metodo se ejecuto con exito caso contrario devuelve 0
Victor Sarmiento
VoltageProcesor.py:...
r84 """
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Miguel Valdez
r99 if self.dataOutObj.flagNoData:
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 return 0
Miguel Valdez
r99 if self.profSelectorObjIndex >= len(self.profileSelectorObjList):
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 self.addProfileSelector(nProfiles)
Miguel Valdez
r99 profileSelectorObj = self.profileSelectorObjList[self.profSelectorObjIndex]
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
if profileSelectorObj.isProfileInRange(minIndex, maxIndex):
Miguel Valdez
r99 self.dataOutObj.flagNoData = False
self.profSelectorObjIndex += 1
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 return 1
Miguel Valdez
r99 self.dataOutObj.flagNoData = True
self.profSelectorObjIndex += 1
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
return 0
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
Victor Sarmiento
VoltageProcesor.py:...
r84 def selectNtxs(self, ntx):
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 pass
class Decoder:
Miguel Valdez
r99
data = None
profCounter = 1
nCode = ncode
nBaud = nbaud
codeIndex = 0
code = code #this is a List
fft_code = None
flag = False
setCodeFft = False
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 def __init__(self,code, ncode, nbaud):
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Miguel Valdez
r99 self.data = None
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 self.profCounter = 1
self.nCode = ncode
self.nBaud = nbaud
self.codeIndex = 0
self.code = code #this is a List
self.fft_code = None
self.flag = False
self.setCodeFft = False
def exe(self, data, ndata=None, type = 0):
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
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 ndata == None: ndata = data.shape[1]
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
if type == 0:
self.convolutionInFreq(data,ndata)
if type == 1:
self.convolutionInTime(data, ndata)
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 def convolutionInFreq(self,data, ndata):
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
newcode = numpy.zeros(ndata)
newcode[0:self.nBaud] = self.code[self.codeIndex]
self.codeIndex += 1
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 fft_data = numpy.fft.fft(data, axis=1)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 fft_code = numpy.conj(numpy.fft.fft(newcode))
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 fft_code = fft_code.reshape(1,len(fft_code))
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
conv = fft_data.copy()
conv.fill(0)
conv = fft_data*fft_code # This other way to calculate multiplication between bidimensional arrays
# for i in range(ndata):
# conv[i,:] = fft_data[i,:]*fft_code[i]
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.data = numpy.fft.ifft(conv,axis=1)
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 self.flag = True
if self.profCounter == self.nCode:
self.profCounter = 0
self.codeIndex = 0
self.profCounter += 1
def convolutionInTime(self, data, ndata):
nchannel = data.shape[1]
newcode = self.code[self.codeIndex]
self.codeIndex += 1
conv = data.copy()
for i in range(nchannel):
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 conv[i,:] = numpy.correlate(data[i,:], newcode, 'same')
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
self.data = conv
self.flag = True
if self.profCounter == self.nCode:
self.profCounter = 0
self.codeIndex = 0
self.profCounter += 1
class CoherentIntegrator:
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Miguel Valdez
r99 profCounter = 1
data = None
buffer = None
flag = False
nCohInt = N
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 def __init__(self, N):
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72 self.profCounter = 1
self.data = None
self.buffer = None
self.flag = False
self.nCohInt = N
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 def exe(self, data):
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72
if self.buffer == None:
self.buffer = data
else:
self.buffer = self.buffer + data
if self.profCounter == self.nCohInt:
self.data = self.buffer
self.buffer = None
self.profCounter = 0
self.flag = True
else:
self.flag = False
self.profCounter += 1
Miguel Valdez
r99 class ProfileSelector:
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92
indexProfile = None
Victor Sarmiento
VoltageProcessor.py:...
r97 # Tamanho total de los perfiles
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 nProfiles = None
def __init__(self, nProfiles):
self.indexProfile = 0
self.nProfiles = nProfiles
def isProfileInRange(self, minIndex, maxIndex):
Victor Sarmiento
VoltageProcessor.py:...
r97 if self.indexProfile < minIndex:
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 self.indexProfile += 1
return False
Victor Sarmiento
VoltageProcessor.py:...
r97 if self.indexProfile > maxIndex:
Miguel Valdez
El metodo y la clase selector de perfiles han sido añadidos
r92 self.indexProfile += 1
return False
self.indexProfile += 1
return True
def isProfileInList(self, profileList):
if self.indexProfile not in profileList:
self.indexProfile += 1
return False
self.indexProfile += 1
return True
Daniel Valdez
Agregando los metodos para VoltageProcessor y SpectraProcessor.
r72