##// END OF EJS Templates
voltage reader enhancements
Julio Valdez -
r834:ee9a56ecbcc7
parent child
Show More
@@ -10,6 +10,7 from jroIO_base import LOCALTIME, JRODataReader, JRODataWriter
10 from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation
10 from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation
11 from schainpy.model.data.jroheaderIO import PROCFLAG, BasicHeader, SystemHeader, RadarControllerHeader, ProcessingHeader
11 from schainpy.model.data.jroheaderIO import PROCFLAG, BasicHeader, SystemHeader, RadarControllerHeader, ProcessingHeader
12 from schainpy.model.data.jrodata import Voltage
12 from schainpy.model.data.jrodata import Voltage
13 # from _sha import blocksize
13
14
14 class VoltageReader(JRODataReader, ProcessingUnit):
15 class VoltageReader(JRODataReader, ProcessingUnit):
15 """
16 """
@@ -391,20 +392,30 class VoltageReader(JRODataReader, ProcessingUnit):
391
392
392 self.dataOut.data = self.datablock[:,self.profileIndex:self.profileIndex+self.selBlocksize,:]
393 self.dataOut.data = self.datablock[:,self.profileIndex:self.profileIndex+self.selBlocksize,:]
393 self.profileIndex += self.selBlocksize
394 self.profileIndex += self.selBlocksize
395 datasize = self.dataOut.data.shape[1]
396
397 if datasize < self.selBlocksize:
398 buffer = numpy.zeros((self.dataOut.data.shape[0],self.selBlocksize,self.dataOut.data.shape[2]), dtype = 'complex')
399 buffer[:,:datasize,:] = self.dataOut.data
400
401 while datasize < self.selBlocksize: #Not enough profiles to fill the block
402 if not( self.readNextBlock() ):
403 return 0
404 self.getFirstHeader()
405 self.reshapeData()
406 if self.datablock is None:
407 self.dataOut.flagNoData = True
408 return 0
409 #stack data
410 blockIndex = self.selBlocksize - datasize
411 datablock1 = self.datablock[:,:blockIndex,:]
394
412
395 while self.dataOut.data.shape[1] < self.selBlocksize: #Not enough profiles to fill the block
413 buffer[:,datasize:datasize+datablock1.shape[1],:] = datablock1
396 if not( self.readNextBlock() ):
414 datasize += datablock1.shape[1]
397 return 0
415
398 self.getFirstHeader()
416 self.dataOut.data = buffer
399 self.reshapeData()
417 self.profileIndex = blockIndex
400 if self.datablock is None:
418
401 self.dataOut.flagNoData = True
402 return 0
403 #stack data
404 indMax = self.selBlocksize - self.dataOut.data.shape[1]
405 self.dataOut.data = numpy.hstack((self.dataOut.data,self.datablock[:,:indMax,:]))
406 self.profileIndex = indMax
407
408 self.dataOut.flagDataAsBlock = True
419 self.dataOut.flagDataAsBlock = True
409 self.dataOut.nProfiles = self.selBlocksize
420 self.dataOut.nProfiles = self.selBlocksize
410
421
General Comments 0
You need to be logged in to leave comments. Login now