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