##// END OF EJS Templates
Operando clean Rayleigh con crossSpectra
Operando clean Rayleigh con crossSpectra

File last commit:

r1385:83c0b1494611
r1392:e987b2f0c1da
Show More
jroplot_heispectra.py
102 lines | 3.1 KiB | text/x-python | PythonLexer
Add update method to plots to pass data (no more changes in jrodata)
r1343 # Copyright (c) 2012-2020 Jicamarca Radio Observatory
# All rights reserved.
#
# Distributed under the terms of the BSD 3-clause license.
"""Classes to plo Specra Heis data
Daniel Valdez
This is the new organization by packages and scripts for Signal Chain, this version contains new features and bugs fixed until August 2014
r487
Add update method to plots to pass data (no more changes in jrodata)
r1343 """
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 import numpy
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 from schainpy.model.graphics.jroplot_base import Plot, plt
Adicionada operación Clean Rayleigh a Spectra Proc
r1385 import matplotlib.pyplot as plt
George Yong
Multiprocessing for heispectra (Fits) all working
r1191
Add update method to plots to pass data (no more changes in jrodata)
r1343 class SpectraHeisPlot(Plot):
George Yong
Multiprocessing for heispectra (Fits) all working
r1191
Add update method to plots to pass data (no more changes in jrodata)
r1343 CODE = 'spc_heis'
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 def setup(self):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 self.nplots = len(self.data.channels)
self.ncols = int(numpy.sqrt(self.nplots) + 0.9)
self.nrows = int((1.0 * self.nplots / self.ncols) + 0.9)
self.height = 2.6 * self.nrows
self.width = 3.5 * self.ncols
self.plots_adjust.update({'wspace': 0.4, 'hspace':0.4, 'left': 0.1, 'right': 0.95, 'bottom': 0.08})
self.ylabel = 'Intensity [dB]'
self.xlabel = 'Frequency [KHz]'
self.colorbar = False
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 def update(self, dataOut):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 data = {}
meta = {}
spc = 10*numpy.log10(dataOut.data_spc / dataOut.normFactor)
data['spc_heis'] = spc
Adicionada operación Clean Rayleigh a Spectra Proc
r1385
return data, meta
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 def plot(self):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 c = 3E8
Adicionada operación Clean Rayleigh a Spectra Proc
r1385 deltaHeight = self.data.yrange[1] - self.data.yrange[0] # yrange = heightList
Add update method to plots to pass data (no more changes in jrodata)
r1343 x = numpy.arange(-1*len(self.data.yrange)/2., len(self.data.yrange)/2.)*(c/(2*deltaHeight*len(self.data.yrange)*1000))
self.y = self.data[-1]['spc_heis']
self.titles = []
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Adicionada operación Clean Rayleigh a Spectra Proc
r1385 Maintitle = "Range from %d km to %d km" %(int(self.data.yrange[0]),int(self.data.yrange[-1]))
Add update method to plots to pass data (no more changes in jrodata)
r1343 for n, ax in enumerate(self.axes):
ychannel = self.y[n,:]
if ax.firsttime:
self.xmin = min(x) if self.xmin is None else self.xmin
self.xmax = max(x) if self.xmax is None else self.xmax
ax.plt = ax.plot(x, ychannel, lw=1, color='b')[0]
else:
ax.plt.set_data(x, ychannel)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 self.titles.append("Channel {}: {:4.2f}dB".format(n, numpy.max(ychannel)))
Adicionada operación Clean Rayleigh a Spectra Proc
r1385 plt.suptitle(Maintitle)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 class RTIHeisPlot(Plot):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 CODE = 'rti_heis'
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 def setup(self):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 self.xaxis = 'time'
self.ncols = 1
self.nrows = 1
self.nplots = 1
self.ylabel = 'Intensity [dB]'
self.xlabel = 'Time'
self.titles = ['RTI']
self.colorbar = False
self.height = 4
self.plots_adjust.update({'right': 0.85 })
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 def update(self, dataOut):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 data = {}
meta = {}
spc = dataOut.data_spc / dataOut.normFactor
spc = 10*numpy.log10(numpy.average(spc, axis=1))
data['rti_heis'] = spc
Adicionada operación Clean Rayleigh a Spectra Proc
r1385
return data, meta
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 def plot(self):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 x = self.data.times
Y = self.data['rti_heis']
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Add update method to plots to pass data (no more changes in jrodata)
r1343 if self.axes[0].firsttime:
self.ymin = numpy.nanmin(Y) - 5 if self.ymin == None else self.ymin
self.ymax = numpy.nanmax(Y) + 5 if self.ymax == None else self.ymax
for ch in self.data.channels:
y = Y[ch]
self.axes[0].plot(x, y, lw=1, label='Ch{}'.format(ch))
plt.legend(bbox_to_anchor=(1.18, 1.0))
Daniel Valdez
This is the new organization by packages and scripts for Signal Chain, this version contains new features and bugs fixed until August 2014
r487 else:
Add update method to plots to pass data (no more changes in jrodata)
r1343 for ch in self.data.channels:
y = Y[ch]
self.axes[0].lines[ch].set_data(x, y)