''' Created on Jul 31, 2012 @author $Author$ @version $Id$ ''' import os, sys import time, datetime #import pylab as pl from Data.JROData import Voltage from IO.VoltageIO import * from Data.JROData import SpectraHeis from IO.SpectraIO import * from Processing.VoltageProcessor import * from Processing.SpectraProcessor import * from Graphics.BaseGraph_mpl import LinearPlot class TestHeis(): i=None def __init__(self): self.setValues() self.createObjects() self.testSChain() self.i=0 def setValues( self ): self.path="C:\data2" self.startDate = datetime.date(2012,4,1) self.endDate = datetime.date(2012,6,30) self.startTime = datetime.time(0,0,0) self.endTime = datetime.time(23,0,0) #self.N = 4 #self.npts = 8 def createObjects( self ): self.readerObj = VoltageReader() self.specProcObj = SpectraHeisProcessor() self.voltObj1 = self.readerObj.setup( path = self.path, startDate = self.startDate, endDate = self.endDate, startTime = self.startTime, endTime = self.endTime, expLabel = '', online = 0) if not(self.voltObj1): sys.exit(0) print "voltaje o alturas: %03d"%(self.voltObj1.nHeights) #print "perfiles: %03d"%(self.voltObj1.nProfiles) self.specObj1 = self.specProcObj.setup(dataInObj = self.voltObj1,nFFTPoints=self.voltObj1.nHeights) print "nChannels: %03d"%(self.specObj1.nChannels) print "nHeights: %03d"%( self.specObj1.nHeights) print "nFFTPoints: %03d"% int(self.specObj1.nFFTPoints) def testSChain( self ): ini = time.time() while(True): self.readerObj.getData() #print self.readerObj.datablock #self.voltProcObj.init() self.specProcObj.init() self.specProcObj.integrator(N=32) ## return self.dataOutObj self.plot() #print self.readerObj.dataOutObj.data #CON TODO ESTO PLoTEO #freq = self.specProcObj.getFrecuencies() #spc = self.specProcObj.getSpectra() # print freq # print spc, spc.shape # pl.plot(freq, spc[2]) # pl.show() if self.readerObj.flagNoMoreFiles: break if self.readerObj.flagIsNewBlock: print 'Block No %04d, Time: %s' %(self.readerObj.nTotalBlocks, datetime.datetime.fromtimestamp(self.readerObj.m_BasicHeader.utc),) def plot(self): # x = self.specProcObj.getFrecuencies() x = numpy.arange(self.specObj1.nFFTPoints) spc = self.specObj1.data_spc # spc = self.specProcObj.getSpectra() nchannels = self.specObj1.nChannels # y1=spc[0] # y2=spc[1] # y3=spc[2] # y4=spc[3] # signalList=[y1,y2,y3,y4] # xmin = numpy.min(x) # xmax = numpy.max(x) #Creating Object indexPlot = 1 nsubplot = nchannels #nsubplot = 1 print "nsubplot:%d"%(nsubplot) winTitle = "mi grafico de Espectrov1" subplotTitle = "subplot-Espectro - No Channel." xlabel = "" ylabel = "" linearObj = LinearPlot(indexPlot,nsubplot,winTitle) #Config SubPlots print "ConfigSubPlots" print "nsubplot: %d "%nsubplot for subplot in range(nsubplot): indexplot = subplot + 1 name=subplot+1 print "Channel: %d"%(name) title = subplotTitle + '%d'%name xmin = numpy.min(x) xmax = numpy.max(x) ymin = numpy.min(spc[subplot]) ymax = numpy.max(spc[subplot]) linearObj.setup(indexplot, xmin, xmax, ymin, ymax, title, xlabel, ylabel) #Plotting type = "simple" print "Ploteando" print "nsubplot: %d "%nsubplot for subplot in range(nsubplot): indexplot = subplot + 1 y = spc[subplot,:] linearObj.plot(indexplot, x, y, type) linearObj.refresh() linearObj.show() if __name__ == '__main__': TestHeis()