diff --git a/schainpy/model/data/jrodata.py b/schainpy/model/data/jrodata.py index 84fbbb9..6d6fa37 100644 --- a/schainpy/model/data/jrodata.py +++ b/schainpy/model/data/jrodata.py @@ -112,7 +112,7 @@ class GenericData(object): def __init__(self): - raise ValueError, "This class has not been implemented" + raise NotImplementedError def copy(self, inputObj=None): @@ -216,11 +216,11 @@ class JROData(GenericData): def __init__(self): - raise ValueError, "This class has not been implemented" + raise NotImplementedError def getNoise(self): - raise ValueError, "Not implemented" + raise NotImplementedError def getNChannels(self): @@ -341,9 +341,6 @@ class JROData(GenericData): self.radarControllerHeaderObj.nBaud = nBaud return -# def getTimeInterval(self): -# -# raise IOError, "This method should be implemented inside each Class" nChannels = property(getNChannels, "I'm the 'nChannel' property.") channelIndexList = property(getChannelIndexList, "I'm the 'channelIndexList' property.") diff --git a/schainpy/model/data/jroheaderIO.py b/schainpy/model/data/jroheaderIO.py index 65f841a..ed9abbf 100644 --- a/schainpy/model/data/jroheaderIO.py +++ b/schainpy/model/data/jroheaderIO.py @@ -69,18 +69,18 @@ PROCESSING_STRUCTURE = numpy.dtype([ class Header(object): def __init__(self): - raise + raise NotImplementedError def copy(self): return copy.deepcopy(self) def read(self): - raise ValueError + raise NotImplementedError def write(self): - raise ValueError + raise NotImplementedError def printInfo(self): @@ -122,24 +122,24 @@ class BasicHeader(Header): self.useLocalTime = useLocalTime def read(self, fp): + try: - header = numpy.fromfile(fp, BASIC_STRUCTURE,1) - self.size = int(header['nSize'][0]) - self.version = int(header['nVersion'][0]) - self.dataBlock = int(header['nDataBlockId'][0]) - self.utc = int(header['nUtime'][0]) - self.miliSecond = int(header['nMilsec'][0]) - self.timeZone = int(header['nTimezone'][0]) - self.dstFlag = int(header['nDstflag'][0]) - self.errorCount = int(header['nErrorCount'][0]) - except Exception, e: print "BasicHeader: " print e return 0 + self.size = int(header['nSize'][0]) + self.version = int(header['nVersion'][0]) + self.dataBlock = int(header['nDataBlockId'][0]) + self.utc = int(header['nUtime'][0]) + self.miliSecond = int(header['nMilsec'][0]) + self.timeZone = int(header['nTimezone'][0]) + self.dstFlag = int(header['nDstflag'][0]) + self.errorCount = int(header['nErrorCount'][0]) + return 1 def write(self, fp): @@ -189,22 +189,22 @@ class SystemHeader(Header): try: header = numpy.fromfile(fp,SYSTEM_STRUCTURE,1) - - self.size = header['nSize'][0] - self.nSamples = header['nNumSamples'][0] - self.nProfiles = header['nNumProfiles'][0] - self.nChannels = header['nNumChannels'][0] - self.adcResolution = header['nADCResolution'][0] - self.pciDioBusWidth = header['nPCDIOBusWidth'][0] - except Exception, e: print "SystemHeader: " + e return 0 + self.size = header['nSize'][0] + self.nSamples = header['nNumSamples'][0] + self.nProfiles = header['nNumProfiles'][0] + self.nChannels = header['nNumChannels'][0] + self.adcResolution = header['nADCResolution'][0] + self.pciDioBusWidth = header['nPCDIOBusWidth'][0] + endFp = self.size + startFp if fp.tell() != endFp: - raise IOError, "System Header is not consistent" + print "System Header is not consistent" + return 0 return 1 @@ -286,7 +286,11 @@ class RadarControllerHeader(Header): startFp = fp.tell() - header = numpy.fromfile(fp,RADAR_STRUCTURE,1) + try: + header = numpy.fromfile(fp,RADAR_STRUCTURE,1) + except Exception, e: + print "RadarControllerHeader: " + e + return 0 size = int(header['nSize'][0]) self.expType = int(header['nExpType'][0]) @@ -339,7 +343,8 @@ class RadarControllerHeader(Header): endFp = size + startFp if fp.tell() != endFp: - raise IOError, "Radar Controller Header is not consistent" + print "Radar Controller Header is not consistent" + return 0 return 1 @@ -484,7 +489,11 @@ class ProcessingHeader(Header): startFp = fp.tell() - header = numpy.fromfile(fp,PROCESSING_STRUCTURE,1) + try: + header = numpy.fromfile(fp,PROCESSING_STRUCTURE,1) + except Exception, e: + print "ProcessingHeader: " + e + return 0 size = int(header['nSize'][0]) self.dtype = int(header['nDataType'][0]) @@ -553,7 +562,8 @@ class ProcessingHeader(Header): endFp = size + startFp if fp.tell() != endFp: - raise IOError, "Processing Header is not consistent" + print "Processing Header is not consistent" + return 0 return 1 diff --git a/schainpy/model/io/jroIO_HDF5.py b/schainpy/model/io/jroIO_HDF5.py index a15bda0..00b462f 100644 --- a/schainpy/model/io/jroIO_HDF5.py +++ b/schainpy/model/io/jroIO_HDF5.py @@ -258,8 +258,8 @@ class HDF5Reader(ProcessingUnit): try: fp = fp = h5py.File(filename,'r') except IOError: - traceback.print_exc() - raise IOError, "The file %s can't be opened" %(filename) + print "File %s can't be opened" %(filename) + return None grp = fp['Data'] timeAux = grp['time'] diff --git a/schainpy/model/io/jroIO_base.py b/schainpy/model/io/jroIO_base.py index 3e3ea39..6528789 100644 --- a/schainpy/model/io/jroIO_base.py +++ b/schainpy/model/io/jroIO_base.py @@ -68,8 +68,8 @@ def isFileInEpoch(filename, startUTSeconds, endUTSeconds): try: fp = open(filename,'rb') except IOError: - traceback.print_exc() - raise IOError, "The file %s can't be opened" %(filename) + print "The file %s can't be opened" %(filename) + return 0 sts = basicHeaderObj.read(fp) fp.close() @@ -112,8 +112,8 @@ def isFileInTimeRange(filename, startDate, endDate, startTime, endTime): try: fp = open(filename,'rb') except IOError: - traceback.print_exc() - raise IOError, "The file %s can't be opened" %(filename) + print "The file %s can't be opened" %(filename) + return None basicHeaderObj = BasicHeader(LOCALTIME) sts = basicHeaderObj.read(fp) @@ -182,7 +182,8 @@ def isFolderInDateRange(folder, startDate=None, endDate=None): basename = os.path.basename(folder) if not isRadarFolder(basename): - raise IOError, "The folder %s has not the rigth format" %folder + print "The folder %s has not the rigth format" %folder + return 0 if startDate and endDate: thisDate = getDateFromRadarFolder(basename) @@ -223,7 +224,8 @@ def isFileInDateRange(filename, startDate=None, endDate=None): basename = os.path.basename(filename) if not isRadarFile(basename): - raise IOError, "The filename %s has not the rigth format" %filename + print "The filename %s has not the rigth format" %filename + return 0 if startDate and endDate: thisDate = getDateFromRadarFile(basename) @@ -477,11 +479,11 @@ class JRODataIO: def __init__(self): - raise ValueError, "Not implemented" + raise NotImplementedError def run(self): - raise ValueError, "Not implemented" + raise NotImplementedError def getDtypeWidth(self): @@ -526,21 +528,25 @@ class JRODataReader(JRODataIO): def __init__(self): """ - - """ + This class is used to find data files -# raise NotImplementedError, "This method has not been implemented" + Example: + reader = JRODataReader() + fileList = reader.findDataFiles() + + """ + pass def createObjByDefault(self): """ """ - raise NotImplementedError, "This method has not been implemented" + raise NotImplementedError def getBlockDimension(self): - raise NotImplementedError, "No implemented" + raise NotImplementedError def __searchFilesOffLine(self, path, @@ -561,9 +567,9 @@ class JRODataReader(JRODataIO): dateList, pathList = self.findDatafiles(path, startDate, endDate, expLabel, ext, walk, include_path=True) if dateList == []: - print "[Reading] No *%s files in %s from %s to %s)"%(ext, path, - datetime.datetime.combine(startDate,startTime).ctime(), - datetime.datetime.combine(endDate,endTime).ctime()) +# print "[Reading] No *%s files in %s from %s to %s)"%(ext, path, +# datetime.datetime.combine(startDate,startTime).ctime(), +# datetime.datetime.combine(endDate,endTime).ctime()) return None, None @@ -1006,16 +1012,19 @@ class JRODataReader(JRODataIO): self.getBlockDimension() def __verifyFile(self, filename, msgFlag=True): + msg = None + try: fp = open(filename, 'rb') - currentPosition = fp.tell() except IOError: - traceback.print_exc() + if msgFlag: - print "[Reading] The file %s can't be opened" % (filename) + print "[Reading] File %s can't be opened" % (filename) + return False - + + currentPosition = fp.tell() neededSize = self.processingHeaderObj.blockSize + self.firstHeaderSize if neededSize == 0: @@ -1023,34 +1032,35 @@ class JRODataReader(JRODataIO): systemHeaderObj = SystemHeader() radarControllerHeaderObj = RadarControllerHeader() processingHeaderObj = ProcessingHeader() - - try: - if not( basicHeaderObj.read(fp) ): raise IOError - if not( systemHeaderObj.read(fp) ): raise IOError - if not( radarControllerHeaderObj.read(fp) ): raise IOError - if not( processingHeaderObj.read(fp) ): raise IOError -# data_type = int(numpy.log2((processingHeaderObj.processFlags & PROCFLAG.DATATYPE_MASK))-numpy.log2(PROCFLAG.DATATYPE_CHAR)) - - neededSize = processingHeaderObj.blockSize + basicHeaderObj.size - - except IOError: - traceback.print_exc() -# sys.exit(0) - - if msgFlag: - print "[Reading] The file %s is empty or it hasn't enough data" % filename - + + if not( basicHeaderObj.read(fp) ): + fp.close() + return False + + if not( systemHeaderObj.read(fp) ): fp.close() return False + + if not( radarControllerHeaderObj.read(fp) ): + fp.close() + return False + + if not( processingHeaderObj.read(fp) ): + fp.close() + return False + + neededSize = processingHeaderObj.blockSize + basicHeaderObj.size else: msg = "[Reading] Skipping the file %s due to it hasn't enough data" %filename fp.close() + fileSize = os.path.getsize(filename) currentSize = fileSize - currentPosition + if currentSize < neededSize: if msgFlag and (msg != None): - print msg #print"\tSkipping the file %s due to it hasn't enough data" %filename + print msg return False return True @@ -1129,6 +1139,14 @@ class JRODataReader(JRODataIO): dateList.sort() + if walk: + pattern_path = os.path.join(multi_path[0], "[dYYYYDDD]", expLabel) + else: + pattern_path = multi_path[0] + + if not dateList: + print "[Reading] No *%s files in %s from %s to %s" %(ext, pattern_path, startDate, endDate) + if include_path: return dateList, pathList @@ -1187,9 +1205,9 @@ class JRODataReader(JRODataIO): walk=walk) if not(pathList): - print "[Reading] No *%s files in %s (%s - %s)"%(ext, path, - datetime.datetime.combine(startDate,startTime).ctime(), - datetime.datetime.combine(endDate,endTime).ctime()) +# print "[Reading] No *%s files in %s (%s - %s)"%(ext, path, +# datetime.datetime.combine(startDate,startTime).ctime(), +# datetime.datetime.combine(endDate,endTime).ctime()) # sys.exit(-1) @@ -1253,19 +1271,19 @@ class JRODataReader(JRODataIO): def getFirstHeader(self): - raise ValueError, "This method has not been implemented" + raise NotImplementedError def getData(self): - raise ValueError, "This method has not been implemented" + raise NotImplementedError def hasNotDataInBuffer(self): - raise ValueError, "This method has not been implemented" + raise NotImplementedError def readBlock(self): - raise ValueError, "This method has not been implemented" + raise NotImplementedError def isEndProcess(self): @@ -1331,23 +1349,23 @@ class JRODataWriter(JRODataIO): fileDate = None def __init__(self, dataOut=None): - raise ValueError, "Not implemented" + raise NotImplementedError def hasAllDataInBuffer(self): - raise ValueError, "Not implemented" + raise NotImplementedError def setBlockDimension(self): - raise ValueError, "Not implemented" + raise NotImplementedError def writeBlock(self): - raise ValueError, "No implemented" + raise NotImplementedError def putData(self): - raise ValueError, "No implemented" + raise NotImplementedError def getProcessFlags(self): @@ -1413,7 +1431,7 @@ class JRODataWriter(JRODataIO): None """ - raise ValueError, "No implemented" + raise NotImplementedError def __writeFirstHeader(self): """ diff --git a/schainpy/model/io/jroIO_heispectra.py b/schainpy/model/io/jroIO_heispectra.py index c84d359..947a098 100644 --- a/schainpy/model/io/jroIO_heispectra.py +++ b/schainpy/model/io/jroIO_heispectra.py @@ -326,7 +326,8 @@ class FitsReader(ProcessingUnit): try: fitsObj = pyfits.open(filename,'readonly') except: - raise IOError, "The file %s can't be opened" %(filename) + print "File %s can't be opened" %(filename) + return None header = fitsObj[0].header struct_time = time.strptime(header['DATETIME'], "%b %d %Y %H:%M:%S") @@ -344,7 +345,7 @@ class FitsReader(ProcessingUnit): return thisDatetime def __setNextFileOnline(self): - raise ValueError, "No implemented" + raise NotImplementedError def __setNextFileOffline(self): idFile = self.fileIndex @@ -605,7 +606,7 @@ class FitsReader(ProcessingUnit): return 1 def __jumpToLastBlock(self): - raise ValueError, "No implemented" + raise NotImplementedError def __waitNewBlock(self): """ diff --git a/schainpy/model/io/jroIO_usrp.py b/schainpy/model/io/jroIO_usrp.py index 8160f4c..2eed23d 100644 --- a/schainpy/model/io/jroIO_usrp.py +++ b/schainpy/model/io/jroIO_usrp.py @@ -211,7 +211,7 @@ class USRPReader(ProcessingUnit): buffer_size = nbuffer if not os.path.isdir(path): - raise ValueError, "[Reading] This path %s does not exist" %path + raise ValueError, "[Reading] Directory %s does not exist" %path try: self.digitalReadObj = digital_rf_hdf5.read_hdf5(path, load_all_metadata=True) @@ -221,7 +221,7 @@ class USRPReader(ProcessingUnit): channelNameList = self.digitalReadObj.get_channels() if not channelNameList: - raise IOError, "[Reading] The path doesn,t have any files .. " + raise ValueError, "[Reading] Directory %s does not have any files" %path if not channelList: channelList = range(len(channelNameList)) @@ -249,9 +249,9 @@ class USRPReader(ProcessingUnit): except: codeType = 0 - nCode = 0 - nBaud = 0 - code = None + nCode = 1 + nBaud = 1 + code = [1] if codeType: nCode = this_metadata_file['nCode'].value diff --git a/schainpy/model/io/jroIO_usrp_api.py b/schainpy/model/io/jroIO_usrp_api.py index 7029df5..6af5d85 100644 --- a/schainpy/model/io/jroIO_usrp_api.py +++ b/schainpy/model/io/jroIO_usrp_api.py @@ -109,7 +109,7 @@ class USRPReaderAPI(USRPReader, threading.Thread): ''' if not self.isConfig: - raise IOError, 'setup() method has to be called before start()' + raise RuntimeError, 'setup() method has to be called before start()' while True: diff --git a/schainpy/model/proc/jroproc_base.py b/schainpy/model/proc/jroproc_base.py index 1baf171..4b4d774 100644 --- a/schainpy/model/proc/jroproc_base.py +++ b/schainpy/model/proc/jroproc_base.py @@ -75,7 +75,7 @@ class ProcessingUnit(object): **kwargs : Diccionario de argumentos de la funcion a ejecutar """ - raise ValueError, "ImplementedError" + raise NotImplementedError def callMethod(self, name, **kwargs): @@ -187,17 +187,17 @@ class ProcessingUnit(object): if opType == 'self': if not opName: - raise IOError, "opName parameter should be defined" + raise ValueError, "opName parameter should be defined" sts = self.callMethod(opName, **kwargs) if opType == 'other' or opType == 'external': if not opId: - raise IOError, "opId parameter should be defined" + raise ValueError, "opId parameter should be defined" if opId not in self.operations2RunDict.keys(): - raise IOError, "This id operation have not been registered" + raise ValueError, "Id operation has not been registered" sts = self.callObject(opId, **kwargs) @@ -223,11 +223,11 @@ class ProcessingUnit(object): def setup(self): - raise ValueError, "Not implemented" + raise NotImplementedError def run(self): - raise ValueError, "Not implemented" + raise NotImplementedError def close(self): #Close every thread, queue or any other object here is it is neccesary. @@ -256,7 +256,7 @@ class Operation(object): self.isConfig = True - raise ValueError, "Not implemented" + raise NotImplementedError def run(self, dataIn, **kwargs): @@ -279,7 +279,7 @@ class Operation(object): if not self.isConfig: self.setup(**kwargs) - raise ValueError, "ImplementedError" + raise NotImplementedError def close(self): diff --git a/schainpy/model/proc/jroproc_spectra.py b/schainpy/model/proc/jroproc_spectra.py index 721b7d7..d7077fc 100644 --- a/schainpy/model/proc/jroproc_spectra.py +++ b/schainpy/model/proc/jroproc_spectra.py @@ -119,7 +119,6 @@ class SpectraProc(ProcessingUnit): if nProfiles == None: nProfiles = nFFTPoints -# raise ValueError, "This SpectraProc.run() need nProfiles input variable" if ippFactor == None: ippFactor = 1 @@ -272,7 +271,6 @@ class SpectraProc(ProcessingUnit): if (maxHei > self.dataOut.heightList[-1]): maxHei = self.dataOut.heightList[-1] -# raise ValueError, "some value in (%d,%d) is not valid" % (minHei, maxHei) minIndex = 0 maxIndex = 0 @@ -359,9 +357,6 @@ class SpectraProc(ProcessingUnit): if (maxIndex >= self.dataOut.nHeights): maxIndex = self.dataOut.nHeights-1 -# raise ValueError, "some value in (%d,%d) is not valid" % (minIndex, maxIndex) - -# nHeights = maxIndex - minIndex + 1 #Spectra data_spc = self.dataOut.data_spc[:,:,minIndex:maxIndex+1] diff --git a/schainpy/model/proc/jroproc_voltage.py b/schainpy/model/proc/jroproc_voltage.py index d0393ce..476ff72 100644 --- a/schainpy/model/proc/jroproc_voltage.py +++ b/schainpy/model/proc/jroproc_voltage.py @@ -99,7 +99,6 @@ class VoltageProc(ProcessingUnit): print channelIndexList raise ValueError, "The value %d in channelIndexList is not valid" %channelIndex -# nChannels = len(channelIndexList) if self.dataOut.flagDataAsBlock: """ Si la data es obtenida por bloques, dimension = [nChannels, nProfiles, nHeis] @@ -138,15 +137,10 @@ class VoltageProc(ProcessingUnit): if (minHei < self.dataOut.heightList[0]): minHei = self.dataOut.heightList[0] -# raise ValueError, "height range [%d,%d] is not valid. Data height range is [%d, %d]" % (minHei, -# maxHei, -# self.dataOut.heightList[0], -# self.dataOut.heightList[-1]) - + if (maxHei > self.dataOut.heightList[-1]): maxHei = self.dataOut.heightList[-1] -# raise ValueError, "some value in (%d,%d) is not valid" % (minHei, maxHei) - + minIndex = 0 maxIndex = 0 heights = self.dataOut.heightList @@ -187,14 +181,11 @@ class VoltageProc(ProcessingUnit): """ if (minIndex < 0) or (minIndex > maxIndex): - raise ValueError, "some value in (%d,%d) is not valid" % (minIndex, maxIndex) + raise ValueError, "Height index range (%d,%d) is not valid" % (minIndex, maxIndex) if (maxIndex >= self.dataOut.nHeights): maxIndex = self.dataOut.nHeights -# raise ValueError, "some value in (%d,%d) is not valid" % (minIndex, maxIndex) - -# nHeights = maxIndex - minIndex + 1 - + #voltage if self.dataOut.flagDataAsBlock: """ @@ -563,8 +554,7 @@ class Decoder(Operation): self.__nHeis = dataOut.nHeights if self.__nHeis < self.nBaud: - print 'IOError: Number of heights (%d) should be greater than number of bauds (%d)' %(self.__nHeis, self.nBaud) - raise IOError, 'Number of heights (%d) should be greater than number of bauds (%d)' %(self.__nHeis, self.nBaud) + raise ValueError, 'Number of heights (%d) should be greater than number of bauds (%d)' %(self.__nHeis, self.nBaud) #Frequency __codeBuffer = numpy.zeros((self.nCode, self.__nHeis), dtype=numpy.complex) @@ -602,14 +592,6 @@ class Decoder(Operation): raise NotImplementedError -# fft_code = self.fft_code[self.__profIndex].reshape(1,-1) -# -# data = cfunctions.decoder(fft_code, data) -# -# datadec = data#[:,:] -# -# return datadec - def __convolutionInTime(self, data): code = self.code[self.__profIndex] @@ -654,8 +636,7 @@ class Decoder(Operation): if code is None: if dataOut.code is None: - print "Code is not defined" - raise ValueError, "Code could not be read from %s object. Enter a value in Code parameter" %dataOut.type + raise ValueError, "Code could not be read from %s instance. Enter a value in Code parameter" %dataOut.type code = dataOut.code else: @@ -750,7 +731,6 @@ class ProfileConcat(Operation): self.isConfig = True if dataOut.flagDataAsBlock: - raise ValueError, "ProfileConcat can only be used when voltage have been read profile by profile, getBlock = False" else: