##// 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,10 +716,29 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
705 spc = numpy.fromfile( self.__fp, self.__dataType[0], self.__pts2read_SelfSpectra )
721 spc = numpy.fromfile( self.__fp, self.__dataType[0], self.__pts2read_SelfSpectra )
706 cspc = numpy.fromfile( self.__fp, self.__dataType, self.__pts2read_CrossSpectra )
722 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) )
723 dc = numpy.fromfile( self.__fp, self.__dataType, self.__pts2read_DCchannels ) #int(self.m_ProcessingHeader.numHeights*self.m_SystemHeader.numChannels) )
708
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()
733 spc = numpy.fromfile( self.__fp, self.__dataType[0], self.__pts2read_SelfSpectra )
734 cspc = numpy.fromfile( self.__fp, self.__dataType, self.__pts2read_CrossSpectra )
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
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
711 cspc = cspc.reshape( (self.nPairs, self.m_ProcessingHeader.numHeights, self.m_ProcessingHeader.profilesPerBlock) ) #transforma a un arreglo 3D
744 cspc = cspc.reshape( (self.nPairs, self.m_ProcessingHeader.numHeights, self.m_ProcessingHeader.profilesPerBlock) ) #transforma a un arreglo 3D
@@ -1089,18 +1122,8 class SpectraReader( DataReader ):
1089
1122
1090 if not( self.__setNewBlock() ):
1123 if not( self.__setNewBlock() ):
1091 return 0
1124 return 0
1092
1125
1093 if self.online:
1126 self.__readBlock()
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()
1104
1127
1105 self.__lastUTTime = self.m_BasicHeader.utc
1128 self.__lastUTTime = self.m_BasicHeader.utc
1106
1129
@@ -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