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