##// END OF EJS Templates
Timezone is taken from data and not from PC
Timezone is taken from data and not from PC

File last commit:

r169:661bb8af254a
r565:9a975da57daf
Show More
SpectraPlot.py
170 lines | 5.6 KiB | text/x-python | PythonLexer
Daniel Valdez
Fijando variables svn:keywords Author Id
r16 '''
Created on Feb 7, 2012
@author $Author$
@version $Id$
'''
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10 import numpy
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 import os
import sys
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10 import plplot
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 import datetime
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 path = os.path.split(os.getcwd())[0]
sys.path.append(path)
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 from Graphics.BaseGraph import *
from Model.Spectra import Spectra
Miguel Valdez
r11
Miguel Valdez
r99 class Spectrum:
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 colorplotObj = None
Miguel Valdez
r99
Miguel Valdez
El numero de alturas son actualizadas cuando se realiza la decodificación nHeigths = nHeigths - nBauds + 1
r116 def __init__(self, spectraObj, index):
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 self.__isPlotConfig = False
self.__isPlotIni = False
self.__xrange = None
self.__yrange = None
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 self.nsubplots = 0
Miguel Valdez
Actualización de la libreria de graficos para manejar varios plots
r43 self.indexPlot = index
Miguel Valdez
El numero de alturas son actualizadas cuando se realiza la decodificación nHeigths = nHeigths - nBauds + 1
r116 self.spectraObj = spectraObj
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 def setup(self,indexPlot, nsubplots, winTitle='', colormap="br_green", showColorbar=False, showPowerProfile=False, XAxisAsTime=False):
"""
Crea un objeto colorPlot con las opciones seleccinoadas
"""
self.nsubplots = nsubplots
self.colorplotObj = PcolorPlot(indexPlot,
nsubplots,
winTitle,
colormap,
showColorbar,
showPowerProfile,
XAxisAsTime)
def createObjects(self,xmin,xmax,ymin,ymax,zmin,zmax,titleList,xlabelList,ylabelList):
"""
Configura cada subplot con los valores maximos y minimos incluyendo los subtitulos
"""
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 for index in range(self.nsubplots):
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 title = titleList[index]
xlabel = xlabelList[index]
ylabel = ylabelList[index]
subplot = index
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 self.colorplotObj.createObjects(subplot+1,xmin,xmax,ymin,ymax,zmin,zmax,title,xlabel,ylabel)
def initPlot(self):
"""
Configura cada subplot con los valores maximos y minimos incluyendo los subtitulos
"""
for index in range(self.nsubplots):
subplot = index
self.colorplotObj.iniPlot(subplot+1)
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108
def plotData(self,
xmin=None,
xmax=None,
ymin=None,
ymax=None,
zmin=None,
zmax=None,
titleList=None,
xlabelList=None,
ylabelList=None,
winTitle='',
colormap = "br_green",
showColorbar = True,
showPowerProfile = True,
Daniel Valdez
Correcciones y se agrega metodo para guardar plots en disco, aun no funciona satisfactoriamente
r110 XAxisAsTime = False,
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 save = False,
channelList=[]):
if channelList == []:
channelList = numpy.arange(self.spectraObj.nChannels)
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 nsubplots = len(channelList)
nX = self.spectraObj.nFFTPoints
nY = self.spectraObj.nHeights
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 if self.spectraObj.noise == None:
noise = numpy.ones(nsubplots)
else:
noise = 10.*numpy.log10(self.spectraObj.noise[channelList])
datadB = 10.*numpy.log10(self.spectraObj.data_spc[channelList,:,:])
noisedB = 10.*numpy.log10(noise)
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 x = numpy.arange(nX)
y = self.spectraObj.heightList
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 indexPlot = self.indexPlot
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25
if not(self.__isPlotConfig):
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 self.setup(indexPlot,
nsubplots,
winTitle,
colormap,
showColorbar,
showPowerProfile,
XAxisAsTime)
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 self.__isPlotConfig = True
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25 if not(self.__isPlotIni):
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 if titleList == None:
titleList = []
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 for i in range(nsubplots):
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 titleList.append("Channel: %d - Noise: %.2f" %(i, noise[i]))
if xlabelList == None:
xlabelList = []
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 for i in range(nsubplots):
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 xlabelList.append("")
if ylabelList == None:
ylabelList = []
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 for i in range(nsubplots):
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 ylabelList.append("Range (Km)")
if xmin == None: xmin = x[0]
if xmax == None: xmax = x[-1]
if ymin == None: ymin = y[0]
if ymax == None: ymax = y[-1]
Miguel Valdez
El numero de alturas son actualizadas cuando se realiza la decodificación nHeigths = nHeigths - nBauds + 1
r116 if zmin == None: zmin = datadB.min()
if zmax == None: zmax = datadB.max()
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 self.createObjects(xmin,xmax,ymin,ymax,zmin,zmax,titleList,xlabelList,ylabelList)
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 self.__isPlotIni = True
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25
Miguel Valdez
r99 thisDatetime = datetime.datetime.fromtimestamp(self.spectraObj.m_BasicHeader.utc)
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108 pltitle = "Self Spectra - Date: %s" %(thisDatetime.strftime("%d-%b-%Y %H:%M:%S"))
Miguel Valdez
Grafico de espectros actualizado
r27
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 self.colorplotObj.setFigure(indexPlot)
self.colorplotObj.setNewPage(pltitle)
self.initPlot()
Miguel Valdez
Modulo de lectura de espectros corregido y testeado....
r25
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 for channel in range(nsubplots):
data = datadB[channel,:,:]
subtitle = "Channel: %d - Noise: %.2f" %(channel, noise[channel])
self.colorplotObj.plot(channel+1, x, y, data, subtitle)
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108
self.colorplotObj.refresh()
Daniel Valdez
Correcciones y se agrega metodo para guardar plots en disco, aun no funciona satisfactoriamente
r110
if save:
self.colorplotObj.setFigure(indexPlot)
Miguel Valdez
Cambio en la forma de generacion de graficos espectrales
r112 path = "/home/roj-idl71/tmp/"
now = datetime.datetime.now().timetuple()
file = "spc_img%02d_%03d_%02d%02d%02d.png"%(indexPlot,now[7],now[3],now[4],now[5])
filename = os.path.join(path,file)
self.colorplotObj.savePlot(indexPlot, filename)
self.colorplotObj.closePage()
Daniel Valdez
Esta version actualiza las librerias de ploteo para graficos RTI, Spectra y Scope, tambien se agregan metodos para procesamiento de Spectra y Voltage. En el caso de Voltage, en la Integracion Coherente se realiza indicando el tiempo de integracion en minutos.
r108
Miguel Valdez
Adicion de directorios de procesamiento y utilitarios
r10