diff --git a/schainpy/controller.py b/schainpy/controller.py index 28b2580..750fe56 100644 --- a/schainpy/controller.py +++ b/schainpy/controller.py @@ -26,6 +26,7 @@ from schainpy.model.graphics import * from schainpy.model.proc.jroproc_base import * from schainpy.model.proc.bltrproc_parameters import * from schainpy.model.proc.jroproc_spectra import * +from schainpy.model.proc.jroproc_voltage import * from schainpy.model.proc.jroproc_parameters import * from schainpy.model.utils.jroutils_publish import * from schainpy.utils import log diff --git a/schainpy/model/graphics/jroplot_voltage.py b/schainpy/model/graphics/jroplot_voltage.py index e5754e2..0a1218b 100644 --- a/schainpy/model/graphics/jroplot_voltage.py +++ b/schainpy/model/graphics/jroplot_voltage.py @@ -6,15 +6,18 @@ Created on Jul 9, 2014 import os import datetime import numpy - +from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation, MPDecorator #YONG +from schainpy.utils import log from .figure import Figure + +@MPDecorator class Scope(Figure): isConfig = None - def __init__(self, **kwargs): - Figure.__init__(self, **kwargs) + def __init__(self):#, **kwargs): #YONG + Figure.__init__(self)#, **kwargs) self.isConfig = False self.WIDTH = 300 self.HEIGHT = 200 @@ -127,6 +130,8 @@ class Scope(Figure): ymin : None, ymax : None, """ + if dataOut.flagNoData: + return dataOut if channelList == None: channelIndexList = dataOut.channelIndexList @@ -222,4 +227,6 @@ class Scope(Figure): save=save, ftp=ftp, wr_period=wr_period, - thisDatetime=thisDatetime) \ No newline at end of file + thisDatetime=thisDatetime) + + return dataOut \ No newline at end of file diff --git a/schainpy/model/io/jroIO_voltage.py b/schainpy/model/io/jroIO_voltage.py index 4485896..afdfc5f 100644 --- a/schainpy/model/io/jroIO_voltage.py +++ b/schainpy/model/io/jroIO_voltage.py @@ -7,7 +7,7 @@ Created on Jul 2, 2014 import numpy from .jroIO_base import LOCALTIME, JRODataReader, JRODataWriter -from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation +from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation, MPDecorator from schainpy.model.data.jroheaderIO import PROCFLAG, BasicHeader, SystemHeader, RadarControllerHeader, ProcessingHeader from schainpy.model.data.jrodata import Voltage import zmq @@ -15,7 +15,7 @@ import tempfile from io import StringIO # from _sha import blocksize - +@MPDecorator class VoltageReader(JRODataReader, ProcessingUnit): """ Esta clase permite leer datos de voltage desde archivos en formato rawdata (.r). La lectura @@ -62,7 +62,7 @@ class VoltageReader(JRODataReader, ProcessingUnit): optchar = "D" dataOut = None - def __init__(self, **kwargs): + def __init__(self):#, **kwargs): """ Inicializador de la clase VoltageReader para la lectura de datos de voltage. @@ -81,7 +81,7 @@ class VoltageReader(JRODataReader, ProcessingUnit): None """ - ProcessingUnit.__init__(self, **kwargs) + ProcessingUnit.__init__(self)#, **kwargs) self.isConfig = False @@ -761,4 +761,5 @@ class VoltageWriter(JRODataWriter, Operation): self.processingHeaderObj.processFlags = self.getProcessFlags() - self.setBasicHeader() \ No newline at end of file + self.setBasicHeader() + \ No newline at end of file diff --git a/schainpy/model/proc/jroproc_base.py b/schainpy/model/proc/jroproc_base.py index 4ac4fc6..eb9d967 100644 --- a/schainpy/model/proc/jroproc_base.py +++ b/schainpy/model/proc/jroproc_base.py @@ -428,7 +428,7 @@ def MPDecorator(BaseClass): if self.dataOut.flagNoData: continue - print("Publishing data...") + #print("Publishing data...") self.publishProc(self.socket_p, self.dataOut) # time.sleep(2) @@ -445,7 +445,7 @@ def MPDecorator(BaseClass): while True: self.dataIn = self.listenProc(self.socket_l) - print("%s received data" %BaseClass.__name__) + #print("%s received data" %BaseClass.__name__) if self.dataIn == "Finish": break diff --git a/schainpy/model/proc/jroproc_voltage.py b/schainpy/model/proc/jroproc_voltage.py index ef624c8..dc3cfff 100644 --- a/schainpy/model/proc/jroproc_voltage.py +++ b/schainpy/model/proc/jroproc_voltage.py @@ -3,24 +3,28 @@ import numpy from scipy import interpolate #TODO #from schainpy import cSchain -from .jroproc_base import ProcessingUnit, Operation +from schainpy.model.proc.jroproc_base import ProcessingUnit, MPDecorator, Operation from schainpy.model.data.jrodata import Voltage -from time import time from schainpy.utils import log +from time import time +@MPDecorator class VoltageProc(ProcessingUnit): + + METHODS = {} #yong + def __init__(self):#, **kwargs): #yong - def __init__(self, **kwargs): - - ProcessingUnit.__init__(self, **kwargs) + ProcessingUnit.__init__(self)#, **kwargs) # self.objectDict = {} self.dataOut = Voltage() self.flip = 1 + self.setupReq = False #yong def run(self): + if self.dataIn.type == 'AMISR': self.__updateObjFromAmisrInput() @@ -317,7 +321,7 @@ class VoltageProc(ProcessingUnit): self.dataOut.data[:,:,botLim:topLim+1] = ynew # import collections - +@MPDecorator class CohInt(Operation): isConfig = False @@ -333,9 +337,9 @@ class CohInt(Operation): __dataToPutStride = False n = None - def __init__(self, **kwargs): + def __init__(self):#, **kwargs): - Operation.__init__(self, **kwargs) + Operation.__init__(self)#, **kwargs) # self.isConfig = False @@ -549,6 +553,7 @@ class CohInt(Operation): return avgdata, avgdatatime def run(self, dataOut, n=None, timeInterval=None, stride=None, overlapping=False, byblock=False, **kwargs): + if not self.isConfig: self.setup(n=n, stride=stride, timeInterval=timeInterval, overlapping=overlapping, byblock=byblock, **kwargs) self.isConfig = True @@ -577,7 +582,8 @@ class CohInt(Operation): # raise # dataOut.timeInterval = dataOut.ippSeconds * dataOut.nCohInt dataOut.flagNoData = False - + return dataOut +@MPDecorator class Decoder(Operation): isConfig = False @@ -588,15 +594,15 @@ class Decoder(Operation): nCode = None nBaud = None - def __init__(self, **kwargs): + def __init__(self):#, **kwargs): - Operation.__init__(self, **kwargs) + Operation.__init__(self)#, **kwargs) self.times = None self.osamp = None # self.__setValues = False - self.isConfig = False - + # self.isConfig = False + self.setupReq = False def setup(self, code, osamp, dataOut): self.__profIndex = 0 @@ -763,22 +769,22 @@ class Decoder(Operation): if self.__profIndex == self.nCode-1: self.__profIndex = 0 - return 1 + return dataOut self.__profIndex += 1 - return 1 + return dataOut # dataOut.flagDeflipData = True #asumo q la data no esta sin flip - +@MPDecorator class ProfileConcat(Operation): isConfig = False buffer = None - def __init__(self, **kwargs): + def __init__(self):#, **kwargs): - Operation.__init__(self, **kwargs) + Operation.__init__(self)#, **kwargs) self.profileIndex = 0 def reset(self): @@ -820,16 +826,17 @@ class ProfileConcat(Operation): xf = dataOut.heightList[0] + dataOut.nHeights * deltaHeight * m dataOut.heightList = numpy.arange(dataOut.heightList[0], xf, deltaHeight) dataOut.ippSeconds *= m - + return dataOut +@MPDecorator class ProfileSelector(Operation): profileIndex = None # Tamanho total de los perfiles nProfiles = None - def __init__(self, **kwargs): + def __init__(self):#, **kwargs): - Operation.__init__(self, **kwargs) + Operation.__init__(self)#, **kwargs) self.profileIndex = 0 def incProfileIndex(self): @@ -979,13 +986,14 @@ class ProfileSelector(Operation): raise ValueError("ProfileSelector needs profileList, profileRangeList or rangeList parameter") - return False - + #return False + return dataOut +@MPDecorator class Reshaper(Operation): - def __init__(self, **kwargs): + def __init__(self):#, **kwargs): - Operation.__init__(self, **kwargs) + Operation.__init__(self)#, **kwargs) self.__buffer = None self.__nitems = 0 @@ -1084,11 +1092,13 @@ class Reshaper(Operation): dataOut.ippSeconds /= self.__nTxs + return dataOut +@MPDecorator class SplitProfiles(Operation): - def __init__(self, **kwargs): + def __init__(self):#, **kwargs): - Operation.__init__(self, **kwargs) + Operation.__init__(self)#, **kwargs) def run(self, dataOut, n): @@ -1102,8 +1112,9 @@ class SplitProfiles(Operation): if shape[2] % n != 0: raise ValueError("Could not split the data, n=%d has to be multiple of %d" %(n, shape[2])) - + new_shape = shape[0], shape[1]*n, int(shape[2]/n) + dataOut.data = numpy.reshape(dataOut.data, new_shape) dataOut.flagNoData = False @@ -1123,10 +1134,12 @@ class SplitProfiles(Operation): dataOut.ippSeconds /= n + return dataOut +@MPDecorator class CombineProfiles(Operation): - def __init__(self, **kwargs): + def __init__(self):#, **kwargs): - Operation.__init__(self, **kwargs) + Operation.__init__(self)#, **kwargs) self.__remData = None self.__profileIndex = 0 @@ -1184,6 +1197,7 @@ class CombineProfiles(Operation): dataOut.ippSeconds *= n + return dataOut # import collections # from scipy.stats import mode # @@ -1318,4 +1332,4 @@ class CombineProfiles(Operation): # # self.__startIndex += self.__newNSamples # -# return \ No newline at end of file +# return