##// END OF EJS Templates
Prueba de lectura de Voltajes y obtencion de Espectros.
Miguel Valdez -
r220:a4afebb9fb40
parent child
Show More
@@ -214,7 +214,7 class JROData:
214 datatime = []
214 datatime = []
215
215
216 datatime.append(self.utctime)
216 datatime.append(self.utctime)
217 datatime.append(self.utctime + 2*self.timeInterval)
217 datatime.append(self.utctime + self.timeInterval)
218
218
219 datatime = numpy.array(datatime)
219 datatime = numpy.array(datatime)
220
220
@@ -826,6 +826,14 class JRODataReader(JRODataIO, ProcessingUnit):
826
826
827 print "Number of read blocks %04d" %self.nTotalBlocks
827 print "Number of read blocks %04d" %self.nTotalBlocks
828
828
829 def printInfo(self):
830
831 print self.basicHeaderObj.printInfo()
832 print self.systemHeaderObj.printInfo()
833 print self.radarControllerHeaderObj.printInfo()
834 print self.processingHeaderObj.printInfo()
835
836
829 def run(self, **kwargs):
837 def run(self, **kwargs):
830
838
831 if not(self.isConfig):
839 if not(self.isConfig):
@@ -1339,22 +1347,8 class VoltageReader(JRODataReader):
1339 if not( self.readNextBlock() ):
1347 if not( self.readNextBlock() ):
1340 return 0
1348 return 0
1341
1349
1342 # self.updateDataHeader()
1343
1344 #data es un numpy array de 3 dmensiones (perfiles, alturas y canales)
1345
1346 if self.datablock == None:
1347 self.dataOut.flagNoData = True
1348 return 0
1349
1350 self.dataOut.data = self.datablock[:,self.profileIndex,:]
1351
1352 self.dataOut.dtype = self.dtype
1350 self.dataOut.dtype = self.dtype
1353
1351
1354 # self.dataOut.nChannels = self.systemHeaderObj.nChannels
1355
1356 # self.dataOut.nHeights = self.processingHeaderObj.nHeights
1357
1358 self.dataOut.nProfiles = self.processingHeaderObj.profilesPerBlock
1352 self.dataOut.nProfiles = self.processingHeaderObj.profilesPerBlock
1359
1353
1360 xf = self.processingHeaderObj.firstHeight + self.processingHeaderObj.nHeights*self.processingHeaderObj.deltaHeight
1354 xf = self.processingHeaderObj.firstHeight + self.processingHeaderObj.nHeights*self.processingHeaderObj.deltaHeight
@@ -1363,12 +1357,8 class VoltageReader(JRODataReader):
1363
1357
1364 self.dataOut.channelList = range(self.systemHeaderObj.nChannels)
1358 self.dataOut.channelList = range(self.systemHeaderObj.nChannels)
1365
1359
1366 # self.dataOut.channelIndexList = range(self.systemHeaderObj.nChannels)
1367
1368 self.dataOut.flagTimeBlock = self.flagTimeBlock
1360 self.dataOut.flagTimeBlock = self.flagTimeBlock
1369
1361
1370 self.dataOut.utctime = self.basicHeaderObj.utc + self.basicHeaderObj.miliSecond/1000. + self.profileIndex * self.ippSeconds
1371
1372 self.dataOut.ippSeconds = self.ippSeconds
1362 self.dataOut.ippSeconds = self.ippSeconds
1373
1363
1374 self.dataOut.timeInterval = self.ippSeconds * self.processingHeaderObj.nCohInt
1364 self.dataOut.timeInterval = self.ippSeconds * self.processingHeaderObj.nCohInt
@@ -1384,18 +1374,31 class VoltageReader(JRODataReader):
1384
1374
1385 self.dataOut.code = self.processingHeaderObj.code
1375 self.dataOut.code = self.processingHeaderObj.code
1386
1376
1387 self.profileIndex += 1
1388
1389 self.dataOut.systemHeaderObj = self.systemHeaderObj.copy()
1377 self.dataOut.systemHeaderObj = self.systemHeaderObj.copy()
1390
1378
1391 self.dataOut.radarControllerHeaderObj = self.radarControllerHeaderObj.copy()
1379 self.dataOut.radarControllerHeaderObj = self.radarControllerHeaderObj.copy()
1392
1380
1381 # self.updateDataHeader()
1382
1383 #data es un numpy array de 3 dmensiones (perfiles, alturas y canales)
1384
1385 if self.datablock == None:
1386 self.dataOut.flagNoData = True
1387 return 0
1388
1389 self.dataOut.data = self.datablock[:,self.profileIndex,:]
1390
1391 self.dataOut.utctime = self.basicHeaderObj.utc + self.basicHeaderObj.miliSecond/1000. + self.profileIndex * self.ippSeconds
1392
1393 self.profileIndex += 1
1394
1393 self.dataOut.flagNoData = False
1395 self.dataOut.flagNoData = False
1394
1396
1395 # print self.profileIndex, self.dataOut.utctime
1397 # print self.profileIndex, self.dataOut.utctime
1396 # if self.profileIndex == 800:
1398 # if self.profileIndex == 800:
1397 # a=1
1399 # a=1
1398
1400
1401
1399 return self.dataOut.data
1402 return self.dataOut.data
1400
1403
1401
1404
@@ -21,6 +21,11 class Header:
21 def write():
21 def write():
22 pass
22 pass
23
23
24 def printInfo(self):
25
26 for key in self.__dict__.keys():
27 print "%s = %s" %(key, self.__dict__[key])
28
24 class BasicHeader(Header):
29 class BasicHeader(Header):
25
30
26 size = None
31 size = None
@@ -576,7 +576,7 class SpectraProc(ProcessingUnit):
576 self.dataOut.nIncohInt = 1
576 self.dataOut.nIncohInt = 1
577 self.dataOut.ippSeconds = self.dataIn.ippSeconds
577 self.dataOut.ippSeconds = self.dataIn.ippSeconds
578
578
579 self.dataOut.timeInterval = self.dataIn.timeInterval*self.dataOut.nFFTPoints*self.dataOut.nCohInt*self.dataOut.nIncohInt
579 self.dataOut.timeInterval = self.dataIn.timeInterval*self.dataOut.nFFTPoints*self.dataOut.nIncohInt
580
580
581 def __getFft(self):
581 def __getFft(self):
582 """
582 """
@@ -587,23 +587,9 class SpectraProc(ProcessingUnit):
587 self.dataOut.data_cspc
587 self.dataOut.data_cspc
588 self.dataOut.data_dc
588 self.dataOut.data_dc
589 self.dataOut.heightList
589 self.dataOut.heightList
590 self.dataOut.m_BasicHeader
591 self.dataOut.m_ProcessingHeader
592 self.dataOut.radarControllerHeaderObj
593 self.dataOut.systemHeaderObj
594 self.profIndex
590 self.profIndex
595 self.buffer
591 self.buffer
596 self.dataOut.flagNoData
592 self.dataOut.flagNoData
597 self.dataOut.dtype
598 self.dataOut.nPairs
599 self.dataOut.nChannels
600 self.dataOut.nProfiles
601 self.dataOut.systemHeaderObj.numChannels
602 self.dataOut.m_ProcessingHeader.totalSpectra
603 self.dataOut.m_ProcessingHeader.profilesPerBlock
604 self.dataOut.m_ProcessingHeader.numHeights
605 self.dataOut.m_ProcessingHeader.spectraComb
606 self.dataOut.m_ProcessingHeader.shif_fft
607 """
593 """
608 fft_volt = numpy.fft.fft(self.buffer,axis=1)
594 fft_volt = numpy.fft.fft(self.buffer,axis=1)
609 dc = fft_volt[:,0,:]
595 dc = fft_volt[:,0,:]
General Comments 0
You need to be logged in to leave comments. Login now