##// END OF EJS Templates
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported

File last commit:

r1285:7f395116f8a5
r1287:af11e4aac00c
Show More
jroplot_correlation.py
186 lines | 5.8 KiB | text/x-python | PythonLexer
/ schainpy / model / graphics / jroplot_correlation.py
Julio Valdez
Processing Modules added:...
r502 import os
import datetime
import numpy
import copy
Juan C. Espinoza
Update and fix plot modules #TODO: correlation & spectraheis
r1285 from schainpy.model.graphics.jroplot_base import Plot
Julio Valdez
Processing Modules added:...
r502
Juan C. Espinoza
Update and fix plot modules #TODO: correlation & spectraheis
r1285
class CorrelationPlot(Plot):
Julio Valdez
Processing Modules added:...
r502 isConfig = None
__nsubplots = None
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 WIDTHPROF = None
HEIGHTPROF = None
PREFIX = 'corr'
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
def __init__(self, **kwargs):
Figure.__init__(self, **kwargs)
Julio Valdez
Processing Modules added:...
r502 self.isConfig = False
self.__nsubplots = 1
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 self.WIDTH = 280
self.HEIGHT = 250
self.WIDTHPROF = 120
self.HEIGHTPROF = 0
self.counter_imagwr = 0
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 self.PLOT_CODE = 1
self.FTP_WEI = None
self.EXP_CODE = None
self.SUB_EXP_CODE = None
self.PLOT_POS = None
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 def getSubplots(self):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 ncol = int(numpy.sqrt(self.nplots)+0.9)
nrow = int(self.nplots*1./ncol + 0.9)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 return nrow, ncol
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 def setup(self, id, nplots, wintitle, showprofile=False, show=True):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
showprofile = False
Julio Valdez
Processing Modules added:...
r502 self.__showprofile = showprofile
self.nplots = nplots
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 ncolspan = 1
colspan = 1
if showprofile:
ncolspan = 3
colspan = 2
self.__nsubplots = 2
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 self.createFigure(id = id,
wintitle = wintitle,
widthplot = self.WIDTH + self.WIDTHPROF,
heightplot = self.HEIGHT + self.HEIGHTPROF,
show=show)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 nrow, ncol = self.getSubplots()
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 counter = 0
for y in range(nrow):
for x in range(ncol):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 if counter >= self.nplots:
break
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 self.addAxes(nrow, ncol*ncolspan, y, x*ncolspan, colspan, 1)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 if showprofile:
self.addAxes(nrow, ncol*ncolspan, y, x*ncolspan+colspan, 1, 1)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 counter += 1
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 def run(self, dataOut, id, wintitle="", channelList=None, showprofile=False,
xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None,
Miguel Valdez
Merge with branch schain_julia_drifts from rev. 803 to 995....
r568 save=False, figpath='./', figfile=None, show=True, ftp=False, wr_period=1,
Julio Valdez
Processing Modules added:...
r502 server=None, folder=None, username=None, password=None,
ftp_wei=0, exp_code=0, sub_exp_code=0, plot_pos=0, realtime=False):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 """
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 Input:
dataOut :
id :
wintitle :
channelList :
showProfile :
xmin : None,
xmax : None,
ymin : None,
ymax : None,
zmin : None,
zmax : None
"""
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 if dataOut.flagNoData:
return None
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 if realtime:
if not(isRealtime(utcdatatime = dataOut.utctime)):
George Yong
Python 2to3, Spectra (all operations) working
r1167 print('Skipping this plot function')
Julio Valdez
Processing Modules added:...
r502 return
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 if channelList == None:
channelIndexList = dataOut.channelIndexList
else:
channelIndexList = []
for channel in channelList:
if channel not in dataOut.channelList:
George Yong
Python 2to3, Spectra (all operations) working
r1167 raise ValueError("Channel %d is not in dataOut.channelList")
Julio Valdez
Processing Modules added:...
r502 channelIndexList.append(dataOut.channelList.index(channel))
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 factor = dataOut.normFactor
lenfactor = factor.shape[1]
x = dataOut.getLagTRange(1)
y = dataOut.getHeiRange()
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 z = copy.copy(dataOut.data_corr[:,:,0,:])
for i in range(dataOut.data_corr.shape[0]):
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897 z[i,:,:] = z[i,:,:]/factor[i,:]
Julio Valdez
Processing Modules added:...
r502 zdB = numpy.abs(z)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 avg = numpy.average(z, axis=1)
# avg = numpy.nanmean(z, axis=1)
# noise = dataOut.noise/factor
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 #thisDatetime = dataOut.datatime
Miguel Valdez
Merge with branch schain_julia_drifts from rev. 803 to 995....
r568 thisDatetime = datetime.datetime.utcfromtimestamp(dataOut.getTimeRange()[0])
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897 title = wintitle + " Correlation"
Julio Valdez
Processing Modules added:...
r502 xlabel = "Lag T (s)"
ylabel = "Range (Km)"
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 if not self.isConfig:
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
nplots = dataOut.data_corr.shape[0]
Julio Valdez
Processing Modules added:...
r502 self.setup(id=id,
nplots=nplots,
wintitle=wintitle,
showprofile=showprofile,
show=show)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 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 = 0
if zmax == None: zmax = 1
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 self.FTP_WEI = ftp_wei
self.EXP_CODE = exp_code
self.SUB_EXP_CODE = sub_exp_code
self.PLOT_POS = plot_pos
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 self.isConfig = True
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 self.setWinTitle(title)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 for i in range(self.nplots):
str_datetime = '%s %s'%(thisDatetime.strftime("%Y/%m/%d"),thisDatetime.strftime("%H:%M:%S"))
Miguel Valdez
Channel title was fixed in plots
r713 title = "Channel %d and %d: : %s" %(dataOut.pairsList[i][0],dataOut.pairsList[i][1] , str_datetime)
Julio Valdez
Processing Modules added:...
r502 axes = self.axesList[i*self.__nsubplots]
axes.pcolor(x, y, zdB[i,:,:],
xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, zmin=zmin, zmax=zmax,
xlabel=xlabel, ylabel=ylabel, title=title,
ticksize=9, cblabel='')
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 # if self.__showprofile:
# axes = self.axesList[i*self.__nsubplots +1]
# axes.pline(avgdB[i], y,
# xmin=zmin, xmax=zmax, ymin=ymin, ymax=ymax,
# xlabel='dB', ylabel='', title='',
# ytick_visible=False,
# grid='x')
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897 #
Julio Valdez
Processing Modules added:...
r502 # noiseline = numpy.repeat(noisedB[i], len(y))
# axes.addpline(noiseline, y, idline=1, color="black", linestyle="dashed", lw=2)
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Julio Valdez
Processing Modules added:...
r502 self.draw()
José Chávez
cambiados los kwargs para cada operacion/unidad de procesamiento
r897
Miguel Valdez
A new SendToServer Unit has been created to upload files to a remote server....
r573 self.save(figpath=figpath,
figfile=figfile,
save=save,
ftp=ftp,
wr_period=wr_period,
George Yong
Python 2to3, Spectra (all operations) working
r1167 thisDatetime=thisDatetime)