##// END OF EJS Templates
Desplazamiento automatico de los puntos de FFT en el modulo de lectura de espectros.
Desplazamiento automatico de los puntos de FFT en el modulo de lectura de espectros.

File last commit:

r26:0d3203b6912d
r26:0d3203b6912d
Show More
SpectraPlot.py
155 lines | 4.7 KiB | text/x-python | PythonLexer
Daniel Valdez
Fijando variables svn:keywords Author Id
r16 '''
Created on Feb 7, 2012
@author $Author$
@version $Id$
'''
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 import os, sys
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10 import numpy
import plplot
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 path = os.path.split(os.getcwd())[0]
sys.path.append(path)
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 from Graphics.BaseGraph import *
from Model.Spectra import Spectra
Miguel Valdez
r11
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 class Spectrum():
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 def __init__(self, Spectra):
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
"""
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 Inputs:
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 type: "power" ->> Potencia
"iq" ->> Real + Imaginario
"""
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.__isPlotConfig = False
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.__isPlotIni = False
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.__xrange = None
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.__yrange = None
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.nGraphs = 0
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.graphObjList = []
self.m_Spectra = Spectra
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 def __addGraph(self, subpage, title="", xlabel="", ylabel="", showColorbar=False, showPowerProfile=True, XAxisAsTime=False):
graphObj = ColorPlot()
graphObj.setup(subpage,
title,
xlabel,
ylabel,
showColorbar=showColorbar,
showPowerProfile=showPowerProfile,
XAxisAsTime=XAxisAsTime)
self.graphObjList.append(graphObj)
def setup(self, titleList=None, xlabelList=None, ylabelList=None, showColorbar=False, showPowerProfile=True, XAxisAsTime=False):
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 nChan = int(self.m_Spectra.m_SystemHeader.numChannels)
Miguel Valdez
Desplazamiento automatico de los puntos de FFT en el modulo de lectura de espectros.
r26 channels = range(nChan)
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Desplazamiento automatico de los puntos de FFT en el modulo de lectura de espectros.
r26 myXlabel = "Radial Velocity (m/s)"
myYlabel = "Range (km)"
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Desplazamiento automatico de los puntos de FFT en el modulo de lectura de espectros.
r26 for i in channels:
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 if titleList != None:
myTitle = titleList[i]
myXlabel = xlabelList[i]
myYlabel = ylabelList[i]
Miguel Valdez
Desplazamiento automatico de los puntos de FFT en el modulo de lectura de espectros.
r26
if self.m_Spectra.noise != None:
noise = '%4.2fdB' %(self.m_Spectra.noise[i])
else:
noise = '--'
myTitle = "Channel: %d - Noise: %s" %(i, noise)
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25
self.__addGraph(i+1,
title=myTitle,
xlabel=myXlabel,
ylabel=myYlabel,
showColorbar=showColorbar,
showPowerProfile=showPowerProfile,
XAxisAsTime=XAxisAsTime)
self.nGraphs = nChan
self.__isPlotConfig = True
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 def iniPlot(self):
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 nx = int(numpy.sqrt(self.nGraphs)+1)
#ny = int(self.nGraphs/nx)
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Desplazamiento automatico de los puntos de FFT en el modulo de lectura de espectros.
r26 plplot.plsetopt("geometry", "%dx%d" %(300*nx, 240*nx))
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 plplot.plsdev("xcairo")
plplot.plscolbg(255,255,255)
plplot.plscol0(1,0,0,0)
plplot.plinit()
plplot.plspause(False)
plplot.pladv(0)
plplot.plssub(nx, nx)
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.__isPlotIni = True
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 def plotData(self, xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None, titleList=None, xlabelList=None, ylabelList=None, showColorbar=False, showPowerProfile=True, XAxisAsTime=False):
if not(self.__isPlotConfig):
self.setup(titleList,
xlabelList,
ylabelList,
showColorbar,
showPowerProfile,
XAxisAsTime)
if not(self.__isPlotIni):
self.iniPlot()
Miguel Valdez
Desplazamiento automatico de los puntos de FFT en el modulo de lectura de espectros.
r26 data = 10.*numpy.log10(self.m_Spectra.data_spc)
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25
nX, nY, nChan = numpy.shape(data)
x = numpy.arange(nX)
y = self.m_Spectra.heights
if xmin == None: xmin = x[0]
if xmax == None: xmax = x[-1]
if ymin == None: ymin = y[0]
if ymax == None: ymax = y[-1]
if zmin == None: zmin = numpy.nanmin(abs(data))
if zmax == None: zmax = numpy.nanmax(abs(data))
plplot.plbop()
for i in range(self.nGraphs):
self.graphObjList[i].iniSubpage()
Miguel Valdez
Desplazamiento automatico de los puntos de FFT en el modulo de lectura de espectros.
r26 self.graphObjList[i].plotData(data[i,:,:],
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 x,
y,
xmin=xmin,
xmax=xmax,
ymin=ymin,
ymax=ymax,
zmin=zmin,
zmax=zmax)
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25
plplot.plflush()
plplot.pleop()
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 def end(self):
plplot.plend()
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
if __name__ == '__main__':
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 pass