@@ -124,6 +124,43 def isFileinThisTime(filename, startTime, endTime): | |||
|
124 | 124 | |
|
125 | 125 | return thisDatetime |
|
126 | 126 | |
|
127 | def getFileFromSet(path,ext,set): | |
|
128 | validFilelist = [] | |
|
129 | fileList = os.listdir(path) | |
|
130 | ||
|
131 | # 0 1234 567 89A BCDE | |
|
132 | # H YYYY DDD SSS .ext | |
|
133 | ||
|
134 | for file in fileList: | |
|
135 | try: | |
|
136 | year = int(file[1:5]) | |
|
137 | doy = int(file[5:8]) | |
|
138 | ||
|
139 | ||
|
140 | except: | |
|
141 | continue | |
|
142 | ||
|
143 | if (os.path.splitext(file)[-1].lower() != ext.lower()): | |
|
144 | continue | |
|
145 | ||
|
146 | validFilelist.append(file) | |
|
147 | ||
|
148 | myfile = fnmatch.filter(validFilelist,'*%4.4d%3.3d%3.3d*'%(year,doy,set)) | |
|
149 | ||
|
150 | if len(myfile)!= 0: | |
|
151 | return myfile[0] | |
|
152 | else: | |
|
153 | filename = '*%4.4d%3.3d%3.3d%s'%(year,doy,set,ext.lower()) | |
|
154 | print 'the filename %s does not exist'%filename | |
|
155 | print '...going to the last file: ' | |
|
156 | ||
|
157 | if validFilelist: | |
|
158 | validFilelist = sorted( validFilelist, key=str.lower ) | |
|
159 | return validFilelist[-1] | |
|
160 | ||
|
161 | return None | |
|
162 | ||
|
163 | ||
|
127 | 164 | def getlastFileFromPath(path, ext): |
|
128 | 165 | """ |
|
129 | 166 | Depura el fileList dejando solo los que cumplan el formato de "PYYYYDDDSSS.ext" |
@@ -439,7 +476,7 class JRODataReader(JRODataIO, ProcessingUnit): | |||
|
439 | 476 | |
|
440 | 477 | return pathList, filenameList |
|
441 | 478 | |
|
442 | def __searchFilesOnLine(self, path, expLabel = "", ext = None, walk=True): | |
|
479 | def __searchFilesOnLine(self, path, expLabel = "", ext = None, walk=True, set=None): | |
|
443 | 480 | |
|
444 | 481 | """ |
|
445 | 482 | Busca el ultimo archivo de la ultima carpeta (determinada o no por startDateTime) y |
@@ -467,7 +504,7 class JRODataReader(JRODataIO, ProcessingUnit): | |||
|
467 | 504 | |
|
468 | 505 | if not walk: |
|
469 | 506 | fullpath = path |
|
470 |
foldercounter = |
|
|
507 | foldercounter = 0 | |
|
471 | 508 | else: |
|
472 | 509 | #Filtra solo los directorios |
|
473 | 510 | for thisPath in os.listdir(path): |
@@ -490,15 +527,18 class JRODataReader(JRODataIO, ProcessingUnit): | |||
|
490 | 527 | |
|
491 | 528 | print "%s folder was found: " %(fullpath ) |
|
492 | 529 | |
|
493 | filename = getlastFileFromPath(fullpath, ext) | |
|
530 | if set == None: | |
|
531 | filename = getlastFileFromPath(fullpath, ext) | |
|
532 | else: | |
|
533 | filename = getFileFromSet(fullpath, ext, set) | |
|
494 | 534 | |
|
495 | 535 | if not(filename): |
|
496 | return None, None, None, None, None | |
|
536 | return None, None, None, None, None, None | |
|
497 | 537 | |
|
498 | 538 | print "%s file was found" %(filename) |
|
499 | 539 | |
|
500 | 540 | if not(self.__verifyFile(os.path.join(fullpath, filename))): |
|
501 | return None, None, None, None, None | |
|
541 | return None, None, None, None, None, None | |
|
502 | 542 | |
|
503 | 543 | year = int( filename[1:5] ) |
|
504 | 544 | doy = int( filename[5:8] ) |
@@ -672,6 +712,10 class JRODataReader(JRODataIO, ProcessingUnit): | |||
|
672 | 712 | self.__rdBasicHeader() |
|
673 | 713 | return 1 |
|
674 | 714 | |
|
715 | if self.fileSize == self.fileSizeByHeader: | |
|
716 | # self.flagEoF = True | |
|
717 | return 0 | |
|
718 | ||
|
675 | 719 | print "\tWaiting %0.2f seconds for the next block, try %03d ..." % (self.delay, nTries+1) |
|
676 | 720 | time.sleep( self.delay ) |
|
677 | 721 | |
@@ -684,18 +728,29 class JRODataReader(JRODataIO, ProcessingUnit): | |||
|
684 | 728 | return |
|
685 | 729 | |
|
686 | 730 | csize = self.fileSize - self.fp.tell() |
|
731 | blocksize = self.processingHeaderObj.blockSize | |
|
687 | 732 | |
|
688 | #sata el primer bloque de datos | |
|
733 | #salta el primer bloque de datos | |
|
689 | 734 | if csize > self.processingHeaderObj.blockSize: |
|
690 |
self.fp.seek(self.fp.tell() + |
|
|
735 | self.fp.seek(self.fp.tell() + blocksize) | |
|
691 | 736 | else: |
|
692 | 737 | return |
|
693 | 738 | |
|
694 | 739 | csize = self.fileSize - self.fp.tell() |
|
695 | 740 | neededsize = self.processingHeaderObj.blockSize + self.basicHeaderSize |
|
696 | factor = int(csize/neededsize) | |
|
697 |
|
|
|
698 |
|
|
|
741 | while True: | |
|
742 | ||
|
743 | if self.fp.tell()<self.fileSize: | |
|
744 | self.fp.seek(self.fp.tell() + neededsize) | |
|
745 | else: | |
|
746 | self.fp.seek(self.fp.tell() - neededsize) | |
|
747 | break | |
|
748 | ||
|
749 | # csize = self.fileSize - self.fp.tell() | |
|
750 | # neededsize = self.processingHeaderObj.blockSize + self.basicHeaderSize | |
|
751 | # factor = int(csize/neededsize) | |
|
752 | # if factor > 0: | |
|
753 | # self.fp.seek(self.fp.tell() + factor*neededsize) | |
|
699 | 754 | |
|
700 | 755 | self.flagIsNewFile = 0 |
|
701 | 756 | self.__isFirstTimeOnline = 0 |
@@ -854,7 +909,7 class JRODataReader(JRODataIO, ProcessingUnit): | |||
|
854 | 909 | endDate=None, |
|
855 | 910 | startTime=datetime.time(0,0,0), |
|
856 | 911 | endTime=datetime.time(23,59,59), |
|
857 |
set= |
|
|
912 | set=None, | |
|
858 | 913 | expLabel = "", |
|
859 | 914 | ext = None, |
|
860 | 915 | online = False, |
@@ -871,7 +926,7 class JRODataReader(JRODataIO, ProcessingUnit): | |||
|
871 | 926 | print "Searching files in online mode..." |
|
872 | 927 | |
|
873 | 928 | for nTries in range( self.nTries ): |
|
874 | fullpath, foldercounter, file, year, doy, set = self.__searchFilesOnLine(path=path, expLabel=expLabel, ext=ext, walk=walk) | |
|
929 | fullpath, foldercounter, file, year, doy, set = self.__searchFilesOnLine(path=path, expLabel=expLabel, ext=ext, walk=walk, set=set) | |
|
875 | 930 | |
|
876 | 931 | if fullpath: |
|
877 | 932 | break |
@@ -291,8 +291,9 class RTIPlot(Figure): | |||
|
291 | 291 | avgdB = 10.*numpy.log10(avg) |
|
292 | 292 | |
|
293 | 293 | |
|
294 | thisDatetime = dataOut.datatime | |
|
295 | title = "RTI: %s" %(thisDatetime.strftime("%d-%b-%Y")) | |
|
294 | # thisDatetime = dataOut.datatime | |
|
295 | thisDatetime = datetime.datetime.utcfromtimestamp(dataOut.getTimeRange()[1]) | |
|
296 | title = wintitle+' ' + "RTI: %s" %(thisDatetime.strftime("%d-%b-%Y")) | |
|
296 | 297 | xlabel = "" |
|
297 | 298 | ylabel = "Range (Km)" |
|
298 | 299 | |
@@ -505,7 +506,7 class SpectraPlot(Figure): | |||
|
505 | 506 | date = thisDatetime.strftime("%Y%m%d_%H%M%S") |
|
506 | 507 | if figfile == None: |
|
507 | 508 | figfile = self.getFilename(name = date) |
|
508 | ||
|
509 | ||
|
509 | 510 | self.saveFigure(figpath, figfile) |
|
510 | 511 | |
|
511 | 512 | class Scope(Figure): |
@@ -1213,8 +1213,11 class IncohInt(Operation): | |||
|
1213 | 1213 | return None, None, None, None |
|
1214 | 1214 | |
|
1215 | 1215 | avgdatatime = self.__initime |
|
1216 | self.__timeInterval = (self.__lastdatatime - self.__initime)/(self.n - 1) | |
|
1217 | ||
|
1216 | try: | |
|
1217 | self.__timeInterval = (self.__lastdatatime - self.__initime)/(self.n - 1) | |
|
1218 | except: | |
|
1219 | self.__timeInterval = self.__lastdatatime - self.__initime | |
|
1220 | ||
|
1218 | 1221 | deltatime = datatime -self.__lastdatatime |
|
1219 | 1222 | |
|
1220 | 1223 | if not self.__withOverapping: |
General Comments 0
You need to be logged in to leave comments.
Login now