diff --git a/schainpy/model/graphics/mpldriver.py b/schainpy/model/graphics/mpldriver.py index 10e8111..11d1834 100644 --- a/schainpy/model/graphics/mpldriver.py +++ b/schainpy/model/graphics/mpldriver.py @@ -224,7 +224,9 @@ def addpcolor(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap= printLabels(ax, xlabel, ylabel, title) - imesh = ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap)) + ax.collections.remove(ax.collections[0]) + + ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap)) def createPmultiline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None, ticksize=9, xtick_visible=True, ytick_visible=True, diff --git a/schainpy/model/jroplot.py b/schainpy/model/jroplot.py index 1d81505..e7c04fb 100644 --- a/schainpy/model/jroplot.py +++ b/schainpy/model/jroplot.py @@ -178,7 +178,7 @@ class RTIPlot(Figure): __isConfig = None __nsubplots = None - + __missing = 1E30 WIDTHPROF = None HEIGHTPROF = None PREFIX = 'rti' @@ -193,6 +193,8 @@ class RTIPlot(Figure): self.HEIGHT = 200 self.WIDTHPROF = 120 self.HEIGHTPROF = 0 + self.x_buffer = None + self.avgdB_buffer = None def getSubplots(self): @@ -276,11 +278,9 @@ class RTIPlot(Figure): z = dataOut.data_spc[channelIndexList,:,:]/factor z = numpy.where(numpy.isfinite(z), z, numpy.NAN) avg = numpy.average(z, axis=1) - noise = dataOut.getNoise()/factor -# zdB = 10.*numpy.log10(z) avgdB = 10.*numpy.log10(avg) - noisedB = 10.*numpy.log10(noise) + thisDatetime = dataOut.datatime title = "RTI: %s" %(thisDatetime.strftime("%d-%b-%Y")) @@ -303,16 +303,36 @@ class RTIPlot(Figure): if zmax == None: zmax = numpy.nanmax(avgdB)*0.9 self.name = thisDatetime.strftime("%Y%m%d_%H%M%S") + self.x_buffer = numpy.array([]) + self.avgdB_buffer = numpy.array([]) self.__isConfig = True self.setWinTitle(title) + + if len(self.avgdB_buffer)==0: + self.avgdB_buffer = avgdB + newxdim = 1 + newydim = -1 + else: + if x[0]>self.x_buffer[-1]: + gap = avgdB.copy() + gap[:] = self.__missing + self.avgdB_buffer = numpy.hstack((self.avgdB_buffer, gap)) + self.avgdB_buffer = numpy.hstack((self.avgdB_buffer, avgdB)) + newxdim = -1 + newydim = len(y) + + self.x_buffer = numpy.hstack((self.x_buffer, x)) + + self.avgdB_buffer = numpy.ma.masked_inside(self.avgdB_buffer,0.99*self.__missing,1.01*self.__missing) + for i in range(self.nplots): title = "Channel %d: %s" %(dataOut.channelList[i], thisDatetime.strftime("%d-%b-%Y %H:%M:%S")) axes = self.axesList[i*self.__nsubplots] - zdB = avgdB[i].reshape((1,-1)) - axes.pcolor(x, y, zdB, + zdB = self.avgdB_buffer[i].reshape(newxdim,newydim) + axes.pcolor(self.x_buffer, y, zdB, xmin=tmin, xmax=tmax, ymin=ymin, ymax=ymax, zmin=zmin, zmax=zmax, xlabel=xlabel, ylabel=ylabel, title=title, rti=True, XAxisAsTime=True, ticksize=9, cblabel='', cbsize="1%") diff --git a/schainpy/test/EWDriftsApp.py b/schainpy/test/EWDriftsApp.py index b7408da..c364aa6 100644 --- a/schainpy/test/EWDriftsApp.py +++ b/schainpy/test/EWDriftsApp.py @@ -13,12 +13,12 @@ controllerObj = Project() controllerObj.setup(id = '191', name='test01', description=desc) readUnitConfObj = controllerObj.addReadUnit(datatype='Voltage', - path='/Users/dsuarez/Remote/EW_DRIFTS_Sep2012', + path='/remote/ewdrifts/RAW_EXP/EW_DRIFT_FARADAY/EW_Drift', startDate='2011/01/01', endDate='2012/12/31', startTime='00:00:00', endTime='23:59:59', - online=0, + online=1, walk=0) procUnitConfObj0 = controllerObj.addProcUnit(datatype='Voltage', inputId=readUnitConfObj.getId()) @@ -36,52 +36,40 @@ procUnitConfObj1.addParameter(name='nFFTPoints', value='128', format='int') procUnitConfObj1.addParameter(name='pairsList', value='(0,1),(2,3)', format='pairslist') opObj11 = procUnitConfObj1.addOperation(name='IncohInt', optype='other') -opObj11.addParameter(name='n', value='10', format='float') -#opObj11.addParameter(name='timeInterval', value='0.33', format='float') +opObj11.addParameter(name='timeInterval', value='0.5', format='float') opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='other') opObj11.addParameter(name='idfigure', value='1', format='int') opObj11.addParameter(name='wintitle', value='SpectraPlot', format='str') -#opObj11.addParameter(name='channelList', value='0,6', format='intlist') -opObj11.addParameter(name='zmin', value='30', format='int') -opObj11.addParameter(name='zmax', value='120', format='int') +opObj11.addParameter(name='zmin', value='10', format='int') +opObj11.addParameter(name='zmax', value='40', format='int') opObj11.addParameter(name='showprofile', value='1', format='int') - -#opObj11 = procUnitConfObj1.addOperation(name='RTIfromNoise', optype='other') -#opObj11.addParameter(name='idfigure', value='2', format='int') -#opObj11.addParameter(name='timerange', value='10', format='int') -#opObj11.addParameter(name='ymin', value='20', format='int') -#opObj11.addParameter(name='ymax', value='120', format='int') - opObj11 = procUnitConfObj1.addOperation(name='ProfilePlot', optype='other') opObj11.addParameter(name='idfigure', value='2', format='int') -#opObj11.addParameter(name='wintitle', value='Prof', format='str') -opObj11.addParameter(name='xmin', value='30', format='int') -opObj11.addParameter(name='xmax', value='120', format='int') - +opObj11.addParameter(name='xmin', value='10', format='int') +opObj11.addParameter(name='xmax', value='40', format='int') + opObj11 = procUnitConfObj1.addOperation(name='CrossSpectraPlot', optype='other') opObj11.addParameter(name='idfigure', value='3', format='int') opObj11.addParameter(name='wintitle', value='CrossSpectraPlot', format='str') -opObj11.addParameter(name='zmin', value='30', format='int') -opObj11.addParameter(name='zmax', value='120', format='int') -#opObj11.addParameter(name='pairsList', value='(0,2)', format='pairslist') +opObj11.addParameter(name='zmin', value='10', format='int') +opObj11.addParameter(name='zmax', value='40', format='int') +opObj11.addParameter(name='save', value='1', format='bool') +opObj11.addParameter(name='figpath', value='/home/dsuarez/Pictures/cross_spc', format='str') opObj11 = procUnitConfObj1.addOperation(name='RTIPlot', optype='other') opObj11.addParameter(name='idfigure', value='4', format='int') opObj11.addParameter(name='wintitle', value='RTIPLot', format='str') -opObj11.addParameter(name='zmin', value='30', format='int') -opObj11.addParameter(name='zmax', value='120', format='int') -opObj11.addParameter(name='timerange', value='3600', format='int') -opObj11.addParameter(name='showprofile', value='1', format='int') +opObj11.addParameter(name='zmin', value='10', format='int') +opObj11.addParameter(name='zmax', value='40', format='int') +opObj11.addParameter(name='xmin', value='0', format='int') +opObj11.addParameter(name='xmax', value='24', format='int') +opObj11.addParameter(name='channelList', value='0,1,2,3', format='intlist') +#opObj11.addParameter(name='timerange', value='86400', format='int') +opObj11.addParameter(name='showprofile', value='0', format='int') opObj11.addParameter(name='save', value='1', format='bool') -opObj11.addParameter(name='figpath', value='/Users/dsuarez/Pictures', format='str') - -opObj11 = procUnitConfObj1.addOperation(name='CoherenceMap', optype='other') -opObj11.addParameter(name='idfigure', value='5', format='int') -#opObj11.addParameter(name='pairsList', value='(0,2)', format='pairslist') -opObj11.addParameter(name='timerange', value='300', format='int') -opObj11.addParameter(name='showprofile', value='1', format='int') +opObj11.addParameter(name='figpath', value='/home/dsuarez/Pictures/rti', format='str') print "Escribiendo el archivo XML" controllerObj.writeXml(filename)