@@ -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 |
|
|
415 | ||
398 |
self. |
|
416 | self.dataOut.data = buffer | |
399 |
self. |
|
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