From c7df5d958ab1de8717d595b47a41e78045c889d8 2022-03-09 19:34:29 From: joabAM Date: 2022-03-09 19:34:29 Subject: [PATCH] añadido a jroIO_kamisr.py tratamiento de archivos h5f5 corruptos, mostrará advertencia y continurá en lugar de finalizar el procesamiento --- diff --git a/schainpy/model/io/jroIO_kamisr.py b/schainpy/model/io/jroIO_kamisr.py index 0d8c887..2e209f0 100644 --- a/schainpy/model/io/jroIO_kamisr.py +++ b/schainpy/model/io/jroIO_kamisr.py @@ -25,6 +25,7 @@ from schainpy.model.data.jroheaderIO import RadarControllerHeader, SystemHeader from schainpy.model.data.jrodata import Voltage from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation, MPDecorator from numpy import imag +from schainpy.utils import log class AMISRReader(ProcessingUnit): @@ -281,34 +282,38 @@ class AMISRReader(ProcessingUnit): print('........................................') filter_filenameList = [] self.filenameList.sort() + total_files = len(self.filenameList) #for i in range(len(self.filenameList)-1): - for i in range(len(self.filenameList)): + for i in range(total_files): filename = self.filenameList[i] - fp = h5py.File(filename,'r') - time_str = fp.get('Time/RadacTimeString') - - startDateTimeStr_File = time_str[0][0].decode('UTF-8').split('.')[0] - #startDateTimeStr_File = "2019-12-16 09:21:11" - junk = time.strptime(startDateTimeStr_File, '%Y-%m-%d %H:%M:%S') - startDateTime_File = datetime.datetime(junk.tm_year,junk.tm_mon,junk.tm_mday,junk.tm_hour, junk.tm_min, junk.tm_sec) - - #endDateTimeStr_File = "2019-12-16 11:10:11" - endDateTimeStr_File = time_str[-1][-1].decode('UTF-8').split('.')[0] - junk = time.strptime(endDateTimeStr_File, '%Y-%m-%d %H:%M:%S') - endDateTime_File = datetime.datetime(junk.tm_year,junk.tm_mon,junk.tm_mday,junk.tm_hour, junk.tm_min, junk.tm_sec) - - fp.close() - - #print("check time", startDateTime_File) - if self.timezone == 'lt': - startDateTime_File = startDateTime_File - datetime.timedelta(minutes = 300) - endDateTime_File = endDateTime_File - datetime.timedelta(minutes = 300) - if (startDateTime_File >=startDateTime_Reader and endDateTime_File<=endDateTime_Reader): - filter_filenameList.append(filename) - - if (startDateTime_File>endDateTime_Reader): - break - + #print("file-> ",filename) + try: + fp = h5py.File(filename,'r') + time_str = fp.get('Time/RadacTimeString') + + startDateTimeStr_File = time_str[0][0].decode('UTF-8').split('.')[0] + #startDateTimeStr_File = "2019-12-16 09:21:11" + junk = time.strptime(startDateTimeStr_File, '%Y-%m-%d %H:%M:%S') + startDateTime_File = datetime.datetime(junk.tm_year,junk.tm_mon,junk.tm_mday,junk.tm_hour, junk.tm_min, junk.tm_sec) + + #endDateTimeStr_File = "2019-12-16 11:10:11" + endDateTimeStr_File = time_str[-1][-1].decode('UTF-8').split('.')[0] + junk = time.strptime(endDateTimeStr_File, '%Y-%m-%d %H:%M:%S') + endDateTime_File = datetime.datetime(junk.tm_year,junk.tm_mon,junk.tm_mday,junk.tm_hour, junk.tm_min, junk.tm_sec) + + fp.close() + + #print("check time", startDateTime_File) + if self.timezone == 'lt': + startDateTime_File = startDateTime_File - datetime.timedelta(minutes = 300) + endDateTime_File = endDateTime_File - datetime.timedelta(minutes = 300) + if (startDateTime_File >=startDateTime_Reader and endDateTime_File<=endDateTime_Reader): + filter_filenameList.append(filename) + + if (startDateTime_File>endDateTime_Reader): + break + except Exception as e: + log.warning("Error opening file {} -> {}".format(os.path.split(filename)[1],e)) filter_filenameList.sort() self.filenameList = filter_filenameList