##// END OF EJS Templates
New reading option allows to read by blocks of different sizes
Julio Valdez -
r833:26a5421c91c8
parent child
Show More
@@ -569,6 +569,13 class JRODataReader(JRODataIO):
569
569
570 txIndex = None
570 txIndex = None
571
571
572 #Added--------------------
573
574 selBlocksize = None
575
576 selBlocktime = None
577
578
572 def __init__(self):
579 def __init__(self):
573
580
574 """
581 """
@@ -1237,7 +1244,9 class JRODataReader(JRODataIO):
1237 walk = True,
1244 walk = True,
1238 getblock = False,
1245 getblock = False,
1239 nTxs = 1,
1246 nTxs = 1,
1240 realtime=False):
1247 realtime=False,
1248 blocksize=None,
1249 blocktime=None):
1241
1250
1242 if path == None:
1251 if path == None:
1243 raise ValueError, "[Reading] The path is not valid"
1252 raise ValueError, "[Reading] The path is not valid"
@@ -1304,6 +1313,11 class JRODataReader(JRODataIO):
1304 self.startTime = startTime
1313 self.startTime = startTime
1305 self.endTime = endTime
1314 self.endTime = endTime
1306
1315
1316 #Added-----------------
1317 self.selBlocksize = blocksize
1318 self.selBlocktime = blocktime
1319
1320
1307 if not(self.setNextFile()):
1321 if not(self.setNextFile()):
1308 if (startDate!=None) and (endDate!=None):
1322 if (startDate!=None) and (endDate!=None):
1309 print "[Reading] No files in range: %s - %s" %(datetime.datetime.combine(startDate,startTime).ctime(), datetime.datetime.combine(endDate,endTime).ctime())
1323 print "[Reading] No files in range: %s - %s" %(datetime.datetime.combine(startDate,startTime).ctime(), datetime.datetime.combine(endDate,endTime).ctime())
@@ -1339,7 +1353,7 class JRODataReader(JRODataIO):
1339
1353
1340 self.dataOut.ippSeconds = self.radarControllerHeaderObj.ippSeconds/self.nTxs
1354 self.dataOut.ippSeconds = self.radarControllerHeaderObj.ippSeconds/self.nTxs
1341
1355
1342 self.dataOut.nProfiles = self.processingHeaderObj.profilesPerBlock*self.nTxs
1356 # self.dataOut.nProfiles = self.processingHeaderObj.profilesPerBlock*self.nTxs
1343
1357
1344
1358
1345 def getFirstHeader(self):
1359 def getFirstHeader(self):
@@ -57,7 +57,6 class VoltageReader(JRODataReader, ProcessingUnit):
57 optchar = "D"
57 optchar = "D"
58 dataOut = None
58 dataOut = None
59
59
60
61 def __init__(self):
60 def __init__(self):
62 """
61 """
63 Inicializador de la clase VoltageReader para la lectura de datos de voltage.
62 Inicializador de la clase VoltageReader para la lectura de datos de voltage.
@@ -373,15 +372,41 class VoltageReader(JRODataReader, ProcessingUnit):
373
372
374 self.profileIndex += 1
373 self.profileIndex += 1
375
374
375 # elif self.selBlocksize==None or self.selBlocksize==self.dataOut.nProfiles:
376 # """
377 # Return all block
378 # """
379 # self.dataOut.flagDataAsBlock = True
380 # self.dataOut.data = self.datablock
381 # self.dataOut.profileIndex = self.dataOut.nProfiles - 1
382 #
383 # self.profileIndex = self.dataOut.nProfiles
384
376 else:
385 else:
377 """
386 """
378 Return all block
387 Return a block
379 """
388 """
380 self.dataOut.flagDataAsBlock = True
389 if self.selBlocksize == None: self.selBlocksize = self.dataOut.nProfiles
381 self.dataOut.data = self.datablock
390 if self.selBlocktime != None: self.selBlocksize = int(self.dataOut.nProfiles*round(self.selBlocktime/(self.dataOut.ippSeconds*self.dataOut.nProfiles)))
382 self.dataOut.profileIndex = self.dataOut.nProfiles - 1
383
391
384 self.profileIndex = self.dataOut.nProfiles
392 self.dataOut.data = self.datablock[:,self.profileIndex:self.profileIndex+self.selBlocksize,:]
393 self.profileIndex += self.selBlocksize
394
395 while self.dataOut.data.shape[1] < self.selBlocksize: #Not enough profiles to fill the block
396 if not( self.readNextBlock() ):
397 return 0
398 self.getFirstHeader()
399 self.reshapeData()
400 if self.datablock is None:
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
409 self.dataOut.nProfiles = self.selBlocksize
385
410
386 self.dataOut.flagNoData = False
411 self.dataOut.flagNoData = False
387
412
General Comments 0
You need to be logged in to leave comments. Login now