##// END OF EJS Templates
SpectraIO. Clase para escribir y leer espectros...
Victor Sarmiento -
r33:e2723460f854
parent child
Show More
@@ -664,6 +664,20 class SpectraReader( DataReader ):
664 if ( currentSize >= neededSize ):
664 if ( currentSize >= neededSize ):
665 self.__rdBasicHeader()
665 self.__rdBasicHeader()
666 return 1
666 return 1
667 elif self.online:
668 nTries = 0
669 while( nTries < self.__nTries ):
670 nTries += 1
671 print "Waiting for the next block, try %03d ..." % nTries
672 time.sleep( self.__delay )
673
674 fileSize = os.path.getsize(self.filename)
675 currentSize = fileSize - self.__fp.tell()
676 neededSize = self.m_ProcessingHeader.blockSize + self.basicHeaderSize
677
678 if ( currentSize >= neededSize ):
679 self.__rdBasicHeader()
680 return 1
667
681
668 #Setting new file
682 #Setting new file
669 if not( self.__setNextFile() ):
683 if not( self.__setNextFile() ):
@@ -702,9 +716,28 class SpectraReader( DataReader ):
702 self.__flagIsNewFile = 0
716 self.__flagIsNewFile = 0
703 self.flagIsNewBlock = 1
717 self.flagIsNewBlock = 1
704
718
719 fpointer = self.__fp.tell()
720
721 spc = numpy.fromfile( self.__fp, self.__dataType[0], self.__pts2read_SelfSpectra )
722 cspc = numpy.fromfile( self.__fp, self.__dataType, self.__pts2read_CrossSpectra )
723 dc = numpy.fromfile( self.__fp, self.__dataType, self.__pts2read_DCchannels ) #int(self.m_ProcessingHeader.numHeights*self.m_SystemHeader.numChannels) )
724
725 if (spc.size + cspc.size + dc.size) != self.__blocksize:
726 nTries = 0
727 while( nTries < self.__nTries ):
728 nTries += 1
729 print "Waiting for the next block, try %03d ..." % nTries
730 time.sleep( self.__delay )
731 self.__fp.seek( fpointer )
732 fpointer = self.__fp.tell()
705 spc = numpy.fromfile( self.__fp, self.__dataType[0], self.__pts2read_SelfSpectra )
733 spc = numpy.fromfile( self.__fp, self.__dataType[0], self.__pts2read_SelfSpectra )
706 cspc = numpy.fromfile( self.__fp, self.__dataType, self.__pts2read_CrossSpectra )
734 cspc = numpy.fromfile( self.__fp, self.__dataType, self.__pts2read_CrossSpectra )
707 dc = numpy.fromfile( self.__fp, self.__dataType, self.__pts2read_DCchannels ) #int(self.m_ProcessingHeader.numHeights*self.m_SystemHeader.numChannels) )
735 dc = numpy.fromfile( self.__fp, self.__dataType, self.__pts2read_DCchannels ) #int(self.m_ProcessingHeader.numHeights*self.m_SystemHeader.numChannels) )
736 if (spc.size + cspc.size + dc.size) == self.__blocksize:
737 nTries = 0
738 break
739 if nTries > 0:
740 return
708
741
709 spc = spc.reshape( (self.nChannels, self.m_ProcessingHeader.numHeights, self.m_ProcessingHeader.profilesPerBlock) ) #transforma a un arreglo 3D
742 spc = spc.reshape( (self.nChannels, self.m_ProcessingHeader.numHeights, self.m_ProcessingHeader.profilesPerBlock) ) #transforma a un arreglo 3D
710
743
@@ -1090,16 +1123,6 class SpectraReader( DataReader ):
1090 if not( self.__setNewBlock() ):
1123 if not( self.__setNewBlock() ):
1091 return 0
1124 return 0
1092
1125
1093 if self.online:
1094 nTries = 0
1095 while( nTries < self.__nTries ):
1096 nTries += 1
1097 if self.__readBlock() == 0:
1098 print "Waiting for the next block ..."
1099 time.sleep( self.__delay )
1100 else:
1101 break
1102 else:
1103 self.__readBlock()
1126 self.__readBlock()
1104
1127
1105 self.__lastUTTime = self.m_BasicHeader.utc
1128 self.__lastUTTime = self.m_BasicHeader.utc
@@ -1128,6 +1151,7 class SpectraReader( DataReader ):
1128 self.flagIsNewBlock = 0
1151 self.flagIsNewBlock = 0
1129
1152
1130 if self.__hasNotDataInBuffer():
1153 if self.__hasNotDataInBuffer():
1154
1131 self.readNextBlock()
1155 self.readNextBlock()
1132
1156
1133 self.m_Spectra.m_BasicHeader = self.m_BasicHeader.copy()
1157 self.m_Spectra.m_BasicHeader = self.m_BasicHeader.copy()
General Comments 0
You need to be logged in to leave comments. Login now