diff --git a/schainpy/model/graphics/jroplot_spectra.py b/schainpy/model/graphics/jroplot_spectra.py index 8a5d813..28aaddc 100644 --- a/schainpy/model/graphics/jroplot_spectra.py +++ b/schainpy/model/graphics/jroplot_spectra.py @@ -21,12 +21,14 @@ class SpectraPlot(Plot): colormap = 'jet' plot_type = 'pcolor' buffering = False + channelList = None def setup(self): 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.cb_label = 'dB' if self.showprofile: self.width = 4 * self.ncols @@ -36,7 +38,8 @@ class SpectraPlot(Plot): self.ylabel = 'Range [km]' def update(self, dataOut): - + if self.channelList == None: + self.channelList = dataOut.channelList data = {} meta = {} spc = 10*numpy.log10(dataOut.data_spc/dataOut.normFactor) @@ -46,9 +49,9 @@ class SpectraPlot(Plot): meta['xrange'] = (dataOut.getFreqRange(1)/1000., dataOut.getAcfRange(1), dataOut.getVelRange(1)) if self.CODE == 'spc_moments': data['moments'] = dataOut.moments - - return data, meta - + + return data, meta + def plot(self): if self.xaxis == "frequency": x = self.data.xrange[0] @@ -101,7 +104,7 @@ class SpectraPlot(Plot): ax.plt_noise.set_data(numpy.repeat(noise, len(y)), y) if self.CODE == 'spc_moments': ax.plt_mean.set_data(mean, y) - self.titles.append('CH {}: {:3.2f}dB'.format(n, noise)) + self.titles.append('CH {}: {:3.2f}dB'.format(self.channelList[n], noise)) class CrossSpectraPlot(Plot): @@ -146,8 +149,8 @@ class CrossSpectraPlot(Plot): data['cspc'] = numpy.array(tmp) - return data, meta - + return data, meta + def plot(self): if self.xaxis == "frequency": @@ -159,7 +162,7 @@ class CrossSpectraPlot(Plot): else: x = self.data.xrange[2] self.xlabel = "Velocity (m/s)" - + self.titles = [] y = self.data.yrange @@ -183,13 +186,13 @@ class CrossSpectraPlot(Plot): ax.plt.set_array(coh.T.ravel()) self.titles.append( 'Coherence Ch{} * Ch{}'.format(pair[0], pair[1])) - + ax = self.axes[2 * n + 1] if ax.firsttime: ax.plt = ax.pcolormesh(x, y, phase.T, vmin=-180, vmax=180, - cmap=plt.get_cmap(self.colormap_phase) + cmap=plt.get_cmap(self.colormap_phase) ) else: ax.plt.set_array(phase.T.ravel()) @@ -204,6 +207,8 @@ class RTIPlot(Plot): CODE = 'rti' colormap = 'jet' plot_type = 'pcolorbuffer' + titles = None + channelList = None def setup(self): self.xaxis = 'time' @@ -215,10 +220,11 @@ class RTIPlot(Plot): self.cb_label = 'dB' self.plots_adjust.update({'hspace':0.8, 'left': 0.1, 'bottom': 0.08, 'right':0.95}) self.titles = ['{} Channel {}'.format( - self.CODE.upper(), x) for x in range(self.nrows)] + self.CODE.upper(), x) for x in range(self.nplots)] def update(self, dataOut): - + if self.channelList == None: + self.channelList = dataOut.channelList data = {} meta = {} data['rti'] = dataOut.getPower() @@ -231,6 +237,9 @@ class RTIPlot(Plot): self.y = self.data.yrange self.z = self.data[self.CODE] self.z = numpy.ma.masked_invalid(self.z) + if self.channelList != None: + self.titles = ['{} Channel {}'.format( + self.CODE.upper(), x) for x in self.channelList] if self.decimation is None: x, y, z = self.fill_gaps(self.x, self.y, self.z) @@ -317,7 +326,7 @@ class PhasePlot(CoherencePlot): class NoisePlot(Plot): ''' - Plot for noise + Plot for noise ''' CODE = 'noise' @@ -362,7 +371,7 @@ class NoisePlot(Plot): y = Y[ch] self.axes[0].lines[ch].set_data(x, y) - + class PowerProfilePlot(Plot): CODE = 'pow_profile' @@ -394,10 +403,10 @@ class PowerProfilePlot(Plot): self.y = y x = self.data[-1][self.CODE] - + if self.xmin is None: self.xmin = numpy.nanmin(x)*0.9 if self.xmax is None: self.xmax = numpy.nanmax(x)*1.1 - + if self.axes[0].firsttime: for ch in self.data.channels: self.axes[0].plot(x[ch], y, lw=1, label='Ch{}'.format(ch)) @@ -559,7 +568,7 @@ class BeaconPhase(Plot): server=None, folder=None, username=None, password=None, ftp_wei=0, exp_code=0, sub_exp_code=0, plot_pos=0): - if dataOut.flagNoData: + if dataOut.flagNoData: return dataOut if not isTimeInHourRange(dataOut.datatime, xmin, xmax): @@ -699,4 +708,4 @@ class BeaconPhase(Plot): thisDatetime=thisDatetime, update_figfile=update_figfile) - return dataOut \ No newline at end of file + return dataOut diff --git a/schainpy/model/proc/jroproc_spectra.py b/schainpy/model/proc/jroproc_spectra.py index 13b9546..0bf73ba 100644 --- a/schainpy/model/proc/jroproc_spectra.py +++ b/schainpy/model/proc/jroproc_spectra.py @@ -507,8 +507,7 @@ class CleanRayleigh(Operation): self.buffer = 0 self.buffer2 = 0 self.buffer3 = 0 - #self.min_hei = None - #self.max_hei = None + def setup(self,dataOut,min_hei,max_hei,n, timeInterval,factor_stdv): @@ -545,8 +544,7 @@ class CleanRayleigh(Operation): self.currentTime = self.__initime self.pairsArray = numpy.array(dataOut.pairsList) self.factor_stdv = factor_stdv - - + print("CHANNELS: ",[x for x in self.channels]) if n != None : self.byProfiles = True @@ -678,7 +676,7 @@ class CleanRayleigh(Operation): dataOut.data_dc = self.buffer3 dataOut.nIncohInt *= self.nIntProfiles dataOut.utctime = self.currentTime #tiempo promediado - print("Time: ",time.localtime(dataOut.utctime)) + #print("Time: ",time.localtime(dataOut.utctime)) # dataOut.data_spc = sat_spectra # dataOut.data_cspc = sat_cspectra self.buffer = 0 @@ -763,26 +761,27 @@ class CleanRayleigh(Operation): if len(noval[0]) > 0: #forma de array (N,) es igual a longitud (N) novall = ((func2clean - mode) >= (factor_stdv*stdv)).nonzero() #print(novall) - #print(" ") + #print(" ",self.pairsArray[ii]) cross_pairs = self.pairsArray[ii] #Getting coherent echoes which are removed. - if len(novall[0]) > 0: - - val_spc[novall[0],cross_pairs[0],ifreq,ih] = 1 - val_spc[novall[0],cross_pairs[1],ifreq,ih] = 1 - val_cspc[novall[0],ii,ifreq,ih] = 1 + # if len(novall[0]) > 0: + # + # val_spc[novall[0],cross_pairs[0],ifreq,ih] = 1 + # val_spc[novall[0],cross_pairs[1],ifreq,ih] = 1 + # val_cspc[novall[0],ii,ifreq,ih] = 1 #print("OUT NOVALL 1") #Removing coherent from ISR data + chA = self.channels.index(cross_pairs[0]) + chB = self.channels.index(cross_pairs[1]) - #print(spectra[:,ii,ifreq,ih]) new_a = numpy.delete(cspectra[:,ii,ifreq,ih], noval[0]) mean_cspc = numpy.mean(new_a) - new_b = numpy.delete(spectra[:,cross_pairs[0],ifreq,ih], noval[0]) + new_b = numpy.delete(spectra[:,chA,ifreq,ih], noval[0]) mean_spc0 = numpy.mean(new_b) - new_c = numpy.delete(spectra[:,cross_pairs[1],ifreq,ih], noval[0]) + new_c = numpy.delete(spectra[:,chB,ifreq,ih], noval[0]) mean_spc1 = numpy.mean(new_c) - spectra[noval,cross_pairs[0],ifreq,ih] = mean_spc0 - spectra[noval,cross_pairs[1],ifreq,ih] = mean_spc1 + spectra[noval,chA,ifreq,ih] = mean_spc0 + spectra[noval,chB,ifreq,ih] = mean_spc1 cspectra[noval,ii,ifreq,ih] = mean_cspc ''' diff --git a/schainpy/model/proc/jroproc_voltage.py b/schainpy/model/proc/jroproc_voltage.py index 8723805..9f8bcf4 100644 --- a/schainpy/model/proc/jroproc_voltage.py +++ b/schainpy/model/proc/jroproc_voltage.py @@ -112,7 +112,7 @@ class selectChannels(Operation): self.dataOut.data_dc = data_dc # self.dataOut.channelList = [self.dataOut.channelList[i] for i in channelIndexList] - self.dataOut.channelList = range(len(channelIndexList)) + self.dataOut.channelList = channelIndexList self.__selectPairsByChannel(channelIndexList) return 1