diff --git a/schainpy2/IO/JRODataIO.py b/schainpy2/IO/JRODataIO.py index 9663c10..6e6563b 100644 --- a/schainpy2/IO/JRODataIO.py +++ b/schainpy2/IO/JRODataIO.py @@ -234,7 +234,7 @@ class JRODataReader(JRODataIO): nReadBlocks = 0 - delay = 60 #number of seconds waiting a new file + delay = 10 #number of seconds waiting a new file nTries = 3 #quantity tries @@ -242,7 +242,6 @@ class JRODataReader(JRODataIO): def __init__(self): - pass def createObjByDefault(self): @@ -431,7 +430,10 @@ class JRODataReader(JRODataIO): dataOutObj = self.createObjByDefault() self.dataOutObj = dataOutObj - + self.delay = delay + self.online = online + self.ext = ext.lower() + if online: print "Searching files in online mode..." doypath, file, year, doy, set = self.__searchFilesOnLine(path=path, expLabel=expLabel, ext=ext) @@ -440,7 +442,7 @@ class JRODataReader(JRODataIO): for nTries in range( self.nTries ): print '\tWaiting %0.2f sec for an valid file in %s: try %02d ...' % (self.delay, path, nTries+1) time.sleep( self.delay ) - doypath, file, year, doy, set = self.__searchFilesOnLine(path=path, expLabel=expLabel, ext=exp) + doypath, file, year, doy, set = self.__searchFilesOnLine(path=path, expLabel=expLabel, ext=ext) if doypath: break @@ -469,11 +471,6 @@ class JRODataReader(JRODataIO): self.pathList = pathList self.filenameList = filenameList - self.online = online - self.delay = delay - ext = ext.lower() - self.ext = ext - if not(self.setNextFile()): if (startDate!=None) and (endDate!=None): print "No files in range: %s - %s" %(datetime.datetime.combine(startDate,startTime).ctime(), datetime.datetime.combine(endDate,endTime).ctime()) @@ -623,32 +620,33 @@ class JRODataReader(JRODataIO): def __waitNewBlock(self): #si es OnLine y ademas aun no se han leido un bloque completo entonces se espera por uno valido if not self.online: - return + return 0 - - if (self.nReadBlocks < self.m_ProcessingHeader.dataBlocksPerFile): - - currentPointer = self.fp.tell() + if (self.nReadBlocks >= self.processingHeaderObj.dataBlocksPerFile): + return 0 + + currentPointer = self.fp.tell() + + neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize + + for nTries in range( self.nTries ): - for nTries in range( self.nTries ): - #self.fp.close() - - print "\tWaiting %0.2f seconds for the next block, try %03d ..." % (self.delay, nTries+1) - time.sleep( self.delay ) - - #self.fp = open( self.filename, 'rb' ) - #self.fp.seek( fpointer ) + self.fp.close() + self.fp = open( self.filename, 'rb' ) + self.fp.seek( currentPointer ) - self.fileSize = os.path.getsize( self.filename ) - currentSize = self.fileSize - currentPointer + self.fileSize = os.path.getsize( self.filename ) + currentSize = self.fileSize - currentPointer - if ( currentSize >= neededSize ): - self.__rdBasicHeader() - return 1 + if ( currentSize >= neededSize ): + self.__rdBasicHeader() + return 1 + + print "\tWaiting %0.2f seconds for the next block, try %03d ..." % (self.delay, nTries+1) + time.sleep( self.delay ) - return 0 - return 1 + return 0 def __setNewBlock(self): if self.fp == None: diff --git a/schainpy2/IO/SpectraIO.py b/schainpy2/IO/SpectraIO.py index 3b6dc65..13adaa4 100644 --- a/schainpy2/IO/SpectraIO.py +++ b/schainpy2/IO/SpectraIO.py @@ -7,7 +7,7 @@ $Id$ import os, sys import numpy -#import pyfits +import pyfits import glob import fnmatch import time, datetime diff --git a/schainpy2/IO/VoltageIO.py b/schainpy2/IO/VoltageIO.py index c69be3e..b35fe80 100644 --- a/schainpy2/IO/VoltageIO.py +++ b/schainpy2/IO/VoltageIO.py @@ -137,7 +137,7 @@ class VoltageReader(JRODataReader): self.profileIndex = 9999 - self.delay = 3 #seconds + self.delay = 60 #seconds self.nTries = 3 #quantity tries diff --git a/schainpy2/Processing/SpectraProcessor.py b/schainpy2/Processing/SpectraProcessor.py index bed41bc..31756a2 100644 --- a/schainpy2/Processing/SpectraProcessor.py +++ b/schainpy2/Processing/SpectraProcessor.py @@ -13,7 +13,7 @@ sys.path.append(path) from Data.JROData import Spectra, SpectraHeis from IO.SpectraIO import SpectraWriter,SpectraHeisWriter -from Graphics.schainPlotTypes import ScopeFigure, SpcFigure, RTIFigure +#from Graphics.schainPlotTypes import ScopeFigure, SpcFigure, RTIFigure from Graphics.BaseGraph_mpl import LinearPlot #from JRONoise import Noise @@ -182,7 +182,7 @@ class SpectraProcessor: #calculo de self-spectra fft_volt = numpy.fft.fftshift(fft_volt,axes=(1,)) - spc = fft_volt * numpy.conjugate(fft_volt) + spc = (fft_volt * numpy.conjugate(fft_volt)) spc = spc.real blocksize = 0 @@ -582,7 +582,7 @@ class SpectraHeisProcessor: #calculo de self-spectra fft_volt = numpy.fft.fftshift(fft_volt,axes=(1,)) - spc = numpy.abs(fft_volt * numpy.conjugate(fft_volt)) + spc = numpy.abs(fft_volt * numpy.conjugate(fft_volt))/(self.dataOutObj.nFFTPoints) self.dataOutObj.data_spc = spc def getSpectra(self): diff --git a/schainpy2/Processing/VoltageProcessor.py b/schainpy2/Processing/VoltageProcessor.py index 0f753aa..611e0ae 100644 --- a/schainpy2/Processing/VoltageProcessor.py +++ b/schainpy2/Processing/VoltageProcessor.py @@ -15,7 +15,7 @@ sys.path.append(path) from Data.JROData import Voltage from IO.VoltageIO import VoltageWriter -from Graphics.schainPlotTypes import ScopeFigure, RTIFigure +#from Graphics.schainPlotTypes import ScopeFigure, RTIFigure class VoltageProcessor: diff --git a/schainpy2/TestSpectraHeis.py b/schainpy2/TestSpectraHeis.py index 40c45d8..55f527c 100644 --- a/schainpy2/TestSpectraHeis.py +++ b/schainpy2/TestSpectraHeis.py @@ -7,6 +7,7 @@ Created on Jul 31, 2012 import os, sys import time, datetime +import getopt #import pylab as pl from Data.JROData import Voltage @@ -27,41 +28,58 @@ class TestHeis(): self.createObjects() self.testSChain() self.i=0 + def VerifyArguments(self): - pass - - + arglist = '' + longarglist = ['path=','online=','N=','fpath='] + optlist,args = getopt.getopt(sys.argv[1:],arglist, longarglist) + for opt in optlist: + if opt[0] == '--path': + self.path = opt[1] + elif opt[0] == '--online': + self.online = int(opt[1]) + + elif opt[0] == '--N': + self.N = int(opt[1]) + elif opt[0] == '--fpath': + self.fpath = opt[1] +# if self.online==0: +# if opt[0] == '--starDate': +# self.StarDate = opt[1] +# elif opt[0] == '--endDate': +# self.EndDate = opt[1] +# elif opt[0] == '--startTime': +# self.StartTime = opt[1] +# elif opt[0] == '--endTime': +# self.EndTime = opt[1] +# +# elif opt[0] == '--starDate': +# self.StarDate = None +# +# elif opt[0] == '--endDate': +# self.EndDate = None +# +# elif opt[0] == '--startTime': +# self.StartTime = None +# +# elif opt[0] == '--endTime': +# self.EndTime = None + def setValues(self): + self.VerifyArguments() + #stardateList=self.Stardate.split() + self.startDate = datetime.date(2012,10,1) + self.endDate = datetime.date(2012,12,30) + self.startTime = datetime.time(0,0,0) + self.endTime = datetime.time(23,0,0) + - self.path="D:\\te" - #self.path = "" -# self.startDate = datetime.date(2012,10,1) -# self.endDate = datetime.date(2012,12,30) -# -# self.startTime = datetime.time(0,0,0) -# self.endTime = datetime.time(23,0,0) -# - - - - self.N=1000 - - self.wrpath = "D:\\te\\FITS" - - self.online - - self.startDate = None - self.endDate = None - self.startTime = None - self.endTime = None - - # self.blocksPerFile = 1 def createObjects( self ): self.readerObj = VoltageReader() @@ -73,7 +91,8 @@ class TestHeis(): startTime = self.startTime, endTime = self.endTime, expLabel = '', - online = self.online) + online = self.online, + delay=10) if not(self.voltObj1): sys.exit(0) @@ -91,7 +110,7 @@ class TestHeis(): self.specProcObj.integrator(self.N) ## return self.dataOutObj - self.specProcObj.writedata(self.wrpath) + self.specProcObj.writedata(self.fpath) self.specProcObj.plotMatScope(idfigure=1) @@ -101,7 +120,7 @@ class TestHeis(): if self.readerObj.flagIsNewBlock: - print 'Block No %04d, Time: %s' %(self.readerObj.nTotalBlocks, + print 'Block No %04d, Time: %s' %(self.readerObj.basicHeaderObj.dataBlock, datetime.datetime.fromtimestamp(self.readerObj.basicHeaderObj.utc),)