diff --git a/schainpy/IO/Header.py b/schainpy/IO/Header.py index 1eba665..2fe9c8d 100644 --- a/schainpy/IO/Header.py +++ b/schainpy/IO/Header.py @@ -79,7 +79,13 @@ class BasicHeader: obj = BasicHeader() obj.size = self.size - + obj.version = self.version + obj.dataBlock = self.dataBlock + obj.utc = self.utc + obj.miliSecond = self.miliSecond + obj.timeZone = self.timeZone + obj.dstFlag = self.dstFlag + obj.errorCount = self.errorCount return obj @@ -118,6 +124,11 @@ class SystemHeader: obj = SystemHeader() obj.size = self.size + obj.numSamples = self.numSamples + obj.numProfiles = self.numProfiles + obj.numChannels = self.numChannels + obj.adcResolution = self.adcResolution + self.pciDioBusWidth = self.pciDioBusWidth return obj @@ -193,7 +204,22 @@ class RadarControllerHeader: obj = RadarControllerHeader() obj.size = self.size - + obj.expType = self.expType + obj.nTx = self.nTx + obj.ipp = self.ipp + obj.txA = self.txA + obj.txB = self.txB + obj.numWindows = self.numWindows + obj.numTaus = self.numTaus + obj.codeType = self.codeType + obj.line6Function = self.line6Function + obj.line5Fuction = self.line5Fuction + obj.fClock = self.fClock + obj.prePulseBefore = self.prePulseBefore + obj.prePulserAfter = self.prePulserAfter + obj.rangeIpp = self.rangeIpp + obj.rangeTxA = self.rangeTxA + obj.rangeTxB = self.rangeTxB return obj @@ -264,6 +290,23 @@ class ProcessingHeader: obj = ProcessingHeader() obj.size = self.size - + obj.dataType = self.dataType + obj.blockSize = self.blockSize + obj.profilesPerBlock = self.profilesPerBlock + obj.dataBlocksPerFile = self.dataBlocksPerFile + obj.numWindows = self.numWindows + obj.processFlags = self.processFlags + obj.coherentInt = self.coherentInt + obj.incoherentInt = self.incoherentInt + obj.totalSpectra = self.totalSpectra + obj.samplingWindow = self.samplingWindow + obj.numHeights = self.numHeights + obj.firstHeight = self.firstHeight + obj.deltaHeight = self.deltaHeight + obj.samplesWin = self.samplesWin + obj.spectraComb = self.spectraComb + obj.numCode = self.numCode + obj.numBaud = self.numBaud + obj.codes = self.codes return obj \ No newline at end of file diff --git a/schainpy/IO/TestIO.py b/schainpy/IO/TestIO.py new file mode 100644 index 0000000..d26bc8e --- /dev/null +++ b/schainpy/IO/TestIO.py @@ -0,0 +1,49 @@ +''' +Created on 23/01/2012 + +@author: danielangelsuarezmunoz +''' +import os +import sys +import datetime +import time + +class TestIO(): + + def __init__(self): + self.setValues() + self.createVoltageObjects() + self.testReadVoltage() + pass + + def setValues(self): + + + self.path = '/Users/danielangelsuarezmunoz/Documents/Projects' + self.startDateTime = datetime.datetime(2007,5,1,17,49,0) + self.endDateTime = datetime.datetime(2007,5,1,18,10,0) + + def createVoltageObjects(self): + path = os.path.split(os.getcwd())[0] + sys.path.append(path) + + from IO.Voltage import VoltageReader + from Model.Voltage import Voltage + + self.voltageModelObj = Voltage() + self.voltageReaderObj = VoltageReader(self.voltageModelObj) + self.voltageReaderObj.setup(self.path, self.startDateTime, self.endDateTime) + + def testReadVoltage(self): + while(not(self.voltageReaderObj.noMoreFiles)): + + self.voltageReaderObj.getData() + if self.voltageReaderObj.flagResetProcessing: + print 'jump' + + if self.voltageReaderObj.flagIsNewBlock: + print 'Block No %04d, Time: %s'%(self.voltageReaderObj.nReadBlocks, + datetime.datetime.fromtimestamp(self.voltageReaderObj.m_BasicHeader.utc)) + +if __name__ == '__main__': + TestIO() \ No newline at end of file diff --git a/schainpy/IO/Voltage.py b/schainpy/IO/Voltage.py index 2ed1590..dbe3f6b 100644 --- a/schainpy/IO/Voltage.py +++ b/schainpy/IO/Voltage.py @@ -12,9 +12,9 @@ import fnmatch import time import datetime -from Header import * -from Data import DataReader -from Data import DataWriter +from IO.Header import * +from IO.Data import DataReader +from IO.Data import DataWriter path = os.path.split(os.getcwd())[0] sys.path.append(path) @@ -45,6 +45,8 @@ class VoltageReader(DataReader): __flagIsNewFile = 0 + __ippSeconds = 0 + flagResetProcessing = 0 flagIsNewBlock = 0 @@ -249,7 +251,9 @@ class VoltageReader(DataReader): self.__dataType = tmp self.__fileSizeByHeader = self.m_ProcessingHeader.dataBlocksPerFile * self.m_ProcessingHeader.blockSize + self.firstHeaderSize + self.basicHeaderSize*(self.m_ProcessingHeader.dataBlocksPerFile - 1) - + c=3E8 + self.__ippSeconds = 2*1000*self.m_RadarControllerHeader.ipp/c + def __setNextFileOnline(self): return 0 @@ -379,14 +383,15 @@ class VoltageReader(DataReader): return None data = self.__buffer[self.__buffer_id,:,:] - time = 111 - -# self.m_Voltage.data = data -# self.m_Voltage.timeProfile = time -# self.m_Voltage.m_BasicHeader = self.m_BasicHeader.copy() -# self.m_Voltage.m_ProcessingHeader = self.m_ProcessingHeader.copy() -# self.m_Voltage.m_RadarControllerHeader = self.m_RadarControllerHeader.copy() -# self.m_Voltage.m_SystemHeader = self.m_systemHeader.copy() + + time = self.m_BasicHeader.utc + self.__buffer_id*self.__ippSeconds + + self.m_Voltage.m_BasicHeader = self.m_BasicHeader.copy() + self.m_Voltage.m_ProcessingHeader = self.m_ProcessingHeader.copy() + self.m_Voltage.m_RadarControllerHeader = self.m_RadarControllerHeader.copy() + self.m_Voltage.m_SystemHeader = self.m_SystemHeader.copy() + self.m_Voltage.m_BasicHeader.utc = time + self.m_Voltage.data = data self.__buffer_id += 1 diff --git a/schainpy/Model/Voltage.py b/schainpy/Model/Voltage.py index 12c166f..1acfbaa 100644 --- a/schainpy/Model/Voltage.py +++ b/schainpy/Model/Voltage.py @@ -24,6 +24,10 @@ class Voltage(Data): m_SystemHeader= SystemHeader() m_BasicHeader= BasicHeader() + + data = None + + noData = True def __init__(self): @@ -33,5 +37,11 @@ class Voltage(Data): pass def copy(self): - pass + obj = Voltage() + obj.m_BasicHeader = self.m_BasicHeader.copy() + obj.m_SystemHeader = self.m_SystemHeader.copy() + obj.m_RadarControllerHeader = self.m_RadarControllerHeader.copy() + obj.m_ProcessingHeader = self.m_ProcessingHeader.copy() + + return obj \ No newline at end of file