##// END OF EJS Templates
JRODataIO.py...
Victor Sarmiento -
r90:36d9f4ff598a
parent child
Show More
@@ -549,6 +549,7 class JRODataReader(JRODataIO):
549 Si un determinado file no puede ser abierto
549 Si un determinado file no puede ser abierto
550 """
550 """
551 idFile = self.fileIndex
551 idFile = self.fileIndex
552
552 while(True):
553 while(True):
553
554
554 idFile += 1
555 idFile += 1
@@ -559,22 +560,14 class JRODataReader(JRODataIO):
559 return 0
560 return 0
560
561
561 filename = self.filenameList[idFile]
562 filename = self.filenameList[idFile]
562 fileSize = os.path.getsize(filename)
563
563
564 if not(self.__verifyFile(filename)):
564 try:
565 fp = open(filename,'rb')
566 except:
567 raise IOError, "The file %s can't be opened" %filename
568
569 currentSize = fileSize - fp.tell()
570 neededSize = self.m_ProcessingHeader.blockSize + self.firstHeaderSize
571
572 if (currentSize < neededSize):
573 print "Skipping the file %s due to it hasn't enough data" %filename
574 continue
565 continue
575
566
567 fileSize = os.path.getsize(filename)
568 fp = open(filename,'rb')
576 break
569 break
577
570
578 self.flagIsNewFile = 1
571 self.flagIsNewFile = 1
579 self.fileIndex = idFile
572 self.fileIndex = idFile
580 self.filename = filename
573 self.filename = filename
@@ -780,7 +773,6 class JRODataReader(JRODataIO):
780
773
781 return pathList, filenameList
774 return pathList, filenameList
782
775
783
784 def __verifyFile(self, filename, msgFlag=True):
776 def __verifyFile(self, filename, msgFlag=True):
785 """
777 """
786 Verifica que el filename tenga data valida, para ello leo el FirstHeader del file
778 Verifica que el filename tenga data valida, para ello leo el FirstHeader del file
@@ -789,37 +781,55 class JRODataReader(JRODataIO):
789 0 : file no valido para ser leido
781 0 : file no valido para ser leido
790 1 : file valido para ser leido
782 1 : file valido para ser leido
791 """
783 """
792 m_BasicHeader = BasicHeader()
784 msg = None
793 m_SystemHeader = SystemHeader()
785
794 m_RadarControllerHeader = RadarControllerHeader()
795 m_ProcessingHeader = ProcessingHeader()
796 flagFileOK = False
797
798 try:
786 try:
799 fp = open( filename,'rb' ) #lectura binaria
787 fp = open( filename,'rb' ) #lectura binaria
788 currentPosition = fp.tell()
800 except:
789 except:
801 if msgFlag:
790 if msgFlag:
802 print "The file %s can't be opened" % (filename)
791 print "The file %s can't be opened" % (filename)
792 return False
793
794 neededSize = self.m_ProcessingHeader.blockSize + self.firstHeaderSize
803
795
804 try:
796 if neededSize == 0:
805 if not( m_BasicHeader.read(fp) ): raise ValueError
797
806 if not( m_SystemHeader.read(fp) ): raise ValueError
798 m_BasicHeader = BasicHeader()
807 if not( m_RadarControllerHeader.read(fp) ): raise ValueError
799 m_SystemHeader = SystemHeader()
808 if not( m_ProcessingHeader.read(fp) ): raise ValueError
800 m_RadarControllerHeader = RadarControllerHeader()
809 data_type = int(numpy.log2((m_ProcessingHeader.processFlags & PROCFLAG.DATATYPE_MASK))-numpy.log2(PROCFLAG.DATATYPE_CHAR))
801 m_ProcessingHeader = ProcessingHeader()
810 if m_BasicHeader.size > self.basicHeaderSize:
802
811 flagFileOK = True
803 try:
812 except:
804 if not( m_BasicHeader.read(fp) ): raise ValueError
813 if msgFlag:
805 if not( m_SystemHeader.read(fp) ): raise ValueError
814 print "\tThe file %s is empty or it hasn't enough data" % filename
806 if not( m_RadarControllerHeader.read(fp) ): raise ValueError
807 if not( m_ProcessingHeader.read(fp) ): raise ValueError
808 data_type = int(numpy.log2((m_ProcessingHeader.processFlags & PROCFLAG.DATATYPE_MASK))-numpy.log2(PROCFLAG.DATATYPE_CHAR))
809
810 neededSize = m_ProcessingHeader.blockSize + m_BasicHeader.size
811
812 except:
813 if msgFlag:
814 print "\tThe file %s is empty or it hasn't enough data" % filename
815
816 fp.close()
817 return False
815
818
819 else:
820 msg = "\tSkipping the file %s due to it hasn't enough data" %filename
821
816 fp.close()
822 fp.close()
823 fileSize = os.path.getsize(filename)
824 currentSize = fileSize - currentPosition
817
825
818 if not(flagFileOK):
826 if currentSize < neededSize:
819 return 0
827 if msgFlag and (msg != None):
820
828 print msg #print"\tSkipping the file %s due to it hasn't enough data" %filename
821 return 1
829 return False
822
830
831 return True
832
823 def updateDataHeader(self):
833 def updateDataHeader(self):
824
834
825 self.m_DataObj.m_BasicHeader = self.m_BasicHeader.copy()
835 self.m_DataObj.m_BasicHeader = self.m_BasicHeader.copy()
General Comments 0
You need to be logged in to leave comments. Login now