##// END OF EJS Templates
AMISR Reader integration with Signal Chain Blocks, this time just only for Voltages to Profile Selection and Plotting Scope(Power,IQ) and Power Profile(dB). There is thwo python scripts as experiment's test.
AMISR Reader integration with Signal Chain Blocks, this time just only for Voltages to Profile Selection and Plotting Scope(Power,IQ) and Power Profile(dB). There is thwo python scripts as experiment's test.

File last commit:

r169:661bb8af254a
r474:e3c42f4268a9
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