diff --git a/schainpy/model/io/jroIO_kamisr.py b/schainpy/model/io/jroIO_kamisr.py index 398b700..b26ca86 100644 --- a/schainpy/model/io/jroIO_kamisr.py +++ b/schainpy/model/io/jroIO_kamisr.py @@ -53,8 +53,7 @@ class AMISRReader(ProcessingUnit): self.amisrFilePointer = None self.realBeamCode = [] - #self.dataset = None - + self.dataShape = None @@ -119,7 +118,7 @@ class AMISRReader(ProcessingUnit): print("There is no files into the folder: %s"%(path)) sys.exit(-1) - self.fileIndex = -1 + self.fileIndex = 0 self.readNextFile(online) @@ -132,6 +131,16 @@ class AMISRReader(ProcessingUnit): def readAMISRHeader(self,fp): + + if self.isConfig : + newShape = fp.get('Raw11/Data/Samples/Data').shape + if self.dataShape != newShape: + print("\nERROR, NEW FILE IS A DIFFERENT EXPERIMENT \n") + return 0 + else: + self.dataShape = fp.get('Raw11/Data/Samples/Data').shape + + header = 'Raw11/Data/RadacHeader' self.beamCodeByPulse = fp.get(header+'/BeamCode') # LIST OF BEAMS PER PROFILE, TO BE USED ON REARRANGE if (self.startDate> datetime.date(2021, 7, 15)): #Se cambió la forma de extracción de Apuntes el 17 @@ -196,6 +205,8 @@ class AMISRReader(ProcessingUnit): self.__frequency = self.frequency[0][0] + return 1 + def createBuffers(self): @@ -386,27 +397,17 @@ class AMISRReader(ProcessingUnit): return def __setNextFileOffline(self): - idFile = self.fileIndex - - while (True): - idFile += 1 - if not(idFile < len(self.filenameList)): - self.flagNoMoreFiles = 1 - print("No more Files") - return 0 - - filename = self.filenameList[idFile] - amisrFilePointer = h5py.File(filename,'r') - - break + try: + self.filename = self.filenameList[self.fileIndex] + self.amisrFilePointer = h5py.File(self.filename,'r') + self.fileIndex += 1 + except: + self.flagNoMoreFiles = 1 + print("No more Files") + return 0 self.flagIsNewFile = 1 - self.fileIndex = idFile - self.filename = filename - - self.amisrFilePointer = amisrFilePointer - print("Setting the file: %s"%self.filename) return 1 @@ -563,11 +564,12 @@ class AMISRReader(ProcessingUnit): if not(newFile): self.dataOut.error = True return 0 - #if self.__firstFile: - self.readAMISRHeader(self.amisrFilePointer) - self.createBuffers() + if not self.readAMISRHeader(self.amisrFilePointer): + self.dataOut.error = True + return 0 + self.createBuffers() self.fillJROHeader() #self.__firstFile = False diff --git a/schainpy/scripts/amisr_eej_proc_offline_v3.py b/schainpy/scripts/amisr_eej_proc_offline_v3.py index 68baee0..10a359c 100644 --- a/schainpy/scripts/amisr_eej_proc_offline_v3.py +++ b/schainpy/scripts/amisr_eej_proc_offline_v3.py @@ -36,7 +36,7 @@ def main(): #inPath= '/home/soporte/dataAMISR_test/' inPath= '/home/soporte/dataAMISR/' inPath= '/media/soporte/UARS_4T_D02/AMISR_DATA/2021/' - #inPath = '/mnt/data_amisr' + #inPath = '/home/soporte/' outPath = '/home/soporte/Data/EEJ' ##....................................................................................... @@ -63,7 +63,7 @@ def main(): path=inPath, startDate=startDate,#startDate, #'2014/10/07', endDate=endDate, #endDate '2014/10/07', - startTime='07:01:30',#'07:00:00', + startTime='17:55:30',#'07:00:00', endTime='19:00:00',#'15:00:00', walk=1, code = code, @@ -73,9 +73,9 @@ def main(): online=0) - #AMISR Processing Unit - ##....................................................................................... - ##....................................................................................... + # #AMISR Processing Unit + # ##....................................................................................... + # ##....................................................................................... procUnitConfObj0 = controllerObj.addProcUnit(datatype='VoltageProc', inputId=readUnitConfObj.getId()) opObj10 = procUnitConfObj0.addOperation(name='setAttribute') opObj10.addParameter(name='frequency', value='445.09e6') @@ -93,10 +93,10 @@ def main(): # opObj02 = procUnitConfObj0.addOperation(name='CohInt', optype='other') # opObj02.addParameter(name='n', value='2', format='int') - - - ##....................................................................................... - ##....................................................................................... + # + # + # ##....................................................................................... + # ##....................................................................................... procUnitConfObj1 = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObj0.getId()) procUnitConfObj1.addParameter(name='nFFTPoints', value='16', format='int') @@ -150,7 +150,7 @@ def main(): opObj14.addParameter(name='localtime', value=localtime,format='int') opObj14.addParameter(name='show', value = showNOISE, format='int') - # + # # opObj15 = procUnitConfObj1.addOperation(name='RTIPlot', optype='external') opObj15.addParameter(name='id', value='2', format='int') opObj15.addParameter(name='localtime', value=localtime,format='int') @@ -175,8 +175,8 @@ def main(): #Using HDFWriter:::: - ##....................................................................................... - ##....................................................................................... + #....................................................................................... + #....................................................................................... opObj17 = procUnitConfObj2.addOperation(name='HDFWriter', optype='external') opObj17.addParameter(name='path', value=outPath) opObj17.addParameter(name='blocksPerFile', value='10', format='int') diff --git a/schainpy/scripts/test1.py b/schainpy/scripts/test1.py index 121f4e5..63a3cf5 100644 --- a/schainpy/scripts/test1.py +++ b/schainpy/scripts/test1.py @@ -25,14 +25,14 @@ def main(): # path = '/media/soporte/E9F4-F053/AMISR/Data/ESF' #path = '/mnt/data_amisr' - #path = '/media/soporte/AMISR_104' + path = '/home/soporte/Data/EEJ/EEJ2021192' #figpath = os.path.join(os.environ['HOME'],'Pictures/amisr/test/proc/esf') #figpath = '/media/soporte/E9F4-F053/AMISR/Data/JULIA/ESF' - figpath = '/home/soporte/Data/EEJ' + figpath = '/home/soporte/Data/OutTest/EEJ' xmin = '07' - xmax = '17' #-> el plot genera +1 en la hora, es decir aparece 18 como máximo + xmax = '18' #-> el plot genera +1 en la hora, es decir aparece 18 como máximo ymin = '0' ymax = '300' dbmin = '45' #'60'#'55' #'40' #noise esf eej @@ -57,101 +57,75 @@ def main(): #print(today,yesterday,tomorrow) #path= '/home/soporte/dataAMISR_test/' - path= '/home/soporte/dataAMISR/' #path= '/home/soporte/dataAMISR/' #path='/home/soporte/Documentos/' # - readUnitConfObj = controllerObj.addReadUnit(datatype='AMISRReader', + readUnitConfObj = controllerObj.addReadUnit(datatype='Spectra', path=path, - startDate="2019/12/16",#yesterday, #'2014/10/07', - endDate="2019/12/16", #'2014/10/07', - startTime='08:00:00',#'07:00:00', - endTime='08:58:00',#'15:00:00', - walk=0, - code = code, - nCode = nCode, - nBaud = nBaud, + startDate='2021/07/11', + endDate='2021/07/11', + startTime='07:01:30',#'07:00:00', + endTime='18:00:00',#'15:00:00', + walk=1, timezone='lt', online=0) #AMISR Processing Unit - procUnitConfObj0 = controllerObj.addProcUnit(datatype='VoltageProc', inputId=readUnitConfObj.getId()) - opObj10 = procUnitConfObj0.addOperation(name='setRadarFrequency') - opObj10.addParameter(name='frequency', value='445e6', format='float') - opObj01 = procUnitConfObj0.addOperation(name='Decoder', optype='other') - opObj01.addParameter(name='code', value=code, format='floatlist') - opObj01.addParameter(name='nCode', value=nCode, format='int') - opObj01.addParameter(name='nBaud', value=nBaud, format='int') - opObj01.addParameter(name='osamp', value=nosamp, format='int') - - - # opObj02 = procUnitConfObj0.addOperation(name='CohInt', optype='other') - # opObj02.addParameter(name='n', value='5', format='int') - - - - - procUnitConfObj1 = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObj0.getId()) - procUnitConfObj1.addParameter(name='nFFTPoints', value='16', format='int') + proc_spectra = controllerObj.addProcUnit(datatype='SpectraProc', inputId=readUnitConfObj.getId()) + proc_spectra.addParameter(name='nFFTPoints', value='16', format='int') #procUnitConfObj1.addParameter(name='frequency', value='445e6', format='float') #no lo acepta - opObj11 = procUnitConfObj1.addOperation(name='IncohInt', optype='other') - opObj11.addParameter(name='n', value='150', format='int') #300 normal value - - opObj11 = procUnitConfObj1.addOperation(name='removeDC') + # op1 = proc_spectra.addOperation(name='IncohInt', optype='other') + # op1.addParameter(name='n', value='150', format='int') #300 normal value + #op2 = proc_spectra.addOperation(name='removeDC') + op2 = proc_spectra.addOperation(name='CrossSpectraPlot', optype='external') + op2.addParameter(name='id', value='10', format='int') + op2.addParameter(name='save', value=figpath, format='str') + #op2.addParameter(name='zmin', value='10.0', format='float') + #op2.addParameter(name='zmax', value='35.0', format='float') # # - # opObj12 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external') - # opObj12.addParameter(name='id', value='21', format='int') - # opObj12.addParameter(name='xaxis', value='velocity') - # opObj12.addParameter(name='ymax', value=ymax, format='int') - # opObj12.addParameter(name='showprofile', value='1', format='int') - # opObj12.addParameter(name='wintitle', value='AMISR Beam 0', format='str') - # opObj12.addParameter(name='zmin', value=dbmin, format='int') - # opObj12.addParameter(name='zmax', value=dbmax, format='int') - # opObj12.addParameter(name='save', value=figpath, format='str') - # opObj12.addParameter(name='colormap', value='jet', format='str') - # opObj12.addParameter(name='localtime', value=localtime,format='int') - # opObj12.addParameter(name='show', value = showSPC, format='int') - # - opObj13 = procUnitConfObj1.addOperation(name='getNoise' , optype ='self') - opObj13.addParameter(name='minHei', value='100', format='float') - opObj13.addParameter(name='maxHei', value='280', format='float') - # - # - # + + op3 = proc_spectra.addOperation(name='SpectraPlot', optype='external') + op3.addParameter(name='id', value='21', format='int') + op3.addParameter(name='xaxis', value='velocity') + op3.addParameter(name='ymax', value=ymax, format='int') + op3.addParameter(name='showprofile', value='1', format='int') + op3.addParameter(name='wintitle', value='AMISR Beam 0', format='str') + op3.addParameter(name='zmin', value=dbmin, format='int') + op3.addParameter(name='zmax', value=dbmax, format='int') + op3.addParameter(name='save', value=figpath, format='str') + op3.addParameter(name='colormap', value='jet', format='str') + op3.addParameter(name='localtime', value=localtime,format='int') + op3.addParameter(name='show', value = showSPC, format='int') # - # ##Generate *.pdata from AMISR data - # opObj13 = procUnitConfObj1.addOperation(name='SpectraWriter', optype='external') - # opObj13.addParameter(name='path', value=figpath+'SpectraPlot') - # opObj13.addParameter(name='blocksPerFile', value='10', format='int') - # # opObj11.addParameter(name='datatype', value="4", format="int") #no incluir,x revisar + # opObj31 = procUnitConfObj1.addOperation(name='selectChannels') # opObj31.addParameter(name='channelList', value='6,7,8,9', format='intlist') # - opObj15 = procUnitConfObj1.addOperation(name='RTIPlot', optype='external') - opObj15.addParameter(name='id', value='2', format='int') - opObj15.addParameter(name='localtime', value=localtime,format='int') - opObj15.addParameter(name='wintitle', value='RTI', format='str') - #opObj15.addParameter(name='xmin', value=xmin, format='int') - opObj15.addParameter(name='xmax', value=xmax, format='int') #max value =23 - opObj15.addParameter(name='ymin', value=ymin, format='int') - #opObj15.addParameter(name='ymax', value=ymax, format='int') - opObj15.addParameter(name='zmin', value=dbmin, format='int') - opObj15.addParameter(name='zmax', value=dbmax, format='int') - opObj15.addParameter(name='showprofile', value='1', format='int') - opObj15.addParameter(name='show', value = showRTI, format='int') # - #opObj15.addParameter(name='timerange', value=str(24*60*60), format='int')#conflicto datetime - opObj15.addParameter(name='save', value=figpath+'/plots', format='str') - #opObj15.addParameter(name='figpath', value = figpath+'/plots', format='str')#no es necesario - opObj15.addParameter(name='colormap', value='jet', format='str') - opObj15.addParameter(name='channels', value='2,4', format='intlist') + op4 = proc_spectra.addOperation(name='RTIPlot', optype='external') + op4.addParameter(name='id', value='2', format='int') + op4.addParameter(name='localtime', value=localtime,format='int') + op4.addParameter(name='wintitle', value='RTI', format='str') + #op4.addParameter(name='xmin', value=xmin, format='int') + op4.addParameter(name='xmax', value=xmax, format='int') #max value =23 + op4.addParameter(name='ymin', value=ymin, format='int') + #op4.addParameter(name='ymax', value=ymax, format='int') + op4.addParameter(name='zmin', value=dbmin, format='int') + op4.addParameter(name='zmax', value=dbmax, format='int') + op4.addParameter(name='showprofile', value='1', format='int') + op4.addParameter(name='show', value = showRTI, format='int') # + #op4.addParameter(name='timerange', value=str(24*60*60), format='int')#conflicto datetime + op4.addParameter(name='save', value=figpath+'/plots', format='str') + #op4.addParameter(name='figpath', value = figpath+'/plots', format='str')#no es necesario + op4.addParameter(name='colormap', value='jet', format='str') + op4.addParameter(name='channels', value='2,4', format='intlist') # opObj14 = procUnitConfObj1.addOperation(name='NoisePlot', optype='external') # opObj14.addParameter(name='id', value='3', format='int')