@@ -1163,9 +1163,11 class PlotterData(object): | |||||
1163 | for plot in self.plottypes: |
|
1163 | for plot in self.plottypes: | |
1164 | if 'snr' in plot: |
|
1164 | if 'snr' in plot: | |
1165 | plot = 'snr' |
|
1165 | plot = 'snr' | |
|
1166 | elif 'spc_moments' == plot: | |||
|
1167 | plot = 'moments' | |||
1166 | self.data[plot] = {} |
|
1168 | self.data[plot] = {} | |
1167 |
|
1169 | |||
1168 | if 'spc' in self.data or 'rti' in self.data or 'cspc' in self.data: |
|
1170 | if 'spc' in self.data or 'rti' in self.data or 'cspc' in self.data or 'moments' in self.data: | |
1169 | self.data['noise'] = {} |
|
1171 | self.data['noise'] = {} | |
1170 | if 'noise' not in self.plottypes: |
|
1172 | if 'noise' not in self.plottypes: | |
1171 | self.plottypes.append('noise') |
|
1173 | self.plottypes.append('noise') | |
@@ -1199,7 +1201,7 class PlotterData(object): | |||||
1199 | self.channels = dataOut.channelList |
|
1201 | self.channels = dataOut.channelList | |
1200 | self.interval = dataOut.getTimeInterval() |
|
1202 | self.interval = dataOut.getTimeInterval() | |
1201 | self.localtime = dataOut.useLocalTime |
|
1203 | self.localtime = dataOut.useLocalTime | |
1202 | if 'spc' in self.plottypes or 'cspc' in self.plottypes: |
|
1204 | if 'spc' in self.plottypes or 'cspc' in self.plottypes or 'spc_moments' in self.plottypes: | |
1203 | self.xrange = (dataOut.getFreqRange(1)/1000., |
|
1205 | self.xrange = (dataOut.getFreqRange(1)/1000., | |
1204 | dataOut.getAcfRange(1), dataOut.getVelRange(1)) |
|
1206 | dataOut.getAcfRange(1), dataOut.getVelRange(1)) | |
1205 | self.factor = dataOut.normFactor |
|
1207 | self.factor = dataOut.normFactor | |
@@ -1208,7 +1210,7 class PlotterData(object): | |||||
1208 | self.__times.append(tm) |
|
1210 | self.__times.append(tm) | |
1209 |
|
1211 | |||
1210 | for plot in self.plottypes: |
|
1212 | for plot in self.plottypes: | |
1211 |
if plot |
|
1213 | if plot in ('spc', 'spc_moments'): | |
1212 | z = dataOut.data_spc/dataOut.normFactor |
|
1214 | z = dataOut.data_spc/dataOut.normFactor | |
1213 | buffer = 10*numpy.log10(z) |
|
1215 | buffer = 10*numpy.log10(z) | |
1214 | if plot == 'cspc': |
|
1216 | if plot == 'cspc': | |
@@ -1246,6 +1248,9 class PlotterData(object): | |||||
1246 | elif plot == 'cspc': |
|
1248 | elif plot == 'cspc': | |
1247 | self.data['spc'] = buffer[0] |
|
1249 | self.data['spc'] = buffer[0] | |
1248 | self.data['cspc'] = buffer[1] |
|
1250 | self.data['cspc'] = buffer[1] | |
|
1251 | elif plot == 'spc_moments': | |||
|
1252 | self.data['spc'] = buffer | |||
|
1253 | self.data['moments'][tm] = dataOut.moments | |||
1249 | else: |
|
1254 | else: | |
1250 | if self.buffering: |
|
1255 | if self.buffering: | |
1251 | self.data[plot][tm] = buffer |
|
1256 | self.data[plot][tm] = buffer |
@@ -66,7 +66,7 class SpectraPlot(Plot): | |||||
66 | x = self.data.xrange[2] |
|
66 | x = self.data.xrange[2] | |
67 | self.xlabel = "Velocity (m/s)" |
|
67 | self.xlabel = "Velocity (m/s)" | |
68 |
|
68 | |||
69 |
if self.CODE == 'spc_me |
|
69 | if self.CODE == 'spc_moments': | |
70 | x = self.data.xrange[2] |
|
70 | x = self.data.xrange[2] | |
71 | self.xlabel = "Velocity (m/s)" |
|
71 | self.xlabel = "Velocity (m/s)" | |
72 |
|
72 | |||
@@ -78,8 +78,8 class SpectraPlot(Plot): | |||||
78 |
|
78 | |||
79 | for n, ax in enumerate(self.axes): |
|
79 | for n, ax in enumerate(self.axes): | |
80 | noise = self.data['noise'][n][-1] |
|
80 | noise = self.data['noise'][n][-1] | |
81 |
if self.CODE == 'spc_me |
|
81 | if self.CODE == 'spc_moments': | |
82 |
mean = self.data['me |
|
82 | mean = self.data['moments'][n, :, 1, :][-1] | |
83 | if ax.firsttime: |
|
83 | if ax.firsttime: | |
84 | self.xmax = self.xmax if self.xmax else numpy.nanmax(x) |
|
84 | self.xmax = self.xmax if self.xmax else numpy.nanmax(x) | |
85 | self.xmin = self.xmin if self.xmin else -self.xmax |
|
85 | self.xmin = self.xmin if self.xmin else -self.xmax | |
@@ -96,16 +96,15 class SpectraPlot(Plot): | |||||
96 | self.data['rti'][n][-1], y)[0] |
|
96 | self.data['rti'][n][-1], y)[0] | |
97 | ax.plt_noise = self.pf_axes[n].plot(numpy.repeat(noise, len(y)), y, |
|
97 | ax.plt_noise = self.pf_axes[n].plot(numpy.repeat(noise, len(y)), y, | |
98 | color="k", linestyle="dashed", lw=1)[0] |
|
98 | color="k", linestyle="dashed", lw=1)[0] | |
99 |
if self.CODE == 'spc_me |
|
99 | if self.CODE == 'spc_moments': | |
100 | ax.plt_mean = ax.plot(mean, y, color='k')[0] |
|
100 | ax.plt_mean = ax.plot(mean, y, color='k')[0] | |
101 | else: |
|
101 | else: | |
102 | ax.plt.set_array(z[n].T.ravel()) |
|
102 | ax.plt.set_array(z[n].T.ravel()) | |
103 | if self.showprofile: |
|
103 | if self.showprofile: | |
104 | ax.plt_profile.set_data(self.data['rti'][n][-1], y) |
|
104 | ax.plt_profile.set_data(self.data['rti'][n][-1], y) | |
105 | ax.plt_noise.set_data(numpy.repeat(noise, len(y)), y) |
|
105 | ax.plt_noise.set_data(numpy.repeat(noise, len(y)), y) | |
106 |
if self.CODE == 'spc_me |
|
106 | if self.CODE == 'spc_moments': | |
107 | ax.plt_mean.set_data(mean, y) |
|
107 | ax.plt_mean.set_data(mean, y) | |
108 |
|
||||
109 | self.titles.append('CH {}: {:3.2f}dB'.format(n, noise)) |
|
108 | self.titles.append('CH {}: {:3.2f}dB'.format(n, noise)) | |
110 |
|
109 | |||
111 |
|
110 | |||
@@ -206,11 +205,11 class CrossSpectraPlot(Plot): | |||||
206 | self.titles.append('Phase CH{} * CH{}'.format(pair[0], pair[1])) |
|
205 | self.titles.append('Phase CH{} * CH{}'.format(pair[0], pair[1])) | |
207 |
|
206 | |||
208 |
|
207 | |||
209 |
class SpectraMe |
|
208 | class SpectralMomentsPlot(SpectraPlot): | |
210 | ''' |
|
209 | ''' | |
211 |
Plot for Spectra |
|
210 | Plot for Spectral Moments | |
212 | ''' |
|
211 | ''' | |
213 |
CODE = 'spc_me |
|
212 | CODE = 'spc_moments' | |
214 | colormap = 'jro' |
|
213 | colormap = 'jro' | |
215 |
|
214 | |||
216 |
|
215 |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file |
@@ -228,6 +228,7 class SpectraPlot_(Figure): | |||||
228 |
|
228 | |||
229 |
|
229 | |||
230 | return dataOut |
|
230 | return dataOut | |
|
231 | ||||
231 | @MPDecorator |
|
232 | @MPDecorator | |
232 | class CrossSpectraPlot_(Figure): |
|
233 | class CrossSpectraPlot_(Figure): | |
233 |
|
234 |
@@ -2,37 +2,7 import os | |||||
2 | import sys |
|
2 | import sys | |
3 | import datetime |
|
3 | import datetime | |
4 | import numpy |
|
4 | import numpy | |
5 | import matplotlib |
|
5 | from .jroplot_base import matplotlib, make_axes_locatable, FuncFormatter, LinearLocator | |
6 |
|
||||
7 | if 'BACKEND' in os.environ: |
|
|||
8 | matplotlib.use(os.environ['BACKEND']) |
|
|||
9 | elif 'linux' in sys.platform: |
|
|||
10 | matplotlib.use("TkAgg") |
|
|||
11 | elif 'darwin' in sys.platform: |
|
|||
12 | matplotlib.use('TkAgg') |
|
|||
13 | else: |
|
|||
14 | from schainpy.utils import log |
|
|||
15 | log.warning('Using default Backend="Agg"', 'INFO') |
|
|||
16 | matplotlib.use('Agg') |
|
|||
17 | # Qt4Agg', 'GTK', 'GTKAgg', 'ps', 'agg', 'cairo', 'MacOSX', 'GTKCairo', 'WXAgg', 'template', 'TkAgg', 'GTK3Cairo', 'GTK3Agg', 'svg', 'WebAgg', 'CocoaAgg', 'emf', 'gdk', 'WX' |
|
|||
18 | import matplotlib.pyplot |
|
|||
19 |
|
||||
20 | from mpl_toolkits.axes_grid1 import make_axes_locatable |
|
|||
21 | from matplotlib.ticker import FuncFormatter, LinearLocator |
|
|||
22 |
|
||||
23 | ########################################### |
|
|||
24 | # Actualizacion de las funciones del driver |
|
|||
25 | ########################################### |
|
|||
26 |
|
||||
27 | # create jro colormap |
|
|||
28 |
|
||||
29 | jet_values = matplotlib.pyplot.get_cmap("jet", 100)(numpy.arange(100))[10:90] |
|
|||
30 | blu_values = matplotlib.pyplot.get_cmap( |
|
|||
31 | "seismic_r", 20)(numpy.arange(20))[10:15] |
|
|||
32 | ncmap = matplotlib.colors.LinearSegmentedColormap.from_list( |
|
|||
33 | "jro", numpy.vstack((blu_values, jet_values))) |
|
|||
34 | matplotlib.pyplot.register_cmap(cmap=ncmap) |
|
|||
35 |
|
||||
36 |
|
6 | |||
37 | def createFigure(id, wintitle, width, height, facecolor="w", show=True, dpi=80): |
|
7 | def createFigure(id, wintitle, width, height, facecolor="w", show=True, dpi=80): | |
38 |
|
8 |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file |
General Comments 0
You need to be logged in to leave comments.
Login now