@@ -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 + |
|
217 | datatime.append(self.utctime + self.timeInterval) | |
218 |
|
218 | |||
219 | datatime = numpy.array(datatime) |
|
219 | datatime = numpy.array(datatime) | |
220 |
|
220 |
@@ -825,7 +825,15 class JRODataReader(JRODataIO, ProcessingUnit): | |||||
825 | def printTotalBlocks(self): |
|
825 | def printTotalBlocks(self): | |
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): | |
@@ -1338,7 +1346,38 class VoltageReader(JRODataReader): | |||||
1338 |
|
1346 | |||
1339 | if not( self.readNextBlock() ): |
|
1347 | if not( self.readNextBlock() ): | |
1340 | return 0 |
|
1348 | return 0 | |
|
1349 | ||||
|
1350 | self.dataOut.dtype = self.dtype | |||
|
1351 | ||||
|
1352 | self.dataOut.nProfiles = self.processingHeaderObj.profilesPerBlock | |||
|
1353 | ||||
|
1354 | xf = self.processingHeaderObj.firstHeight + self.processingHeaderObj.nHeights*self.processingHeaderObj.deltaHeight | |||
|
1355 | ||||
|
1356 | self.dataOut.heightList = numpy.arange(self.processingHeaderObj.firstHeight, xf, self.processingHeaderObj.deltaHeight) | |||
|
1357 | ||||
|
1358 | self.dataOut.channelList = range(self.systemHeaderObj.nChannels) | |||
|
1359 | ||||
|
1360 | self.dataOut.flagTimeBlock = self.flagTimeBlock | |||
|
1361 | ||||
|
1362 | self.dataOut.ippSeconds = self.ippSeconds | |||
|
1363 | ||||
|
1364 | self.dataOut.timeInterval = self.ippSeconds * self.processingHeaderObj.nCohInt | |||
|
1365 | ||||
|
1366 | self.dataOut.nCohInt = self.processingHeaderObj.nCohInt | |||
1341 |
|
1367 | |||
|
1368 | self.dataOut.flagShiftFFT = False | |||
|
1369 | ||||
|
1370 | if self.processingHeaderObj.code != None: | |||
|
1371 | self.dataOut.nCode = self.processingHeaderObj.nCode | |||
|
1372 | ||||
|
1373 | self.dataOut.nBaud = self.processingHeaderObj.nBaud | |||
|
1374 | ||||
|
1375 | self.dataOut.code = self.processingHeaderObj.code | |||
|
1376 | ||||
|
1377 | self.dataOut.systemHeaderObj = self.systemHeaderObj.copy() | |||
|
1378 | ||||
|
1379 | self.dataOut.radarControllerHeaderObj = self.radarControllerHeaderObj.copy() | |||
|
1380 | ||||
1342 | # self.updateDataHeader() |
|
1381 | # self.updateDataHeader() | |
1343 |
|
1382 | |||
1344 | #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) |
|
1383 | #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) | |
@@ -1349,53 +1388,17 class VoltageReader(JRODataReader): | |||||
1349 |
|
1388 | |||
1350 | self.dataOut.data = self.datablock[:,self.profileIndex,:] |
|
1389 | self.dataOut.data = self.datablock[:,self.profileIndex,:] | |
1351 |
|
1390 | |||
1352 | self.dataOut.dtype = self.dtype |
|
|||
1353 |
|
||||
1354 | # self.dataOut.nChannels = self.systemHeaderObj.nChannels |
|
|||
1355 |
|
||||
1356 | # self.dataOut.nHeights = self.processingHeaderObj.nHeights |
|
|||
1357 |
|
||||
1358 | self.dataOut.nProfiles = self.processingHeaderObj.profilesPerBlock |
|
|||
1359 |
|
||||
1360 | xf = self.processingHeaderObj.firstHeight + self.processingHeaderObj.nHeights*self.processingHeaderObj.deltaHeight |
|
|||
1361 |
|
||||
1362 | self.dataOut.heightList = numpy.arange(self.processingHeaderObj.firstHeight, xf, self.processingHeaderObj.deltaHeight) |
|
|||
1363 |
|
||||
1364 | self.dataOut.channelList = range(self.systemHeaderObj.nChannels) |
|
|||
1365 |
|
||||
1366 | # self.dataOut.channelIndexList = range(self.systemHeaderObj.nChannels) |
|
|||
1367 |
|
||||
1368 | self.dataOut.flagTimeBlock = self.flagTimeBlock |
|
|||
1369 |
|
||||
1370 | self.dataOut.utctime = self.basicHeaderObj.utc + self.basicHeaderObj.miliSecond/1000. + self.profileIndex * self.ippSeconds |
|
1391 | self.dataOut.utctime = self.basicHeaderObj.utc + self.basicHeaderObj.miliSecond/1000. + self.profileIndex * self.ippSeconds | |
1371 |
|
1392 | |||
1372 | self.dataOut.ippSeconds = self.ippSeconds |
|
|||
1373 |
|
||||
1374 | self.dataOut.timeInterval = self.ippSeconds * self.processingHeaderObj.nCohInt |
|
|||
1375 |
|
||||
1376 | self.dataOut.nCohInt = self.processingHeaderObj.nCohInt |
|
|||
1377 |
|
||||
1378 | self.dataOut.flagShiftFFT = False |
|
|||
1379 |
|
||||
1380 | if self.processingHeaderObj.code != None: |
|
|||
1381 | self.dataOut.nCode = self.processingHeaderObj.nCode |
|
|||
1382 |
|
||||
1383 | self.dataOut.nBaud = self.processingHeaderObj.nBaud |
|
|||
1384 |
|
||||
1385 | self.dataOut.code = self.processingHeaderObj.code |
|
|||
1386 |
|
||||
1387 | self.profileIndex += 1 |
|
1393 | self.profileIndex += 1 | |
1388 |
|
1394 | |||
1389 | self.dataOut.systemHeaderObj = self.systemHeaderObj.copy() |
|
|||
1390 |
|
||||
1391 | self.dataOut.radarControllerHeaderObj = self.radarControllerHeaderObj.copy() |
|
|||
1392 |
|
||||
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 |
@@ -20,6 +20,11 class Header: | |||||
20 |
|
20 | |||
21 | def write(): |
|
21 | def write(): | |
22 | pass |
|
22 | pass | |
|
23 | ||||
|
24 | def printInfo(self): | |||
|
25 | ||||
|
26 | for key in self.__dict__.keys(): | |||
|
27 | print "%s = %s" %(key, self.__dict__[key]) | |||
23 |
|
28 | |||
24 | class BasicHeader(Header): |
|
29 | class BasicHeader(Header): | |
25 |
|
30 |
@@ -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. |
|
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