From 039d4869c5dd5397dd2ae5ec382795f38fab2b6c 2012-12-10 19:40:28 From: Miguel Valdez Date: 2012-12-10 19:40:28 Subject: [PATCH] jrodataIO.py: Adicion del parametro LOCALTIME para la lectura de datos. jroprocessing: Normalizacion de los datos al realiar la integracion --- diff --git a/schainpy/model/jrodataIO.py b/schainpy/model/jrodataIO.py index c4d93aa..107dc80 100644 --- a/schainpy/model/jrodataIO.py +++ b/schainpy/model/jrodataIO.py @@ -15,6 +15,8 @@ from jrodata import * from jroheaderIO import * from jroprocessing import * +LOCALTIME = -18000 + def isNumber(str): """ Chequea si el conjunto de caracteres que componen un string puede ser convertidos a un numero. @@ -55,7 +57,7 @@ def isThisFileinRange(filename, startUTSeconds, endUTSeconds): Si la cabecera no puede ser leida. """ - basicHeaderObj = BasicHeader() + basicHeaderObj = BasicHeader(LOCALTIME) try: fp = open(filename,'rb') @@ -101,7 +103,7 @@ def isFileinThisTime(filename, startTime, endTime): except: raise IOError, "The file %s can't be opened" %(filename) - basicHeaderObj = BasicHeader() + basicHeaderObj = BasicHeader(LOCALTIME) sts = basicHeaderObj.read(fp) fp.close() @@ -217,7 +219,7 @@ class JRODataIO: isConfig = False - basicHeaderObj = BasicHeader() + basicHeaderObj = BasicHeader(LOCALTIME) systemHeaderObj = SystemHeader() @@ -722,7 +724,7 @@ class JRODataReader(JRODataIO, ProcessingUnit): neededSize = self.processingHeaderObj.blockSize + self.firstHeaderSize if neededSize == 0: - basicHeaderObj = BasicHeader() + basicHeaderObj = BasicHeader(LOCALTIME) systemHeaderObj = SystemHeader() radarControllerHeaderObj = RadarControllerHeader() processingHeaderObj = ProcessingHeader() @@ -1204,7 +1206,7 @@ class VoltageReader(JRODataReader): self.optchar = "D" - self.basicHeaderObj = BasicHeader() + self.basicHeaderObj = BasicHeader(LOCALTIME) self.systemHeaderObj = SystemHeader() @@ -1486,7 +1488,7 @@ class VoltageWriter(JRODataWriter): self.filename = None - self.basicHeaderObj = BasicHeader() + self.basicHeaderObj = BasicHeader(LOCALTIME) self.systemHeaderObj = SystemHeader() @@ -1800,7 +1802,7 @@ class SpectraReader(JRODataReader): self.optchar = "P" - self.basicHeaderObj = BasicHeader() + self.basicHeaderObj = BasicHeader(LOCALTIME) self.systemHeaderObj = SystemHeader() @@ -2150,7 +2152,7 @@ class SpectraWriter(JRODataWriter): self.filename = None - self.basicHeaderObj = BasicHeader() + self.basicHeaderObj = BasicHeader(LOCALTIME) self.systemHeaderObj = SystemHeader() diff --git a/schainpy/model/jroheaderIO.py b/schainpy/model/jroheaderIO.py index 41f10a8..948ef42 100644 --- a/schainpy/model/jroheaderIO.py +++ b/schainpy/model/jroheaderIO.py @@ -39,8 +39,10 @@ class BasicHeader(Header): errorCount = None struct = None datatime = None + + __LOCALTIME = None - def __init__(self): + def __init__(self, localtime=0): self.size = 0 self.version = 0 @@ -61,6 +63,7 @@ class BasicHeader(Header): ('nErrorCount',' 4: + pairsIndexList = pairsIndexList[0:4] + tmin = None tmax = None x = dataOut.getTimeRange() diff --git a/schainpy/model/jroprocessing.py b/schainpy/model/jroprocessing.py index ecd9357..d83855b 100644 --- a/schainpy/model/jroprocessing.py +++ b/schainpy/model/jroprocessing.py @@ -1079,9 +1079,10 @@ class IncohInt(Operation): dataOut.flagNoData = True if self.__dataReady: - dataOut.data_spc = avgdata_spc - dataOut.data_cspc = avgdata_cspc - dataOut.data_dc = avgdata_dc + + dataOut.data_spc = avgdata_spc / self.n + dataOut.data_cspc = avgdata_cspc / self.n + dataOut.data_dc = avgdata_dc / self.n dataOut.nIncohInt *= self.n dataOut.utctime = avgdatatime @@ -1123,13 +1124,13 @@ class ProfileSelector(Operation): def run(self, dataOut, profileList=None, profileRangeList=None): + dataOut.flagNoData = True self.nProfiles = dataOut.nProfiles if profileList != None: - if not(self.isProfileInList(profileList)): - dataOut.flagNoData = True - else: + if self.isProfileInList(profileList): dataOut.flagNoData = False + self.incIndex() return 1 @@ -1137,12 +1138,12 @@ class ProfileSelector(Operation): elif profileRangeList != None: minIndex = profileRangeList[0] maxIndex = profileRangeList[1] - if not(self.isProfileInRange(minIndex, maxIndex)): - dataOut.flagNoData = True - else: + if self.isProfileInRange(minIndex, maxIndex): dataOut.flagNoData = False + self.incIndex() return 1 + else: raise ValueError, "ProfileSelector needs profileList or profileRangeList"