##// END OF EJS Templates
jroproc_voltage.py
avaldez -
r1271:552e83f0cd76
parent child
Show More
@@ -1342,12 +1342,12 class SSheightProfiles(Operation):
1342 dataOut.step = self.step
1342 dataOut.step = self.step
1343
1343
1344 class voltACFLags(Operation):
1344 class voltACFLags(Operation):
1345
1345
1346 data_acf = None
1346 data_acf = None
1347 lags = None
1347 lags = None
1348 mode = None
1348 mode = None
1349 fullBuffer = None
1349 fullBuffer = None
1350 pairsList = None
1350 pairsList = None
1351 tmp = None
1351 tmp = None
1352
1352
1353 def __init__(self, **kwargs):
1353 def __init__(self, **kwargs):
@@ -1355,120 +1355,120 class voltACFLags(Operation):
1355 self.isConfig = False
1355 self.isConfig = False
1356
1356
1357 def setup(self,dataOut ,lags = None,mode =None, fullBuffer= None ,pairsList = None,nAvg = 1):
1357 def setup(self,dataOut ,lags = None,mode =None, fullBuffer= None ,pairsList = None,nAvg = 1):
1358
1358
1359 self.lags = lags
1359 self.lags = lags
1360 self.mode = mode
1360 self.mode = mode
1361 self.fullBuffer= fullBuffer
1361 self.fullBuffer= fullBuffer
1362 self.nAvg = nAvg
1362 self.nAvg = nAvg
1363 nChannels = dataOut.nChannels
1363 nChannels = dataOut.nChannels
1364 nProfiles = dataOut.nProfiles
1364 nProfiles = dataOut.nProfiles
1365 nHeights = dataOut.nHeights
1365 nHeights = dataOut.nHeights
1366 self.__nProfiles = dataOut.nProfiles
1366 self.__nProfiles = dataOut.nProfiles
1367 self.__nHeis = dataOut.nHeights
1367 self.__nHeis = dataOut.nHeights
1368
1368
1369 if mode == 'time':
1369 if mode == 'time':
1370 print "Mode lags equal time for default."
1370 print "Mode lags equal time for default."
1371 else:
1371 else:
1372 print "Mode lags equal height."
1372 print "Mode lags equal height."
1373
1373
1374 if pairsList == None:
1374 if pairsList == None:
1375 print "Pairs list selected by default (1,0)"
1375 print "Pairs list selected by default (1,0)"
1376 pairsList = [(0,1)]
1376 pairsList = [(0,1)]
1377 else:
1377 pairList= pairsList
1378 pairList= pairsList
1378
1379
1379 if lags == None:
1380 if lags == None:
1381 if mode=='time':
1380 if mode=='time':
1382 self.lags = numpy.arange(0,nProfiles)# -nProfiles+1, nProfiles
1381 self.lags = numpy.arange(0,nProfiles)# -nProfiles+1, nProfiles
1383 print "self.lags", len(self.lags)
1382 print "self.lags", len(self.lags)
1384 if mode=='height':
1383 if mode=='height':
1385 self.lags = numpy.arange(0,nHeights)# -nHeights+1, nHeights
1384 self.lags = numpy.arange(0,nHeights)# -nHeights+1, nHeights
1386
1385
1387 if fullBuffer:
1386 if fullBuffer:
1388 self.tmp = numpy.zeros((len(pairsList), len(self.lags), nProfiles, nHeights), dtype = 'complex')*numpy.nan
1387 self.tmp = numpy.zeros((len(pairsList), len(self.lags), nProfiles, nHeights), dtype = 'complex')*numpy.nan
1389 elif mode =='time':
1388 elif mode =='time':
1390 self.tmp = numpy.zeros((len(pairsList), len(self.lags), nHeights),dtype='complex')
1389 self.tmp = numpy.zeros((len(pairsList), len(self.lags), nHeights),dtype='complex')
1391 elif mode =='height':
1390 elif mode =='height':
1392 self.tmp = numpy.zeros(len(pairsList), (len(self.lags), nProfiles),dtype='complex')
1391 self.tmp = numpy.zeros(len(pairsList), (len(self.lags), nProfiles),dtype='complex')
1393
1392
1394 print "lags", len(self.lags)
1393 print "lags", len(self.lags)
1395 print "mode",self.mode
1394 print "mode",self.mode
1396 print "nChannels", nChannels
1395 print "nChannels", nChannels
1397 print "nProfiles", nProfiles
1396 print "nProfiles", nProfiles
1398 print "nHeights" , nHeights
1397 print "nHeights" , nHeights
1399 print "pairsList", pairsList
1398 print "pairsList", pairsList
1400 print "fullBuffer", fullBuffer
1399 print "fullBuffer", fullBuffer
1401 #print "type(pairsList)",type(pairsList)
1400 #print "type(pairsList)",type(pairsList)
1402 print "tmp.shape",self.tmp.shape
1401 print "tmp.shape",self.tmp.shape
1402
1403
1403
1404 def run(self, dataOut, lags =None,mode ='time',fullBuffer= False ,pairsList = None,nAvg = 1):
1404 def run(self, dataOut, lags =None,mode ='time',fullBuffer= False ,pairsList = None,nAvg = 1):
1405
1405
1406 dataOut.flagNoData = True
1406 dataOut.flagNoData = True
1407
1407
1408 if not self.isConfig:
1408 if not self.isConfig:
1409 self.setup(dataOut, lags = lags,mode = mode, fullBuffer= fullBuffer ,pairsList = pairsList,nAvg=nAvg)
1409 self.setup(dataOut, lags = lags,mode = mode, fullBuffer= fullBuffer ,pairsList = pairsList,nAvg=nAvg)
1410 self.isConfig = True
1410 self.isConfig = True
1411
1411
1412 if dataOut.type == "Voltage":
1412 if dataOut.type == "Voltage":
1413
1413
1414 data_pre = dataOut.data #data
1414 data_pre = dataOut.data #data
1415
1415
1416
1416
1417 # Here is the loop :D
1417 # Here is the loop :D
1418 for l in range(len(pairsList)):
1418 for l in range(len(pairsList)):
1419 ch0 = pairsList[l][0]
1419 ch0 = pairsList[l][0]
1420 ch1 = pairsList[l][1]
1420 ch1 = pairsList[l][1]
1421
1421
1422 for i in range(len(self.lags)):
1422 for i in range(len(self.lags)):
1423 idx = self.lags[i]
1423 idx = self.lags[i]
1424 if self.mode == 'time':
1424 if self.mode == 'time':
1425 acf0 = data_pre[ch0,:self.__nProfiles-idx,:]*numpy.conj(data_pre[ch1,idx:,:]) # pair,lag,height
1425 acf0 = data_pre[ch0,:self.__nProfiles-idx,:]*numpy.conj(data_pre[ch1,idx:,:]) # pair,lag,height
1426 else:
1426 else:
1427 acf0 = data_pre[ch0,:,:self.__nHeights-idx]*numpy.conj(data_pre[ch1,:,idx:]) # pair,lag,profile
1427 acf0 = data_pre[ch0,:,:self.__nHeights-idx]*numpy.conj(data_pre[ch1,:,idx:]) # pair,lag,profile
1428
1428
1429 if self.fullBuffer:
1429 if self.fullBuffer:
1430 self.tmp[l,i,:acf0.shape[0],:]= acf0
1430 self.tmp[l,i,:acf0.shape[0],:]= acf0
1431 else:
1431 else:
1432 self.tmp[l,i,:]= numpy.sum(acf0,axis=0)
1432 self.tmp[l,i,:]= numpy.sum(acf0,axis=0)
1433
1433
1434 if self.fullBuffer:
1434 if self.fullBuffer:
1435
1435
1436 self.tmp = numpy.sum(numpy.reshape(self.tmp,(self.tmp.shape[0],self.tmp.shape[1],self.tmp.shape[2]/self.nAvg,self.nAvg,self.tmp.shape[3])),axis=3)
1436 self.tmp = numpy.sum(numpy.reshape(self.tmp,(self.tmp.shape[0],self.tmp.shape[1],self.tmp.shape[2]/self.nAvg,self.nAvg,self.tmp.shape[3])),axis=3)
1437 dataOut.nAvg = self.nAvg
1437 dataOut.nAvg = self.nAvg
1438
1438
1439 if self.mode == 'time':
1439 if self.mode == 'time':
1440 delta = dataOut.ippSeconds*dataOut.nCohInt
1440 delta = dataOut.ippSeconds*dataOut.nCohInt
1441 else:
1441 else:
1442 delta = dataOut.heightList[1] - dataOut.heightList[0]
1442 delta = dataOut.heightList[1] - dataOut.heightList[0]
1443
1443
1444 shape= self.tmp.shape # mode time
1444 shape= self.tmp.shape # mode time
1445 # Normalizando
1445 # Normalizando
1446 for i in range(len(pairsList)):
1446 for i in range(len(pairsList)):
1447 for j in range(shape[2]):
1447 for j in range(shape[2]):
1448 self.tmp[i,:,j]= self.tmp[i,:,j].real / numpy.max(numpy.abs(self.tmp[i,:,j]))
1448 self.tmp[i,:,j]= self.tmp[i,:,j].real / numpy.max(numpy.abs(self.tmp[i,:,j]))
1449
1449
1450
1450
1451 #import matplotlib.pyplot as plt
1451 #import matplotlib.pyplot as plt
1452 #print "test",self.tmp.shape
1452 #print "test",self.tmp.shape
1453 #print self.tmp[0,0,0]
1453 #print self.tmp[0,0,0]
1454 #print numpy.max(numpy.abs(self.tmp[0,:,0]))
1454 #print numpy.max(numpy.abs(self.tmp[0,:,0]))
1455 #acf_tmp=self.tmp[0,:,100].real/numpy.max(numpy.abs(self.tmp[0,:,100]))
1455 #acf_tmp=self.tmp[0,:,100].real/numpy.max(numpy.abs(self.tmp[0,:,100]))
1456 #print acf_tmp
1456 #print acf_tmp
1457 #plt.plot(acf_tmp)
1457 #plt.plot(acf_tmp)
1458 #plt.show()
1458 #plt.show()
1459 #import time
1459 #import time
1460 #time.sleep(20)
1460 #time.sleep(20)
1461
1461
1462 dataOut.data = self.tmp
1462 dataOut.data = self.tmp
1463 dataOut.mode = self.mode
1463 dataOut.mode = self.mode
1464 dataOut.nLags = len(self.lags)
1464 dataOut.nLags = len(self.lags)
1465 dataOut.nProfiles = len(self.lags)
1465 dataOut.nProfiles = len(self.lags)
1466 dataOut.pairsList = pairsList
1466 dataOut.pairsList = pairsList
1467 dataOut.nPairs = len(pairsList)
1467 dataOut.nPairs = len(pairsList)
1468 dataOut.lagRange = numpy.array(self.lags)*delta
1468 dataOut.lagRange = numpy.array(self.lags)*delta
1469 dataOut.flagDataAsBlock = True
1469 dataOut.flagDataAsBlock = True
1470 dataOut.flagNoData = False
1470 dataOut.flagNoData = False
1471
1471
1472 import time
1472 import time
1473 #################################################
1473 #################################################
1474
1474
General Comments 0
You need to be logged in to leave comments. Login now