##// END OF EJS Templates
Testeado con datos de Imagenes (Espectros)...
Testeado con datos de Imagenes (Espectros) Se visualiza el ruido en los graficos y en la escala correcta de velocidad 1. Upgrade de la libreria grafica 2. Adicion de la clase IncohInt para los datos de tipo Spectra 3. Adicion de calculo de ruido, calculo de numero de canales, rangeo de velocidad a la clase JROData

File last commit:

r201:86bbb8030d3e
r201:86bbb8030d3e
Show More
jroplot.py
208 lines | 6.2 KiB | text/x-python | PythonLexer
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 import numpy
import datetime
from graphics.figure import *
Daniel Valdez
En graphics:...
r192 class SpectraPlot(Figure):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
En graphics:...
r192 __isConfig = None
def __init__(self):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
En graphics:...
r192 self.__isConfig = False
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.WIDTH = 300
self.HEIGHT = 400
Daniel Valdez
En graphics:...
r192 def getSubplots(self):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
En graphics:...
r192 ncol = int(numpy.sqrt(self.nplots)+0.9)
nrow = int(self.nplots*1./ncol + 0.9)
return nrow, ncol
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
Daniel Valdez
En graphics:...
r192 def setAxesWithOutProfiles(self, nrow, ncol):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
En graphics:...
r192 colspan = 1
rowspan = 1
counter = 0
for y in range(nrow):
for x in range(ncol):
if counter < self.nplots:
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.addAxes(nrow, ncol, y, x, colspan, rowspan)
Daniel Valdez
En graphics:...
r192 counter += 1
def setAxesWithProfiles(self, nrow, ncol):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
En graphics:...
r192 colspan = 1
rowspan = 1
factor = 2
ncol = ncol*factor
counter = 0
for y in range(nrow):
for x in range(ncol):
if counter < self.nplots*factor:
# plt.subplot2grid((nrow, ncol), (y, x), colspan=colspan, rowspan=rowspan)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.addAxes(nrow, ncol, y, x, colspan, rowspan)
Daniel Valdez
En graphics:...
r192 counter += 1
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def setup(self, idfigure, nplots, wintitle, showprofile=True):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.init(idfigure, nplots, wintitle)
Daniel Valdez
En graphics:...
r192
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 nrow, ncol = self.getSubplots()
Daniel Valdez
En graphics:...
r192
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 if showprofile:
Daniel Valdez
En graphics:...
r192 self.setAxesWithProfiles(nrow, ncol)
else:
self.setAxesWithOutProfiles(nrow, ncol)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def run(self, dataOut, idfigure, wintitle="", channelList=None, showprofile=False,
xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None):
"""
Input:
dataOut :
idfigure :
wintitle :
channelList :
showProfile :
xmin : None,
xmax : None,
ymin : None,
ymax : None,
zmin : None,
zmax : None
"""
Daniel Valdez
En graphics:...
r192
if channelList == None:
channelList = dataOut.channelList
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 x = dataOut.getVelRange(1)
Daniel Valdez
En graphics:...
r192 y = dataOut.heightList
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 z = 10.*numpy.log10(dataOut.data_spc[channelList,:,:])
Daniel Valdez
En graphics:...
r192
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 noise = dataOut.getNoise()
Daniel Valdez
En graphics:...
r192 if not self.__isConfig:
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 nplots = len(channelList)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.setup(idfigure=idfigure,
nplots=nplots,
wintitle=wintitle,
showprofile=showprofile)
if xmin == None: xmin = numpy.nanmin(x)
if xmax == None: xmax = numpy.nanmax(x)
if ymin == None: ymin = numpy.nanmin(y)
if ymax == None: ymax = numpy.nanmax(y)
if zmin == None: zmin = numpy.nanmin(z)*0.9
if zmax == None: zmax = numpy.nanmax(z)*0.9
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
En graphics:...
r192 self.__isConfig = True
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
Daniel Valdez
En esta version se ha implementado la clase para ploteo de espectros, a este grafico aun le falta agregar el perfil de potencia para cada canal.
r196 thisDatetime = datetime.datetime.fromtimestamp(dataOut.utctime)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 title = "Spectra: %s" %(thisDatetime.strftime("%d-%b-%Y %H:%M:%S"))
xlabel = "Velocity (m/s)"
ylabel = "Range (Km)"
Daniel Valdez
En esta version se ha implementado la clase para ploteo de espectros, a este grafico aun le falta agregar el perfil de potencia para cada canal.
r196
self.setWinTitle(title)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 for i in range(self.nplots):
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 title = "Channel %d: %4.2fdB" %(channelList[i], noise[i])
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 zchannel = z[i,:,:]
Daniel Valdez
En graphics:...
r192 axes = self.axesList[i]
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 axes.pcolor(x, y, zchannel,
xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, zmin=zmin, zmax=zmax,
xlabel=xlabel, ylabel=ylabel, title=title,
ticksize=9, cblabel='dB')
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Daniel Valdez
En graphics:...
r192 self.draw()
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 class Scope(Figure):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 __isConfig = None
def __init__(self):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 self.__isConfig = False
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.WIDTH = 600
self.HEIGHT = 200
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
def getSubplots(self):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 nrow = self.nplots
ncol = 3
return nrow, ncol
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def setup(self, idfigure, nplots, wintitle):
self.init(idfigure, nplots, wintitle)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
nrow,ncol = self.getSubplots()
colspan = 3
rowspan = 1
for i in range(nplots):
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.addAxes(nrow, ncol, i, 0, colspan, rowspan)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 def run(self, dataOut, idfigure, wintitle="", channelList=None,
xmin=None, xmax=None, ymin=None, ymax=None):
"""
Input:
dataOut :
idfigure :
wintitle :
channelList :
xmin : None,
xmax : None,
ymin : None,
ymax : None,
"""
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
if channelList == None:
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 channelList = dataOut.channelList
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 x = dataOut.heightList
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 y = dataOut.data[channelList,:] * numpy.conjugate(dataOut.data[channelList,:])
y = y.real
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 noise = dataOut.getNoise()
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
if not self.__isConfig:
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 nplots = len(channelList)
self.setup(idfigure=idfigure,
nplots=nplots,
wintitle=wintitle)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 if xmin == None: xmin = numpy.nanmin(x)
if xmax == None: xmax = numpy.nanmax(x)
if ymin == None: ymin = numpy.nanmin(y)
if ymax == None: ymax = numpy.nanmax(y)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
self.__isConfig = True
thisDatetime = datetime.datetime.fromtimestamp(dataOut.utctime)
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 title = "Scope: %s" %(thisDatetime.strftime("%d-%b-%Y %H:%M:%S"))
xlabel = "Range (Km)"
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 ylabel = "Intensity"
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 self.setWinTitle(title)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
for i in range(len(self.axesList)):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 title = "Channel %d: %4.2fdB" %(i, noise[i])
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190 axes = self.axesList[i]
Miguel Valdez
Testeado con datos de Imagenes (Espectros)...
r201 ychannel = y[i,:]
axes.pline(x, ychannel,
xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax,
xlabel=xlabel, ylabel=ylabel, title=title)
Daniel Valdez
Se agrega el folder "graphics" que contiene figure.py y mpldriver.py...
r190
self.draw()