##// END OF EJS Templates
Se obvia el uso del atributo Noise para los graficos
Miguel Valdez -
r54:adb44444bc10
parent child
Show More
@@ -1,173 +1,173
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author $Author$
4 @author $Author$
5 @version $Id$
5 @version $Id$
6 '''
6 '''
7
7
8 import os, sys
8 import os, sys
9 import numpy
9 import numpy
10 import datetime
10 import datetime
11 import plplot
11 import plplot
12
12
13 path = os.path.split(os.getcwd())[0]
13 path = os.path.split(os.getcwd())[0]
14 sys.path.append(path)
14 sys.path.append(path)
15
15
16 from Graphics.BaseGraph import *
16 from Graphics.BaseGraph import *
17 from Model.Spectra import Spectra
17 from Model.Spectra import Spectra
18
18
19 class Spectrum():
19 class Spectrum():
20
20
21 def __init__(self, Spectra, index=0):
21 def __init__(self, Spectra, index=0):
22
22
23 """
23 """
24
24
25 Inputs:
25 Inputs:
26
26
27 type: "power" ->> Potencia
27 type: "power" ->> Potencia
28 "iq" ->> Real + Imaginario
28 "iq" ->> Real + Imaginario
29 """
29 """
30
30
31 self.__isPlotConfig = False
31 self.__isPlotConfig = False
32
32
33 self.__isPlotIni = False
33 self.__isPlotIni = False
34
34
35 self.__xrange = None
35 self.__xrange = None
36
36
37 self.__yrange = None
37 self.__yrange = None
38
38
39 self.nGraphs = 0
39 self.nGraphs = 0
40
40
41 self.indexPlot = index
41 self.indexPlot = index
42
42
43 self.graphObjList = []
43 self.graphObjList = []
44
44
45 self.m_Spectra = Spectra
45 self.m_Spectra = Spectra
46
46
47
47
48 def __addGraph(self, subpage, title="", xlabel="", ylabel="", showColorbar=False, showPowerProfile=True, XAxisAsTime=False):
48 def __addGraph(self, subpage, title="", xlabel="", ylabel="", showColorbar=False, showPowerProfile=True, XAxisAsTime=False):
49
49
50 graphObj = ColorPlot()
50 graphObj = ColorPlot()
51 graphObj.setup(subpage,
51 graphObj.setup(subpage,
52 title,
52 title,
53 xlabel,
53 xlabel,
54 ylabel,
54 ylabel,
55 showColorbar=showColorbar,
55 showColorbar=showColorbar,
56 showPowerProfile=showPowerProfile,
56 showPowerProfile=showPowerProfile,
57 XAxisAsTime=XAxisAsTime)
57 XAxisAsTime=XAxisAsTime)
58
58
59 self.graphObjList.append(graphObj)
59 self.graphObjList.append(graphObj)
60
60
61
61
62 def setup(self, titleList=None, xlabelList=None, ylabelList=None, showColorbar=False, showPowerProfile=True, XAxisAsTime=False):
62 def setup(self, titleList=None, xlabelList=None, ylabelList=None, showColorbar=False, showPowerProfile=True, XAxisAsTime=False):
63
63
64 nChan = int(self.m_Spectra.m_SystemHeader.numChannels)
64 nChan = int(self.m_Spectra.m_SystemHeader.numChannels)
65 channels = range(nChan)
65 channels = range(nChan)
66
66
67 myXlabel = "Radial Velocity (m/s)"
67 myXlabel = "Radial Velocity (m/s)"
68 myYlabel = "Range (km)"
68 myYlabel = "Range (km)"
69
69
70 for i in channels:
70 for i in channels:
71 if titleList != None:
71 if titleList != None:
72 myTitle = titleList[i]
72 myTitle = titleList[i]
73 myXlabel = xlabelList[i]
73 myXlabel = xlabelList[i]
74 myYlabel = ylabelList[i]
74 myYlabel = ylabelList[i]
75
75
76 if self.m_Spectra.noise != None:
76 # if self.m_Spectra.m_NoiseObj != None:
77 noise = '%4.2fdB' %(self.m_Spectra.noise[i])
77 # noise = '%4.2fdB' %(self.m_Spectra.m_NoiseObj[i])
78 else:
78 # else:
79 noise = '--'
79 noise = '--'
80
80
81 myTitle = "Channel: %d - Noise: %s" %(i, noise)
81 myTitle = "Channel: %d - Noise: %s" %(i, noise)
82
82
83 self.__addGraph(i+1,
83 self.__addGraph(i+1,
84 title=myTitle,
84 title=myTitle,
85 xlabel=myXlabel,
85 xlabel=myXlabel,
86 ylabel=myYlabel,
86 ylabel=myYlabel,
87 showColorbar=showColorbar,
87 showColorbar=showColorbar,
88 showPowerProfile=showPowerProfile,
88 showPowerProfile=showPowerProfile,
89 XAxisAsTime=XAxisAsTime)
89 XAxisAsTime=XAxisAsTime)
90
90
91 self.nGraphs = nChan
91 self.nGraphs = nChan
92 self.__isPlotConfig = True
92 self.__isPlotConfig = True
93
93
94 def iniPlot(self):
94 def iniPlot(self):
95
95
96 nx = int(numpy.sqrt(self.nGraphs)+1)
96 nx = int(numpy.sqrt(self.nGraphs)+1)
97 #ny = int(self.nGraphs/nx)
97 #ny = int(self.nGraphs/nx)
98
98
99 plplot.plsstrm(self.indexPlot)
99 plplot.plsstrm(self.indexPlot)
100 plplot.plsetopt("geometry", "%dx%d" %(300*nx, 240*nx))
100 plplot.plsetopt("geometry", "%dx%d" %(300*nx, 240*nx))
101 plplot.plsdev("xwin")
101 plplot.plsdev("xwin")
102 plplot.plscolbg(255,255,255)
102 plplot.plscolbg(255,255,255)
103 plplot.plscol0(1,0,0,0)
103 plplot.plscol0(1,0,0,0)
104 plplot.plinit()
104 plplot.plinit()
105 plplot.plspause(False)
105 plplot.plspause(False)
106 plplot.pladv(0)
106 plplot.pladv(0)
107 plplot.plssub(nx, nx)
107 plplot.plssub(nx, nx)
108
108
109 self.__nx = nx
109 self.__nx = nx
110 self.__ny = nx
110 self.__ny = nx
111 self.__isPlotIni = True
111 self.__isPlotIni = True
112
112
113
113
114 def plotData(self, xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None, titleList=None, xlabelList=None, ylabelList=None, showColorbar=False, showPowerProfile=True, XAxisAsTime=False):
114 def plotData(self, xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None, titleList=None, xlabelList=None, ylabelList=None, showColorbar=False, showPowerProfile=True, XAxisAsTime=False):
115
115
116 if not(self.__isPlotConfig):
116 if not(self.__isPlotConfig):
117 self.setup(titleList,
117 self.setup(titleList,
118 xlabelList,
118 xlabelList,
119 ylabelList,
119 ylabelList,
120 showColorbar,
120 showColorbar,
121 showPowerProfile,
121 showPowerProfile,
122 XAxisAsTime)
122 XAxisAsTime)
123
123
124 if not(self.__isPlotIni):
124 if not(self.__isPlotIni):
125 self.iniPlot()
125 self.iniPlot()
126
126
127 plplot.plsstrm(self.indexPlot)
127 plplot.plsstrm(self.indexPlot)
128
128
129 data = 10.*numpy.log10(self.m_Spectra.data_spc)
129 data = 10.*numpy.log10(self.m_Spectra.data_spc)
130
130
131 nX, nY, nChan = numpy.shape(data)
131 nX, nY, nChan = numpy.shape(data)
132
132
133 x = numpy.arange(nX)
133 x = numpy.arange(nX)
134 y = self.m_Spectra.heights
134 y = self.m_Spectra.heights
135
135
136 thisDatetime = datetime.datetime.fromtimestamp(self.m_Spectra.m_BasicHeader.utc)
136 thisDatetime = datetime.datetime.fromtimestamp(self.m_Spectra.m_BasicHeader.utc)
137 txtDate = "Self Spectra - Date: %s" %(thisDatetime.strftime("%d-%b-%Y %H:%M:%S"))
137 txtDate = "Self Spectra - Date: %s" %(thisDatetime.strftime("%d-%b-%Y %H:%M:%S"))
138
138
139 if xmin == None: xmin = x[0]
139 if xmin == None: xmin = x[0]
140 if xmax == None: xmax = x[-1]
140 if xmax == None: xmax = x[-1]
141 if ymin == None: ymin = y[0]
141 if ymin == None: ymin = y[0]
142 if ymax == None: ymax = y[-1]
142 if ymax == None: ymax = y[-1]
143 if zmin == None: zmin = numpy.nanmin(abs(data))
143 if zmin == None: zmin = numpy.nanmin(abs(data))
144 if zmax == None: zmax = numpy.nanmax(abs(data))
144 if zmax == None: zmax = numpy.nanmax(abs(data))
145
145
146 plplot.plbop()
146 plplot.plbop()
147
147
148 plplot.plssub(self.__nx, self.__ny)
148 plplot.plssub(self.__nx, self.__ny)
149 for i in range(self.nGraphs):
149 for i in range(self.nGraphs):
150 self.graphObjList[i].iniSubpage()
150 self.graphObjList[i].iniSubpage()
151 self.graphObjList[i].plotData(data[i,:,:],
151 self.graphObjList[i].plotData(data[i,:,:],
152 x,
152 x,
153 y,
153 y,
154 xmin=xmin,
154 xmin=xmin,
155 xmax=xmax,
155 xmax=xmax,
156 ymin=ymin,
156 ymin=ymin,
157 ymax=ymax,
157 ymax=ymax,
158 zmin=zmin,
158 zmin=zmin,
159 zmax=zmax)
159 zmax=zmax)
160
160
161 plplot.plssub(1,0)
161 plplot.plssub(1,0)
162 plplot.pladv(0)
162 plplot.pladv(0)
163 plplot.plvpor(0., 1., 0., 1.)
163 plplot.plvpor(0., 1., 0., 1.)
164 plplot.plmtex("t",-1., 0.5, 0.5, txtDate)
164 plplot.plmtex("t",-1., 0.5, 0.5, txtDate)
165 plplot.plflush()
165 plplot.plflush()
166 plplot.pleop()
166 plplot.pleop()
167
167
168 def end(self):
168 def end(self):
169 plplot.plend()
169 plplot.plend()
170
170
171
171
172 if __name__ == '__main__':
172 if __name__ == '__main__':
173 pass No newline at end of file
173 pass
General Comments 0
You need to be logged in to leave comments. Login now