diff --git a/schainpy/model/data/jrodata.py b/schainpy/model/data/jrodata.py index 3ea272d..76e926e 100644 --- a/schainpy/model/data/jrodata.py +++ b/schainpy/model/data/jrodata.py @@ -636,17 +636,20 @@ class Spectra(JROData): return freqrange def getAcfRange(self, extrapoints=0): + #print "GET ACF RANGE" #print "NFFTPoints",self.nFFTPoints #print "IPPFactor", self.ippFactor - deltafreq = 10. / ( self.getFmax() / (self.nFFTPoints * self.ippFactor) ) - #print "deltafreq",deltafreq + #deltafreq = 10. / ( self.getFmax() / (self.nFFTPoints * self.ippFactor) ) + deltatime = 1./(self.getFmax()/ self.ippFactor) + #print "getFmax",self.getFmax() #import time #time.sleep(30) - freqrange = deltafreq * \ + timerange = deltatime * \ (numpy.arange(self.nFFTPoints + extrapoints) - - self.nFFTPoints / 2.) - deltafreq / 2 - - return freqrange + self.nFFTPoints / 2.) + #- deltafreq / 2 + #print "timerange",timerange + return timerange def getFreqRange(self, extrapoints=0): diff --git a/schainpy/model/graphics/jroplot_spectra.py b/schainpy/model/graphics/jroplot_spectra.py index aeb3868..5946ed8 100644 --- a/schainpy/model/graphics/jroplot_spectra.py +++ b/schainpy/model/graphics/jroplot_spectra.py @@ -318,7 +318,7 @@ class ACFPlot(Figure): #z = numpy.where(numpy.isfinite(z), z, numpy.NAN) shape = dataOut.data_acf.shape - print "shape_plot",shape + #print "shape_plot",shape hei_index = numpy.arange(shape[2]) hei_plot = numpy.arange(nSamples)*resFactor @@ -348,8 +348,9 @@ class ACFPlot(Figure): ylabel = "Power (dB)" elif xaxis == "time": - delta= dataOut.getAcfRange()[1]-dataOut.getAcfRange()[0] - x = dataOut.getAcfRange()+delta/2.0 + #delta= dataOut.getAcfRange()[1]-dataOut.getAcfRange()[0] + #x = dataOut.getAcfRange()+delta/2.0 + x = dataOut.getAcfRange()*1000 zdB = z[channel0,:,hei_plot] xlabel = "Time (ms)" ylabel = "ACF" @@ -372,8 +373,8 @@ class ACFPlot(Figure): wintitle=wintitle, show=show) - if xmin == None: xmin = numpy.nanmin(x)*0.9 - if xmax == None: xmax = numpy.nanmax(x)*1.1 + if xmin == None: xmin = numpy.nanmin(x)#*0.9 + if xmax == None: xmax = numpy.nanmax(x)#*1.1 if ymin == None: ymin = numpy.nanmin(zdB) if ymax == None: ymax = numpy.nanmax(zdB) diff --git a/schainpy/model/proc/jroproc_spectra_acf.py b/schainpy/model/proc/jroproc_spectra_acf.py index 41d39db..3ce9310 100644 --- a/schainpy/model/proc/jroproc_spectra_acf.py +++ b/schainpy/model/proc/jroproc_spectra_acf.py @@ -141,63 +141,26 @@ class SpectraAFCProc(ProcessingUnit): if self.dataIn.type == "Spectra": self.dataOut.copy(self.dataIn) spc = self.dataOut.data_spc - data = numpy.fft.ifft(spc, axis=1) - data = numpy.fft.fftshift(data, axes=(1,)) + data = numpy.fft.fftshift( spc, axes=(1,)) + data = numpy.fft.ifft(data, axis=1) + data = numpy.fft.fftshift( data, axes=(1,)) acf = numpy.abs(data) # Autocorrelacion LLAMAR A ESTE VALOR ACF if real: acf = data.real if imag: acf = data.imag - shape = acf.shape # nchannels, nprofiles, nsamples - - #import matplotlib.pyplot as plt - #print "test",acf.shape - #acf_tmp=acf[0,:,] - #plt.plot(acf_tmp) - #plt.show() - #import time - #time.sleep(10) - + shape = acf.shape # nchannels, nprofiles, nsamples //nchannles, lags , alturas + for j in range(shape[0]): - for i in range(shape[1]): - tmp = numpy.argmax(acf[j,:,i]) - if i>30: - value = (acf[j,:,i][tmp+3]+acf[j,:,i][tmp+4])/2.0 - acf[j,:,i][tmp] = value - acf[j,:,i][tmp-1] = value - acf[j,:,i][tmp+1] = value - acf[j,:,i][tmp-2] = value - acf[j,:,i][tmp+2] = value - - import scipy as sp - from scipy import signal - #acf[3,:,i] = sp.signal.medfilt(acf[3,:,i],21) - - - - #print numpy.argmax(acf[0,:,85]) - #import matplotlib.pyplot as plt - #plt.plot(acf[0,:,85]) - #a= acf[0,:,85] - #b= acf[0,:,0] - #print a[200],a[198],a[199], a[201],a[202],a[203] - #plt.show() - #import time - #time.sleep(10) - - + for i in range(shape[2]): + tmp = shape[1]/2 + value = (acf[j,:,i][tmp-1]+acf[j,:,i][tmp+1])/2.0 + acf[j,:,i][tmp] = value # Normalizando for i in range(shape[0]): for j in range(shape[2]): acf[i,:,j]= acf[i,:,j] / numpy.max(numpy.abs(acf[i,:,j])) - #import matplotlib.pyplot as plt - #plt.plot(acf[0,:,85]) - #plt.show() - #import time - #time.sleep(20) - - self.dataOut.data_acf = acf return True diff --git a/schainpy/model/proc/jroproc_voltage.py b/schainpy/model/proc/jroproc_voltage.py index 4f74164..1684da7 100644 --- a/schainpy/model/proc/jroproc_voltage.py +++ b/schainpy/model/proc/jroproc_voltage.py @@ -1316,8 +1316,7 @@ class SSheightProfiles(Operation): for i in range(self.buffer.shape[1]): #self.buffer[:,i] = numpy.flip(dataOut.data[:,i*self.step:i*self.step + self.nsamples]) self.buffer[:,i] = dataOut.data[:,i*self.step:i*self.step + self.nsamples] - - #self.buffer[:,j,self.__nHeis-j*self.step - self.nheights:self.__nHeis-j*self.step] = numpy.flip(dataOut.data[:,j*self.step:j*self.step + self.nheights]) + #self.buffer[:,j,self.__nHeis-j*self.step - self.nheights:self.__nHeis-j*self.step] = numpy.flip(dataOut.data[:,j*self.step:j*self.step + self.nheights]) for j in range(self.buffer.shape[0]): self.sshProfiles[j] = numpy.transpose(self.buffer[j]) @@ -1325,6 +1324,7 @@ class SSheightProfiles(Operation): profileIndex = self.nsamples deltaHeight = dataOut.heightList[1] - dataOut.heightList[0] ippSeconds = (deltaHeight*1.0e-6)/(0.15) + #print "ippSeconds",ippSeconds try: if dataOut.concat_m is not None: ippSeconds= ippSeconds/float(dataOut.concat_m) diff --git a/schainpy/scripts/test_0001.py b/schainpy/scripts/test_0001.py index 2cd71e1..bdc8ee9 100644 --- a/schainpy/scripts/test_0001.py +++ b/schainpy/scripts/test_0001.py @@ -74,9 +74,10 @@ if __name__ == '__main__': # procUnitConfObj1SPC.addParameter(name='pairsList', value='(1,0),(3,2),(5,4),(7,6)', format='pairsList') opObj11 = procUnitConfObj1SPC.addOperation(name='IncohInt', optype='other') - opObj11.addParameter(name='timeInterval', value='5', format='int') + opObj11.addParameter(name='timeInterval', value='10', format='int') procUnitConfObj2SPC = controllerObj.addProcUnit(datatype='SpectraAFCProc', inputId=procUnitConfObj1SPC.getId()) + procUnitConfObj2SPC.addParameter(name='real', value='1', format='int') opObj11 = procUnitConfObj1SPC.addOperation(name='SpectraPlot', optype='other') opObj11.addParameter(name='id', value='1', format='int') @@ -113,8 +114,8 @@ if __name__ == '__main__': opObj11.addParameter(name='wintitle', value = 'October 2019', format='str') opObj11.addParameter(name='xaxis', value='time', format='str') opObj11.addParameter(name='channel', value='0', format='int') - opObj11.addParameter(name='nSampleList', value='(40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70)', format='intList') - opObj11.addParameter(name='resolutionFactor', value='2', format='int') + #opObj11.addParameter(name='nSampleList', value='(50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70)', format='intList') + opObj11.addParameter(name='resolutionFactor', value='15', format='int') #opObj11.addParameter(name='zmin', value=0.5, format='int') #opObj11.addParameter(name='zmax', value=-0.5, format='int') #opObj11.addParameter(name='ymin', value='0', format='int')