##// END OF EJS Templates
Se agrega codigo para refresco de datos en ploteo de perfiles en Spectra Plot
Se agrega codigo para refresco de datos en ploteo de perfiles en Spectra Plot

File last commit:

r108:181a583e8f11
r109:e0bd0a5e21f6
Show More
SpectraPlot.py
119 lines | 3.9 KiB | text/x-python | PythonLexer
'''
Created on Feb 7, 2012
@author $Author$
@version $Id$
'''
import numpy
import os
import sys
import plplot
import datetime
path = os.path.split(os.getcwd())[0]
sys.path.append(path)
from Graphics.BaseGraph import *
from Model.Spectra import Spectra
class Spectrum:
colorplotObj = None
def __init__(self,Spectra, index):
self.__isPlotConfig = False
self.__isPlotIni = False
self.__xrange = None
self.__yrange = None
self.nGraphs = 0
self.indexPlot = index
self.spectraObj = Spectra
def setup(self,indexPlot,nsubplot,winTitle='',colormap="br_green",showColorbar=False,showPowerProfile=False,XAxisAsTime=False):
self.colorplotObj = SpectraPlot(indexPlot,nsubplot,winTitle,colormap,showColorbar,showPowerProfile,XAxisAsTime)
def initPlot(self,xmin,xmax,ymin,ymax,zmin,zmax,titleList,xlabelList,ylabelList):
nsubplot = self.spectraObj.nChannels
for index in range(nsubplot):
title = titleList[index]
xlabel = xlabelList[index]
ylabel = ylabelList[index]
subplot = index
self.colorplotObj.setup(subplot+1,xmin,xmax,ymin,ymax,zmin,zmax,title,xlabel,ylabel)
def plotData(self,
xmin=None,
xmax=None,
ymin=None,
ymax=None,
zmin=None,
zmax=None,
titleList=None,
xlabelList=None,
ylabelList=None,
winTitle='',
colormap = "br_green",
showColorbar = True,
showPowerProfile = True,
XAxisAsTime = False):
databuffer = 10.*numpy.log10(self.spectraObj.data_spc)
noise = 10.*numpy.log10(self.spectraObj.noise)
nsubplot = self.spectraObj.nChannels
nsubplot, nX, nY = numpy.shape(databuffer)
x = numpy.arange(nX)
y = self.spectraObj.heightList
indexPlot = self.indexPlot
if not(self.__isPlotConfig):
self.setup(indexPlot,nsubplot,winTitle,colormap,showColorbar,showPowerProfile,XAxisAsTime)
self.__isPlotConfig = True
if not(self.__isPlotIni):
if titleList == None:
titleList = []
for i in range(nsubplot):
titleList.append("Channel: %d - Noise: %.2f" %(i, noise[i]))
if xlabelList == None:
xlabelList = []
for i in range(nsubplot):
xlabelList.append("")
if ylabelList == None:
ylabelList = []
for i in range(nsubplot):
ylabelList.append("Range (Km)")
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 = 0
if zmax == None: zmax = 120
self.initPlot(xmin,xmax,ymin,ymax,zmin,zmax,titleList,xlabelList,ylabelList)
self.__isPlotIni = True
self.colorplotObj.setFigure(indexPlot)
thisDatetime = datetime.datetime.fromtimestamp(self.spectraObj.m_BasicHeader.utc)
pltitle = "Self Spectra - Date: %s" %(thisDatetime.strftime("%d-%b-%Y %H:%M:%S"))
self.colorplotObj.printTitle(pltitle) #setPlTitle(pltitle)
for index in range(nsubplot):
data = databuffer[index,:,:]
subtitle = "Channel: %d - Noise: %.2f" %(index, noise[index])
self.colorplotObj.plot(index+1,x,y,data,subtitle)
self.colorplotObj.refresh()