From bff21c9ea6b839e6b98992bca82a2162b99db82e 2012-02-09 14:38:24 From: Miguel Valdez Date: 2012-02-09 14:38:24 Subject: [PATCH] Los campos de Author y Id fueron agregados a todos los modulos --- diff --git a/schainpy/Graphics/BasicGraph.py b/schainpy/Graphics/BasicGraph.py deleted file mode 100644 index 90275a4..0000000 --- a/schainpy/Graphics/BasicGraph.py +++ /dev/null @@ -1,362 +0,0 @@ -''' -Created on Feb 7, 2012 - -@author $Author$ -@version $Id$ -''' - -import numpy -import plplot - -def cmap1_init(colormap="gray"): - - ncolor = None - rgb_lvl = None - - # Routine for defining a specific color map 1 in HLS space. - # if gray is true, use basic grayscale variation from half-dark to light. - # otherwise use false color variation from blue (240 deg) to red (360 deg). - - # Independent variable of control points. - i = numpy.array((0., 1.)) - if colormap=="gray": - ncolor = 256 - # Hue for control points. Doesn't matter since saturation is zero. - h = numpy.array((0., 0.)) - # Lightness ranging from half-dark (for interest) to light. - l = numpy.array((0.5, 1.)) - # Gray scale has zero saturation - s = numpy.array((0., 0.)) - - # number of cmap1 colours is 256 in this case. - plplot.plscmap1n(ncolor) - # Interpolate between control points to set up cmap1. - plplot.plscmap1l(0, i, h, l, s) - - return None - - if colormap=="br_green": - ncolor = 256 - # Hue ranges from blue (240 deg) to red (0 or 360 deg) - h = numpy.array((240., 0.)) - # Lightness and saturation are constant (values taken from C example). - l = numpy.array((0.6, 0.6)) - s = numpy.array((0.8, 0.8)) - - # number of cmap1 colours is 256 in this case. - plplot.plscmap1n(ncolor) - # Interpolate between control points to set up cmap1. - plplot.plscmap1l(0, i, h, l, s) - - return None - - if colormap=="tricolor": - ncolor = 3 - # Hue ranges from blue (240 deg) to red (0 or 360 deg) - h = numpy.array((240., 0.)) - # Lightness and saturation are constant (values taken from C example). - l = numpy.array((0.6, 0.6)) - s = numpy.array((0.8, 0.8)) - - # number of cmap1 colours is 256 in this case. - plplot.plscmap1n(ncolor) - # Interpolate between control points to set up cmap1. - plplot.plscmap1l(0, i, h, l, s) - - return None - - if colormap == 'rgb' or colormap == 'rgb666': - - color_sz = 6 - ncolor = color_sz*color_sz*color_sz - pos = numpy.zeros((ncolor)) - r = numpy.zeros((ncolor)) - g = numpy.zeros((ncolor)) - b = numpy.zeros((ncolor)) - ind = 0 - for ri in range(color_sz): - for gi in range(color_sz): - for bi in range(color_sz): - r[ind] = ri/(color_sz-1.0) - g[ind] = gi/(color_sz-1.0) - b[ind] = bi/(color_sz-1.0) - pos[ind] = ind/(ncolor-1.0) - ind += 1 - rgb_lvl = [6,6,6] #Levels for RGB colors - - if colormap == 'rgb676': - ncolor = 6*7*6 - pos = numpy.zeros((ncolor)) - r = numpy.zeros((ncolor)) - g = numpy.zeros((ncolor)) - b = numpy.zeros((ncolor)) - ind = 0 - for ri in range(8): - for gi in range(8): - for bi in range(4): - r[ind] = ri/(6-1.0) - g[ind] = gi/(7-1.0) - b[ind] = bi/(6-1.0) - pos[ind] = ind/(ncolor-1.0) - ind += 1 - rgb_lvl = [6,7,6] #Levels for RGB colors - - if colormap == 'rgb685': - ncolor = 6*8*5 - pos = numpy.zeros((ncolor)) - r = numpy.zeros((ncolor)) - g = numpy.zeros((ncolor)) - b = numpy.zeros((ncolor)) - ind = 0 - for ri in range(8): - for gi in range(8): - for bi in range(4): - r[ind] = ri/(6-1.0) - g[ind] = gi/(8-1.0) - b[ind] = bi/(5-1.0) - pos[ind] = ind/(ncolor-1.0) - ind += 1 - rgb_lvl = [6,8,5] #Levels for RGB colors - - if colormap == 'rgb884': - ncolor = 8*8*4 - pos = numpy.zeros((ncolor)) - r = numpy.zeros((ncolor)) - g = numpy.zeros((ncolor)) - b = numpy.zeros((ncolor)) - ind = 0 - for ri in range(8): - for gi in range(8): - for bi in range(4): - r[ind] = ri/(8-1.0) - g[ind] = gi/(8-1.0) - b[ind] = bi/(4-1.0) - pos[ind] = ind/(ncolor-1.0) - ind += 1 - rgb_lvl = [8,8,4] #Levels for RGB colors - - if ncolor == None: - raise ValueError, "The colormap selected is not valid" - - plplot.plscmap1n(ncolor) - plplot.plscmap1l(1, pos, r, g, b) - - return rgb_lvl - -class BasicGraph: - """ - - """ - - hasRange = False - - xrange = None - yrange = None - zrange = None - - xlabel = None - ylabel = None - title = None - - legends = None - - __name = None - __subpage = None - __szchar = None - - __colormap = None - __colbox = None - __colleg = None - - __xpos = None - __ypos = None - - __xopt = None #"bcnst" - __yopt = None #"bcnstv" - - __xlpos = None - __ylpos = None - - __xrangeIsTime = None - - #Advanced - __xg = None - __yg = None - - def __init__(self): - """ - - """ - pass - - def hasNotXrange(self): - - if self.xrange == None: - return 1 - - return 0 - - def hasNotYrange(self): - - if self.yrange == None: - return 1 - - return 0 - - def hasNotZrange(self): - - if self.zrange == None: - return 1 - - return 0 - def setName(self, name): - self.__name = name - - def setScreenPos(self, xpos, ypos): - self.__xpos = xpos - self.__ypos = ypos - - def setScreenPosbyWidth(self, xoff, yoff, xw, yw): - self.__xpos = [xoff, xoff + xw] - self.__ypos = [yoff, yoff + yw] - - def setSubpage(self, subpage): - self.__subpage = subpage - - def setSzchar(self, szchar): - self.__szchar = szchar - - def setOpt(self, xopt, yopt): - self.__xopt = xopt - self.__yopt = yopt - - def setRanges(self, xrange, yrange, zrange=None): - """ - """ - self.xrange = xrange - - self.yrange = yrange - - if zrange != None: - self.zrange = zrange - - def setColormap(self, colormap=None): - - if colormap == None: - colormap = self.__colormap - - cmap1_init(colormap) - - def plotBox(self): - """ - - """ - plplot.plvpor(self.__xpos[0], self.__xpos[1], self.__ypos[0], self.__ypos[1]) - plplot.plwind(self.xrange[0], self.xrange[1], self.yrange[0], self.yrange[1]) - plplot.plbox(self.__xopt, 0.0, 0, self.__yopt, 0.0, 0) - plplot.pllab(self.xlabel, self.ylabel, self.title) - - def setup(self, title=None, xlabel=None, ylabel=None, colormap=None): - """ - """ - self.title = title - self.xlabel = xlabel - self.ylabel = ylabel - self.__colormap = colormap - - def initSubpage(self): - - if plplot.plgdev() == '': - raise ValueError, "Plot device has not been initialize" - - plplot.pladv(self.__subpage) - plplot.plschr(0.0, self.__szchar) - - if self.__xrangeIsTime: - plplot.pltimefmt("%H:%M") - - self.setColormap() - self.initPlot() - - def initPlot(self): - """ - - """ - if plplot.plgdev() == '': - raise ValueError, "Plot device has not been initialize" - - xrange = self.xrange - if xrange == None: - xrange = [0., 1.] - - yrange = self.yrange - if yrange == None: - yrange = [0., 1.] - - plplot.plvpor(self.__xpos[0], self.__xpos[1], self.__ypos[0], self.__ypos[1]) - plplot.plwind(xrange[0], xrange[1], yrange[0], yrange[1]) - plplot.plbox(self.__xopt, 0.0, 0, self.__yopt, 0.0, 0) - plplot.pllab(self.xlabel, self.ylabel, self.title) - - def colorbarPlot(self): - data = numpy.arange(256) - data = numpy.reshape(data, (1,-1)) - - self.plotBox() - plplot.plimage(data, - self.xrange[0], - self.xrange[1], - self.yrange[0], - self.yrange[1], - 0., - 255., - self.xrange[0], - self.xrange[1], - self.yrange[0], - self.yrange[1],) - - def basicXYPlot(self, x, y): - self.plotBox() - plplot.plline(x, y) - - def basicXYwithErrorPlot(self): - pass - - def basicLineTimePlot(self): - pass - - def basicPcolorPlot(self, data, xmin, xmax, ymin, ymax, zmin, zmax): - """ - """ - - self.plotBox() - plplot.plimage(data, xmin, xmax, ymin, ymax, zmin, zmax, xmin, xmax, ymin, ymax) - - - def __getBoxpltr(self, x, y, deltax=None, deltay=None): - - if not(len(x)>1 and len(y)>1): - raise ValueError, "x axis and y axis are empty" - - if deltax == None: deltax = x[-1] - x[-2] - if deltay == None: deltay = y[-1] - y[-2] - - x1 = numpy.append(x, x[-1] + deltax) - y1 = numpy.append(y, y[-1] + deltay) - - xg = (numpy.multiply.outer(x1, numpy.ones(len(y1)))) - yg = (numpy.multiply.outer(numpy.ones(len(x1)), y1)) - - self.__xg = xg - self.__yg = yg - - def advPcolorPlot(self, data, x, y, zmin=0., zmax=0.): - """ - """ - - if self.__xg == None and self.__yg == None: - self.__getBoxpltr(x, y) - - plplot.plimagefr(data, x[0], x[-1], y[0], y[-1], 0., 0., zmin, zmax, plplot.pltr2, self.__xg, self.__yg) - - diff --git a/schainpy/Graphics/SpectraPlot.py b/schainpy/Graphics/SpectraPlot.py index acf4f7d..9255b6a 100644 --- a/schainpy/Graphics/SpectraPlot.py +++ b/schainpy/Graphics/SpectraPlot.py @@ -8,7 +8,7 @@ Created on Feb 7, 2012 import numpy import plplot -from BasicGraph import * +from BaseGraph import * class Spectrum: @@ -20,17 +20,17 @@ class Spectrum: __xrange = None __yrange = None __zrange = None - specObj = BasicGraph() + baseObj = BaseGraph() def __init__(self): key = "spec" - specObj = BasicGraph() - specObj.setName(key) + baseObj = BaseGraph() + baseObj.setName(key) - self.graphObjDict[key] = specObj + self.graphObjDict[key] = baseObj def setup(self, subpage, title="", xlabel="", ylabel="", colormap="jet", showColorbar=False, showPowerProfile=False): @@ -43,11 +43,11 @@ class Spectrum: xcmapi = xcmapf = 0.; xpowi = xpowf = 0. key = "spec" - specObj = self.graphObjDict[key] - specObj.setSubpage(subpage) - specObj.setSzchar(self.__szchar) - specObj.setOpt("bcnts","bcnts") - specObj.setup(title, + baseObj = self.graphObjDict[key] + baseObj.setSubpage(subpage) + baseObj.setSzchar(self.__szchar) + baseObj.setOpt("bcnts","bcnts") + baseObj.setup(title, xlabel, ylabel, colormap) @@ -55,7 +55,7 @@ class Spectrum: if showColorbar: key = "colorbar" - cmapObj = BasicGraph() + cmapObj = BaseGraph() cmapObj.setName(key) cmapObj.setSubpage(subpage) cmapObj.setSzchar(self.__szchar) @@ -74,7 +74,7 @@ class Spectrum: if showPowerProfile: key = "powerprof" - powObj = BasicGraph() + powObj = BaseGraph() powObj.setName(key) powObj.setSubpage(subpage) powObj.setSzchar(self.__szchar) @@ -95,7 +95,7 @@ class Spectrum: yf = yi + yw xcmapf = xf - specObj.setScreenPos([xi, xf], [yi, yf]) + baseObj.setScreenPos([xi, xf], [yi, yf]) if showColorbar: xcmapi = xf + 0.02 @@ -108,7 +108,7 @@ class Spectrum: powObj.setScreenPos([xpowi, xpowf], [yi, yf]) -# specObj.initSubpage() +# baseObj.initSubpage() # # if showColorbar: # cmapObj.initPlot() @@ -122,8 +122,8 @@ class Spectrum: def setRanges(self, xrange, yrange, zrange): key = "spec" - specObj = self.graphObjDict[key] - specObj.setRanges(xrange, yrange, zrange) + baseObj = self.graphObjDict[key] + baseObj.setRanges(xrange, yrange, zrange) keyList = self.graphObjDict.keys() @@ -140,8 +140,8 @@ class Spectrum: def plotData(self, data , xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None): key = "spec" - specObj = self.graphObjDict[key] - specObj.initSubpage() + baseObj = self.graphObjDict[key] + baseObj.initSubpage() if xmin == None: xmin = 0. @@ -161,10 +161,10 @@ class Spectrum: if zmax == None: zmax = numpy.nanmax(data) - if not(specObj.hasRange): + if not(baseObj.hasRange): self.setRanges([xmin, xmax], [ymin,ymax], [zmin,zmax]) - specObj.basicPcolorPlot(data, xmin, xmax, ymin, ymax, specObj.zrange[0], specObj.zrange[1]) + baseObj.basicPcolorPlot(data, xmin, xmax, ymin, ymax, baseObj.zrange[0], baseObj.zrange[1]) if self.showColorbar: key = "colorbar" @@ -191,7 +191,7 @@ class CrossSpectrum: __xrange = None __yrange = None __zrange = None - m_BasicGraph= BasicGraph() + m_BaseGraph= BaseGraph() def __init__(self): pass @@ -220,13 +220,13 @@ if __name__ == '__main__': data = numpy.random.uniform(-50,50,(nx,ny)) - specObj = Spectrum() - specObj.setup(1, "Spectrum", "Frequency", "Range", "br_green", False, False) - specObj.plotData(data) + baseObj = ColorPlot() + baseObj.setup(1, "Spectrum", "Frequency", "Range", "br_green", False, False) + baseObj.plotData(data) data = numpy.random.uniform(-50,50,(nx,ny)) - spec2Obj = Spectrum() + spec2Obj = ColorPlot() spec2Obj.setup(2, "Spectrum", "Frequency", "Range", "br_green", True, True) spec2Obj.plotData(data) diff --git a/schainpy/Graphics/VoltagePlot.py b/schainpy/Graphics/VoltagePlot.py index 1c7bd04..a858d5d 100644 --- a/schainpy/Graphics/VoltagePlot.py +++ b/schainpy/Graphics/VoltagePlot.py @@ -4,15 +4,93 @@ Created on Feb 7, 2012 @author $Author$ @version $Id$ ''' +import os, sys +import numpy +import plplot +path = os.path.split(os.getcwd())[0] +sys.path.append(path) + +from Graphics.BasicGraph import * +from Model.Voltage import Voltage + +class Osciloscope(): + + graphObjDict = {} + showPower = True + + __szchar = 0.7 + __xrange = None + __yrange = None + __zrange = None + + def __init__(self): + key = "osc" + + baseObj = BasicGraph() + baseObj.setName(key) + + self.graphObjDict[key] = baseObj + + + def setup(self, subpage, title="", xlabel="", ylabel="", colormap="jet", showColorbar=False, showPowerProfile=False): + pass + + def setRanges(self, xrange, yrange, zrange): + pass + + def plotData(self, data , xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None): + pass + + + class VoltagePlot(object): ''' classdocs ''' - - def __init__(self): + __m_Voltage = None + + def __init__(self, m_Voltage): ''' Constructor ''' - pass \ No newline at end of file + self.__m_Voltage = m_Voltage + + def setup(self): + pass + + def addGraph(self, type, xrange=None, yrange=None, zrange=None): + pass + + def plotData(self): + pass + +if __name__ == '__main__': + + import numpy + + plplot.plsetopt("geometry", "%dx%d" %(450*2, 200*2)) + plplot.plsdev("xcairo") + plplot.plscolbg(255,255,255) + plplot.plscol0(1,0,0,0) + plplot.plinit() + plplot.plssub(1, 2) + + nx = 64 + ny = 100 + + data = numpy.random.uniform(-50,50,(nx,ny)) + + baseObj = RTI() + baseObj.setup(1, "Spectrum", "Frequency", "Range", "br_green", False, False) + baseObj.plotData(data) + + data = numpy.random.uniform(-50,50,(nx,ny)) + + base2Obj = RTI() + base2Obj.setup(2, "Spectrum", "Frequency", "Range", "br_green", True, True) + base2Obj.plotData(data) + + plplot.plend() + exit(0) \ No newline at end of file diff --git a/schainpy/IO/Voltage.py b/schainpy/IO/Voltage.py index 42dd16c..0126bac 100644 --- a/schainpy/IO/Voltage.py +++ b/schainpy/IO/Voltage.py @@ -12,13 +12,13 @@ import fnmatch import time import datetime +path = os.path.split(os.getcwd())[0] +sys.path.append(path) + from IO.Header import * from IO.Data import DataReader from IO.Data import DataWriter -path = os.path.split(os.getcwd())[0] -sys.path.append(path) - from Model.Voltage import Voltage class VoltageReader(DataReader): @@ -382,6 +382,7 @@ class VoltageReader(DataReader): print 'Process finished' return None + #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) data = self.__buffer[self.__buffer_id,:,:] time = self.m_BasicHeader.utc + self.__buffer_id*self.__ippSeconds diff --git a/schainpy/Model/Voltage.py b/schainpy/Model/Voltage.py index 11efa4e..06cad9a 100644 --- a/schainpy/Model/Voltage.py +++ b/schainpy/Model/Voltage.py @@ -26,6 +26,7 @@ class Voltage(Data): m_BasicHeader= BasicHeader() + #data es un numpy array de 3 dmensiones (perfiles, alturas y canales) data = None noData = True