|
|
'''
|
|
|
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()
|
|
|
|
|
|
|
|
|
|