|
|
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
|