##// END OF EJS Templates
Timezone is taken from data and not from PC
Timezone is taken from data and not from PC

File last commit:

r169:661bb8af254a
r565:9a975da57daf
Show More
SpectraPlot2.py
171 lines | 4.6 KiB | text/x-python | PythonLexer
import numpy
import sys
import schainPlot
class RTIFigure(schainPlot.Figure):
__driverObj = None
__isDriverOpen = False
__isFigureOpen = False
__isConfig = False
__xw = None
__yw = None
xmin = None
xmax = None
minvalue = None
maxvalue = None
id = None
nframes = None
wintitle = wintitle
colormap = None
driver = None
overplot = None
frameObjList = []
def __init__(self, id, wintitle, xw=600, yw=800, overplot=0, driver=None, colormap='br_green', *showGraphs):
self.id = id
self.wintitle = wintitle
self.colormap = colormap
self.driver = driver
self.overplot = overplot
self.showGraphs = showGraphs
showColorbar = showGraphs[0]
showPowerprofile = showGraphs[1]
self.__driverObj = Driver(id, wintitle,xw,yw,overplot,driver,colormap,showColorbar,showPowerprofile)
def __openDriver(self):
self.__driverObj.openDriver(self.id, self.wintitle, self.xw, self.yw)
def __openFigure(self):
nrows, ncolumns = self.getSubplots()
self.__driverObj.openFigure()
self.__driverObj.setSubPlots(nrows, ncolumns)
def __isOutOfXRange(self, x):
pass
def __changeXRange(self, x):
pass
def __createFrames(self):
for frame in range(self.nframes):
frameObj = Frame(idframe = frame,
showGraph1 = self.showGraph1,
showGraph2 = self.showGraph2
)
self.frameObjList.append(frameObj)
def plot1DArray(self, data1D, x=None, channelList=None, xmin=None, xmax=None, minvalue=None, maxvlaue=None, save=False, gpath='./'):
nx, ny = data1D.shape
if channelList == None:
chanellList = range(nx)
if x == None:
x = numpy.arange(data1D.size)
if not(self.__isDriverOpen):
self.__openDriver()
self.__isDriverOpen = True
if not(self.__isConfig):
if self.xmin == None: xmin = numpy.min(x)
if self.xmax == None: xmax = numpy.max(x)
if self.minvalue == None: minvalue = numpy.min(data1D)
if self.maxvalue == None: maxvalue = numpy.max(data1D)
self.__createFrames()
self.__isConfig = True
if not(self.__isOutOfXRange(x)):
self.__changeXRange(x)
if self.__isFigureOpen:
self.__driverObj.closePage()
self.__isFigureOpen = False
if not(self.__isFigureOpen):
self.__openFigure()
for channel in channelList:
frameObj = self.frameObjList[channel]
frameObj.init(xmin=xmin,
xmax=xmax,
minvalue=minvalue,
maxvalue=maxvalue)
self.__isFigureOpen = True
for channel in channelList:
dataCh = data1D[channel]
frameObj = self.frameObjList[channel]
frameObj.clearData()
frameObj.plot(dataCh)
frameObj.refresh()
if not(self.overplot):
self.__driverObj.closeFigure()
self.__isFigureOpen = False
def plot2DArray(self, x, y, data2D, xmin=None, xmax=None, ymin=None, ymax=None, minvalue=None, maxvalue=None, save=False, gpath='./'):
if not(self.__isCOpen):
self.__createFrames()
self.__openFigure()
self.__isOpen = True
if not(self.__isConfig):
self.setRange(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, minvalue=minvalue, maxvalue=maxvalue)
self.__isConfig = True
for channel in channelList:
dataCh = dataArray[channel]
frameObj = frameObjList[channel]
frameObj.plot(dataCh)
def saveFigure(self, filename):
pass
def getSubplots(self):
raise ValueError, ''
class RTIFrame(schainPlot.Frame):
def __init__(self):
pass
def setup(self):
pass
class RTIPlot(schainPlot.Plot):
def __init__(self):
pass
def setup(self):
pass