From af752b8a14b4fe64c21301ed63ef29f43cd46112 2022-07-19 13:21:56 From: joabAM Date: 2022-07-19 13:21:56 Subject: [PATCH] pc amisr --- diff --git a/schainpy/model/proc/jroproc_spectra.py b/schainpy/model/proc/jroproc_spectra.py index 821c1fd..2a6d9fb 100644 --- a/schainpy/model/proc/jroproc_spectra.py +++ b/schainpy/model/proc/jroproc_spectra.py @@ -705,7 +705,7 @@ class getNoiseB(Operation): #print("2: ",10*numpy.log10(self.dataOut.noise_estimation/64)) #print(self.dataOut.flagNoData) - print("getNoise Done") + print("getNoise Done", noise) return self.dataOut def getNoiseByMean(self,data): diff --git a/schainpy/model/proc/jroproc_voltage.py b/schainpy/model/proc/jroproc_voltage.py index 22f413d..bb026d6 100644 --- a/schainpy/model/proc/jroproc_voltage.py +++ b/schainpy/model/proc/jroproc_voltage.py @@ -6,7 +6,7 @@ from schainpy.model.data.jrodata import Voltage,hildebrand_sekhon from schainpy.utils import log from schainpy.model.io.utils import getHei_index from time import time -#import datetime + import numpy #import copy from schainpy.model.data import _noise @@ -1890,9 +1890,6 @@ class SSheightProfiles2(Operation): -#import skimage.color -#import skimage.io -#import matplotlib.pyplot as plt class removeProfileByFaradayHS(Operation): ''' @@ -2024,14 +2021,16 @@ class removeProfileByFaradayHS(Operation): return data def cleanOutliersByBlock(self): + import matplotlib.pyplot as plt + import datetime #print(self.__buffer_data[0].shape) data = self.__buffer_data#.copy() - #print("cleaning shape inpt: ",data.shape) - ''' + print("cleaning shape inpt: ",data.shape) + self.__buffer_data = [] - spectrum = numpy.fft.fft2(data, axes=(0,2)) - #print("spc : ",spectrum.shape) + spectrum = numpy.fft.fft2(data[:,:,self.minHei_idx:], axes=(0,2)) + print("spc : ",spectrum.shape) (nch,nsamples, nh) = spectrum.shape data2 = None #print(data.shape) @@ -2048,41 +2047,48 @@ class removeProfileByFaradayHS(Operation): x, y = numpy.meshgrid(numpy.sort(freqh),numpy.sort(freqv)) z = numpy.abs(spectrum[ch,:,:]) + phase = numpy.angle(spectrum[ch,:,:]) # Find all peaks higher than the 98th percentile - peaks = z < numpy.percentile(z, 98) + peaks = z < numpy.percentile(z, 99) #print(peaks) # Set those peak coefficients to zero spectrum2 = spectrum2 * peaks.astype(int) - data2 = numpy.fft.ifft2(spectrum2) + data2 = numpy.fft.ifft2(spectrum2,axes=(0,2)) dat = numpy.log10(z.T) - dat2 = numpy.log10(spectrum2.T) - - # m = numpy.mean(dat) - # o = numpy.std(dat) - # fig, ax = plt.subplots(2,1,figsize=(8, 6)) - # - # c = ax[0].pcolormesh(x, y, dat, cmap ='YlGnBu', vmin = (m-2*o), vmax = (m+2*o)) - # #c = ax.pcolor( z.T , cmap ='gray', vmin = (m-2*o), vmax = (m+2*o)) - # date_time = datetime.datetime.fromtimestamp(self.__buffer_times[0]).strftime('%Y-%m-%d %H:%M:%S.%f') - # #strftime('%Y-%m-%d %H:%M:%S') - # ax[0].set_title('Spectrum magnitude '+date_time) - # fig.canvas.set_window_title('Spectrum magnitude {} '.format(self.n)+date_time) - # - # - # c = ax[1].pcolormesh(x, y, dat, cmap ='YlGnBu', vmin = (m-2*o), vmax = (m+2*o)) - # fig.colorbar(c) - # plt.show() + pdat = numpy.log10(phase.T) + dat2 = numpy.log10(numpy.abs(spectrum2.T)) + + m = numpy.mean(dat) + o = numpy.std(dat) + fig, ax = plt.subplots(1,2,figsize=(12, 6)) + + colormap = 'jet' + #c = ax[0].pcolormesh(x, y, dat, cmap =colormap, vmin = (m-2*o)/2, vmax = (m+2*o)) + c = ax[0].pcolormesh(x, y, dat, cmap =colormap, vmin = 4.2, vmax = 5.0) + fig.colorbar(c, ax=ax[0]) + #print("aqui estoy", dat.shape) + #c = ax.pcolor( z.T , cmap ='gray', vmin = (m-2*o), vmax = (m+2*o)) + date_time = datetime.datetime.fromtimestamp(self.__buffer_times[0]).strftime('%Y-%m-%d %H:%M:%S.%f') + #strftime('%Y-%m-%d %H:%M:%S') + #ax[0].set_title('Spectrum magnitude '+date_time) + fig.canvas.set_window_title('Spectrum magnitude {} '.format(self.n)+date_time) + #print("aqui estoy2",dat2[:,:,0].shape) + c = ax[1].pcolormesh(x, y, pdat, cmap =colormap, vmin = -0.0, vmax = 0.5) + #c = ax[1].pcolormesh(x, y, dat2[:,:,0], cmap =colormap, vmin = (m-2*o)/2, vmax = (m+2*o)-1) + #print("aqui estoy3") + fig.colorbar(c, ax=ax[1]) + plt.show() #print(data2.shape) - data = data2 + #data = data2 + + #cleanBlock = numpy.fft.ifft2(data, axes=(0,2)).reshape() - #cleanBlock = numpy.fft.ifft2(spectrum, axes=(0,2)).reshape() - ''' #print("cleanOutliersByBlock Done") - return self.filterSatsProfiles() + return data @@ -2094,7 +2100,7 @@ class removeProfileByFaradayHS(Operation): else: self.__buffer_data = numpy.concatenate((self.__buffer_data,data), axis=1)#en perfiles self.__profIndex += 1 - #self.__buffer_times.append(datatime) + self.__buffer_times.append(datatime) def getData(self, data, datatime=None):