@@ -591,25 +591,26 class Reader(object): | |||
|
591 | 591 | def setNextFile(self): |
|
592 | 592 | """Set the next file to be readed open it and parse de file header""" |
|
593 | 593 | |
|
594 | if self.fp != None: | |
|
595 |
self.fp |
|
|
594 | while True: | |
|
595 | if self.fp != None: | |
|
596 | self.fp.close() | |
|
596 | 597 | |
|
597 | if self.online: | |
|
598 | newFile = self.setNextFileOnline() | |
|
599 | else: | |
|
600 | newFile = self.setNextFileOffline() | |
|
601 | ||
|
602 | if not(newFile): | |
|
603 | 598 | if self.online: |
|
604 | raise schainpy.admin.SchainError('Time to wait for new files reach') | |
|
599 | newFile = self.setNextFileOnline() | |
|
605 | 600 | else: |
|
606 |
|
|
|
607 | raise schainpy.admin.SchainWarning('No files found in the given path') | |
|
601 | newFile = self.setNextFileOffline() | |
|
602 | ||
|
603 | if not(newFile): | |
|
604 | if self.online: | |
|
605 | raise schainpy.admin.SchainError('Time to wait for new files reach') | |
|
608 | 606 | else: |
|
609 | raise schainpy.admin.SchainWarning('No more files to read') | |
|
610 | ||
|
611 | if not(self.verifyFile(self.filename)): | |
|
612 | self.setNextFile() | |
|
607 | if self.fileIndex == -1: | |
|
608 | raise schainpy.admin.SchainWarning('No files found in the given path') | |
|
609 | else: | |
|
610 | raise schainpy.admin.SchainWarning('No more files to read') | |
|
611 | ||
|
612 | if self.verifyFile(self.filename): | |
|
613 | break | |
|
613 | 614 | |
|
614 | 615 | log.log('Opening file: %s' % self.filename, self.name) |
|
615 | 616 | |
@@ -683,6 +684,15 class Reader(object): | |||
|
683 | 684 | |
|
684 | 685 | return 1 |
|
685 | 686 | |
|
687 | @staticmethod | |
|
688 | def isDateTimeInRange(dt, startDate, endDate, startTime, endTime): | |
|
689 | """Check if the given datetime is in range""" | |
|
690 | ||
|
691 | if startDate <= dt.date() <= endDate: | |
|
692 | if startTime <= dt.time() <= endTime: | |
|
693 | return True | |
|
694 | return False | |
|
695 | ||
|
686 | 696 | def verifyFile(self, filename): |
|
687 | 697 | """Check for a valid file |
|
688 | 698 | |
@@ -893,7 +903,8 class JRODataReader(Reader): | |||
|
893 | 903 | return 0 |
|
894 | 904 | |
|
895 | 905 | self.getBasicHeader() |
|
896 | if (self.dataOut.datatime < datetime.datetime.combine(self.startDate, self.startTime)) or (self.dataOut.datatime > datetime.datetime.combine(self.endDate, self.endTime)): | |
|
906 | ||
|
907 | if not self.isDateTimeInRange(self.dataOut.datatime, self.startDate, self.endDate, self.startTime, self.endTime): | |
|
897 | 908 | print("[Reading] Block No. %d/%d -> %s [Skipping]" % (self.nReadBlocks, |
|
898 | 909 | self.processingHeaderObj.dataBlocksPerFile, |
|
899 | 910 | self.dataOut.datatime.ctime())) |
@@ -953,11 +964,8 class JRODataReader(Reader): | |||
|
953 | 964 | print("[Reading] File %s can't be opened" % (filename)) |
|
954 | 965 | |
|
955 | 966 | return False |
|
956 | ||
|
957 | currentPosition = fp.tell() | |
|
958 | neededSize = self.processingHeaderObj.blockSize + self.firstHeaderSize | |
|
959 | ||
|
960 | if neededSize == 0: | |
|
967 | ||
|
968 | if self.waitDataBlock(0): | |
|
961 | 969 | basicHeaderObj = BasicHeader(LOCALTIME) |
|
962 | 970 | systemHeaderObj = SystemHeader() |
|
963 | 971 | radarControllerHeaderObj = RadarControllerHeader() |
@@ -977,22 +985,21 class JRODataReader(Reader): | |||
|
977 | 985 | |
|
978 | 986 | if not(processingHeaderObj.read(fp)): |
|
979 | 987 | fp.close() |
|
980 | return False | |
|
981 | ||
|
982 | neededSize = processingHeaderObj.blockSize + basicHeaderObj.size | |
|
983 | else: | |
|
984 | msg = "[Reading] Skipping the file %s due to it hasn't enough data" % filename | |
|
988 | return False | |
|
989 | ||
|
990 | if not self.online: | |
|
991 | dt1 = basicHeaderObj.datatime | |
|
992 | fp.seek(self.fileSize-processingHeaderObj.blockSize-24) | |
|
993 | if not(basicHeaderObj.read(fp)): | |
|
994 | fp.close() | |
|
995 | return False | |
|
996 | dt2 = basicHeaderObj.datatime | |
|
997 | if not self.isDateTimeInRange(dt1, self.startDate, self.endDate, self.startTime, self.endTime) and not \ | |
|
998 | self.isDateTimeInRange(dt2, self.startDate, self.endDate, self.startTime, self.endTime): | |
|
999 | return False | |
|
985 | 1000 | |
|
986 | 1001 | fp.close() |
|
987 | ||
|
988 | fileSize = os.path.getsize(filename) | |
|
989 | currentSize = fileSize - currentPosition | |
|
990 | ||
|
991 | if currentSize < neededSize: | |
|
992 | if msgFlag and (msg != None): | |
|
993 | print(msg) | |
|
994 | return False | |
|
995 | ||
|
1002 | ||
|
996 | 1003 | return True |
|
997 | 1004 | |
|
998 | 1005 | def findDatafiles(self, path, startDate=None, endDate=None, expLabel='', ext='.r', walk=True, include_path=False): |
@@ -211,11 +211,11 class InputQueue(Thread): | |||
|
211 | 211 | |
|
212 | 212 | def get(self): |
|
213 | 213 | |
|
214 |
if not self.islocked and self.size/1000000 > |
|
|
214 | if not self.islocked and self.size/1000000 > 1024: | |
|
215 | 215 | self.lock.n.value += 1 |
|
216 | 216 | self.islocked = True |
|
217 | 217 | self.lock.clear() |
|
218 |
elif self.islocked and self.size/1000000 <= |
|
|
218 | elif self.islocked and self.size/1000000 <= 1024: | |
|
219 | 219 | self.islocked = False |
|
220 | 220 | self.lock.n.value -= 1 |
|
221 | 221 | if self.lock.n.value == 0: |
@@ -117,7 +117,7 class SpectraProc(ProcessingUnit): | |||
|
117 | 117 | self.dataOut.data_cspc = cspc |
|
118 | 118 | self.dataOut.data_dc = dc |
|
119 | 119 | self.dataOut.blockSize = blocksize |
|
120 |
self.dataOut.flagShiftFFT = |
|
|
120 | self.dataOut.flagShiftFFT = False | |
|
121 | 121 | |
|
122 | 122 | def run(self, nProfiles=None, nFFTPoints=None, pairsList=[], ippFactor=None, shift_fft=False): |
|
123 | 123 |
General Comments 0
You need to be logged in to leave comments.
Login now