##// END OF EJS Templates
Update test Julia_EEJ.py
Alexander Valdez -
r1685:2ca28c2f318e
parent child
Show More
@@ -384,7 +384,7 def isRadarFolder(folder):
384
384
385
385
386 def isRadarFile(file):
386 def isRadarFile(file):
387 try:
387 try:
388 year = int(file[1:5])
388 year = int(file[1:5])
389 doy = int(file[5:8])
389 doy = int(file[5:8])
390 set = int(file[8:11])
390 set = int(file[8:11])
@@ -395,10 +395,10 def isRadarFile(file):
395
395
396
396
397 def getDateFromRadarFile(file):
397 def getDateFromRadarFile(file):
398 try:
398 try:
399 year = int(file[1:5])
399 year = int(file[1:5])
400 doy = int(file[5:8])
400 doy = int(file[5:8])
401 set = int(file[8:11])
401 set = int(file[8:11])
402 except:
402 except:
403 return None
403 return None
404
404
@@ -417,7 +417,7 def getDateFromRadarFolder(folder):
417 return thisDate
417 return thisDate
418
418
419 def parse_format(s, fmt):
419 def parse_format(s, fmt):
420
420
421 for i in range(fmt.count('%')):
421 for i in range(fmt.count('%')):
422 x = fmt.index('%')
422 x = fmt.index('%')
423 d = DT_DIRECTIVES[fmt[x:x+2]]
423 d = DT_DIRECTIVES[fmt[x:x+2]]
@@ -484,7 +484,7 class Reader(object):
484
484
485 def run(self):
485 def run(self):
486
486
487 raise NotImplementedError
487 raise NotImplementedError
488
488
489 def getAllowedArgs(self):
489 def getAllowedArgs(self):
490 if hasattr(self, '__attrs__'):
490 if hasattr(self, '__attrs__'):
@@ -496,19 +496,19 class Reader(object):
496
496
497 for key, value in kwargs.items():
497 for key, value in kwargs.items():
498 setattr(self, key, value)
498 setattr(self, key, value)
499
499
500 def find_folders(self, path, startDate, endDate, folderfmt, last=False):
500 def find_folders(self, path, startDate, endDate, folderfmt, last=False):
501
501
502 folders = [x for f in path.split(',')
502 folders = [x for f in path.split(',')
503 for x in os.listdir(f) if os.path.isdir(os.path.join(f, x))]
503 for x in os.listdir(f) if os.path.isdir(os.path.join(f, x))]
504 folders.sort()
504 folders.sort()
505
505
506 if last:
506 if last:
507 folders = [folders[-1]]
507 folders = [folders[-1]]
508
508
509 for folder in folders:
509 for folder in folders:
510 try:
510 try:
511 dt = datetime.datetime.strptime(parse_format(folder, folderfmt), folderfmt).date()
511 dt = datetime.datetime.strptime(parse_format(folder, folderfmt), folderfmt).date()
512 if dt >= startDate and dt <= endDate:
512 if dt >= startDate and dt <= endDate:
513 yield os.path.join(path, folder)
513 yield os.path.join(path, folder)
514 else:
514 else:
@@ -517,38 +517,37 class Reader(object):
517 log.log('Skiping folder {}'.format(folder), self.name)
517 log.log('Skiping folder {}'.format(folder), self.name)
518 continue
518 continue
519 return
519 return
520
520
521 def find_files(self, folders, ext, filefmt, startDate=None, endDate=None,
521 def find_files(self, folders, ext, filefmt, startDate=None, endDate=None,
522 expLabel='', last=False):
522 expLabel='', last=False):
523
523 for path in folders:
524 for path in folders:
524 files = glob.glob1(path+'/'+expLabel, '*{}'.format(ext))
525 files = glob.glob1(path, '*{}'.format(ext))
526 files.sort()
525 files.sort()
527 if last:
526 if last:
528 if files:
527 if files:
529 fo = files[-1]
528 fo = files[-1]
530 try:
529 try:
531 dt = datetime.datetime.strptime(parse_format(fo, filefmt), filefmt).date()
530 dt = datetime.datetime.strptime(parse_format(fo, filefmt), filefmt).date()
532 yield os.path.join(path, expLabel, fo)
531 yield os.path.join(path, expLabel, fo)
533 except Exception as e:
532 except Exception as e:
534 pass
533 pass
535 return
534 return
536 else:
535 else:
537 return
536 return
538
537
539 for fo in files:
538 for fo in files:
540 try:
539 try:
541 dt = datetime.datetime.strptime(parse_format(fo, filefmt), filefmt).date()
540 dt = datetime.datetime.strptime(parse_format(fo, filefmt), filefmt).date()
542 if dt >= startDate and dt <= endDate:
541 if dt >= startDate and dt <= endDate:
543 yield os.path.join(path, expLabel, fo)
542 yield os.path.join(path, expLabel, fo)
544 else:
543 else:
545 log.log('Skiping file {}'.format(fo), self.name)
544 log.log('Skiping file {}'.format(fo), self.name)
546 except Exception as e:
545 except Exception as e:
547 log.log('Skiping file {}'.format(fo), self.name)
546 log.log('Skiping file {}'.format(fo), self.name)
548 continue
547 continue
549
548
550 def searchFilesOffLine(self, path, startDate, endDate,
549 def searchFilesOffLine(self, path, startDate, endDate,
551 expLabel, ext, walk,
550 expLabel, ext, walk,
552 filefmt, folderfmt):
551 filefmt, folderfmt):
553 """Search files in offline mode for the given arguments
552 """Search files in offline mode for the given arguments
554
553
@@ -563,10 +562,10 class Reader(object):
563 folders = path.split(',')
562 folders = path.split(',')
564
563
565 return self.find_files(
564 return self.find_files(
566 folders, ext, filefmt, startDate, endDate, expLabel)
565 folders, ext, filefmt, startDate, endDate, expLabel)
567
566
568 def searchFilesOnLine(self, path, startDate, endDate,
567 def searchFilesOnLine(self, path, startDate, endDate,
569 expLabel, ext, walk,
568 expLabel, ext, walk,
570 filefmt, folderfmt):
569 filefmt, folderfmt):
571 """Search for the last file of the last folder
570 """Search for the last file of the last folder
572
571
@@ -579,13 +578,13 class Reader(object):
579 Return:
578 Return:
580 generator with the full path of last filename
579 generator with the full path of last filename
581 """
580 """
582
581
583 if walk:
582 if walk:
584 folders = self.find_folders(
583 folders = self.find_folders(
585 path, startDate, endDate, folderfmt, last=True)
584 path, startDate, endDate, folderfmt, last=True)
586 else:
585 else:
587 folders = path.split(',')
586 folders = path.split(',')
588
587
589 return self.find_files(
588 return self.find_files(
590 folders, ext, filefmt, startDate, endDate, expLabel, last=True)
589 folders, ext, filefmt, startDate, endDate, expLabel, last=True)
591
590
@@ -594,13 +593,12 class Reader(object):
594
593
595 while True:
594 while True:
596 if self.fp != None:
595 if self.fp != None:
597 self.fp.close()
596 self.fp.close()
598
597
599 if self.online:
598 if self.online:
600 newFile = self.setNextFileOnline()
599 newFile = self.setNextFileOnline()
601 else:
600 else:
602 newFile = self.setNextFileOffline()
601 newFile = self.setNextFileOffline()
603
604 if not(newFile):
602 if not(newFile):
605 if self.online:
603 if self.online:
606 raise schainpy.admin.SchainError('Time to wait for new files reach')
604 raise schainpy.admin.SchainError('Time to wait for new files reach')
@@ -609,10 +607,10 class Reader(object):
609 raise schainpy.admin.SchainWarning('No files found in the given path')
607 raise schainpy.admin.SchainWarning('No files found in the given path')
610 else:
608 else:
611 raise schainpy.admin.SchainWarning('No more files to read')
609 raise schainpy.admin.SchainWarning('No more files to read')
612
610
613 if self.verifyFile(self.filename):
611 if self.verifyFile(self.filename):
614 break
612 break
615
613
616 log.log('Opening file: %s' % self.filename, self.name)
614 log.log('Opening file: %s' % self.filename, self.name)
617
615
618 self.readFirstHeader()
616 self.readFirstHeader()
@@ -625,15 +623,16 class Reader(object):
625 self.filename
623 self.filename
626 self.fp
624 self.fp
627 self.filesize
625 self.filesize
628
626
629 Return:
627 Return:
630 boolean
628 boolean
631
629
632 """
630 """
631
633 nextFile = True
632 nextFile = True
634 nextDay = False
633 nextDay = False
635
634
636 for nFiles in range(self.nFiles+1):
635 for nFiles in range(self.nFiles+1):
637 for nTries in range(self.nTries):
636 for nTries in range(self.nTries):
638 fullfilename, filename = self.checkForRealPath(nextFile, nextDay)
637 fullfilename, filename = self.checkForRealPath(nextFile, nextDay)
639 if fullfilename is not None:
638 if fullfilename is not None:
@@ -643,18 +642,18 class Reader(object):
643 self.name)
642 self.name)
644 time.sleep(self.delay)
643 time.sleep(self.delay)
645 nextFile = False
644 nextFile = False
646 continue
645 continue
647
646
648 if fullfilename is not None:
647 if fullfilename is not None:
649 break
648 break
650
649
651 self.nTries = 1
650 self.nTries = 1
652 nextFile = True
651 nextFile = True
653
652
654 if nFiles == (self.nFiles - 1):
653 if nFiles == (self.nFiles - 1):
655 log.log('Trying with next day...', self.name)
654 log.log('Trying with next day...', self.name)
656 nextDay = True
655 nextDay = True
657 self.nTries = 3
656 self.nTries = 3
658
657
659 if fullfilename:
658 if fullfilename:
660 self.fileSize = os.path.getsize(fullfilename)
659 self.fileSize = os.path.getsize(fullfilename)
@@ -666,18 +665,18 class Reader(object):
666 self.flagNoMoreFiles = 0
665 self.flagNoMoreFiles = 0
667 self.fileIndex += 1
666 self.fileIndex += 1
668 return 1
667 return 1
669 else:
668 else:
670 return 0
669 return 0
671
670
672 def setNextFileOffline(self):
671 def setNextFileOffline(self):
673 """Open the next file to be readed in offline mode"""
672 """Open the next file to be readed in offline mode"""
674
673
675 try:
674 try:
676 filename = next(self.filenameList)
675 filename = next(self.filenameList)
677 self.fileIndex +=1
676 self.fileIndex +=1
678 except StopIteration:
677 except StopIteration:
679 self.flagNoMoreFiles = 1
678 self.flagNoMoreFiles = 1
680 return 0
679 return 0
681
680
682 self.filename = filename
681 self.filename = filename
683 self.fileSize = os.path.getsize(filename)
682 self.fileSize = os.path.getsize(filename)
@@ -685,22 +684,22 class Reader(object):
685 self.flagIsNewFile = 1
684 self.flagIsNewFile = 1
686
685
687 return 1
686 return 1
688
687
689 @staticmethod
688 @staticmethod
690 def isDateTimeInRange(dt, startDate, endDate, startTime, endTime):
689 def isDateTimeInRange(dt, startDate, endDate, startTime, endTime):
691 """Check if the given datetime is in range"""
690 """Check if the given datetime is in range"""
692
691
693 if startDate <= dt.date() <= endDate:
692 if startDate <= dt.date() <= endDate:
694 if startTime <= dt.time() <= endTime:
693 if startTime <= dt.time() <= endTime:
695 return True
694 return True
696 return False
695 return False
697
696
698 def verifyFile(self, filename):
697 def verifyFile(self, filename):
699 """Check for a valid file
698 """Check for a valid file
700
699
701 Arguments:
700 Arguments:
702 filename -- full path filename
701 filename -- full path filename
703
702
704 Return:
703 Return:
705 boolean
704 boolean
706 """
705 """
@@ -711,7 +710,7 class Reader(object):
711 """Check if the next file to be readed exists"""
710 """Check if the next file to be readed exists"""
712
711
713 raise NotImplementedError
712 raise NotImplementedError
714
713
715 def readFirstHeader(self):
714 def readFirstHeader(self):
716 """Parse the file header"""
715 """Parse the file header"""
717
716
@@ -783,8 +782,7 class JRODataReader(Reader):
783 Return:
782 Return:
784 str -- fullpath of the file
783 str -- fullpath of the file
785 """
784 """
786
785
787
788 if nextFile:
786 if nextFile:
789 self.set += 1
787 self.set += 1
790 if nextDay:
788 if nextDay:
@@ -796,7 +794,7 class JRODataReader(Reader):
796 prefixFileList = ['d', 'D']
794 prefixFileList = ['d', 'D']
797 elif self.ext.lower() == ".pdata": # spectra
795 elif self.ext.lower() == ".pdata": # spectra
798 prefixFileList = ['p', 'P']
796 prefixFileList = ['p', 'P']
799
797
800 # barrido por las combinaciones posibles
798 # barrido por las combinaciones posibles
801 for prefixDir in prefixDirList:
799 for prefixDir in prefixDirList:
802 thispath = self.path
800 thispath = self.path
@@ -816,9 +814,9 class JRODataReader(Reader):
816
814
817 if os.path.exists(fullfilename):
815 if os.path.exists(fullfilename):
818 return fullfilename, filename
816 return fullfilename, filename
819
817
820 return None, filename
818 return None, filename
821
819
822 def __waitNewBlock(self):
820 def __waitNewBlock(self):
823 """
821 """
824 Return 1 si se encontro un nuevo bloque de datos, 0 de otra forma.
822 Return 1 si se encontro un nuevo bloque de datos, 0 de otra forma.
@@ -860,9 +858,9 class JRODataReader(Reader):
860 def __setNewBlock(self):
858 def __setNewBlock(self):
861
859
862 if self.fp == None:
860 if self.fp == None:
863 return 0
861 return 0
864
862
865 if self.flagIsNewFile:
863 if self.flagIsNewFile:
866 self.lastUTTime = self.basicHeaderObj.utc
864 self.lastUTTime = self.basicHeaderObj.utc
867 return 1
865 return 1
868
866
@@ -875,12 +873,12 class JRODataReader(Reader):
875
873
876 currentSize = self.fileSize - self.fp.tell()
874 currentSize = self.fileSize - self.fp.tell()
877 neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize
875 neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize
878
876
879 if (currentSize >= neededSize):
877 if (currentSize >= neededSize):
880 self.basicHeaderObj.read(self.fp)
878 self.basicHeaderObj.read(self.fp)
881 self.lastUTTime = self.basicHeaderObj.utc
879 self.lastUTTime = self.basicHeaderObj.utc
882 return 1
880 return 1
883
881
884 if self.__waitNewBlock():
882 if self.__waitNewBlock():
885 self.lastUTTime = self.basicHeaderObj.utc
883 self.lastUTTime = self.basicHeaderObj.utc
886 return 1
884 return 1
@@ -892,7 +890,6 class JRODataReader(Reader):
892 self.lastUTTime = self.basicHeaderObj.utc
890 self.lastUTTime = self.basicHeaderObj.utc
893
891
894 self.flagDiscontinuousBlock = 0
892 self.flagDiscontinuousBlock = 0
895
896 if deltaTime > self.maxTimeStep:
893 if deltaTime > self.maxTimeStep:
897 self.flagDiscontinuousBlock = 1
894 self.flagDiscontinuousBlock = 1
898
895
@@ -966,10 +963,10 class JRODataReader(Reader):
966 except IOError:
963 except IOError:
967 log.error("File {} can't be opened".format(filename), self.name)
964 log.error("File {} can't be opened".format(filename), self.name)
968 return False
965 return False
969
966
970 if self.online and self.waitDataBlock(0):
967 if self.online and self.waitDataBlock(0):
971 pass
968 pass
972
969
973 basicHeaderObj = BasicHeader(LOCALTIME)
970 basicHeaderObj = BasicHeader(LOCALTIME)
974 systemHeaderObj = SystemHeader()
971 systemHeaderObj = SystemHeader()
975 radarControllerHeaderObj = RadarControllerHeader()
972 radarControllerHeaderObj = RadarControllerHeader()
@@ -996,7 +993,7 class JRODataReader(Reader):
996 dt2 = basicHeaderObj.datatime
993 dt2 = basicHeaderObj.datatime
997 if not self.isDateTimeInRange(dt1, self.startDate, self.endDate, self.startTime, self.endTime) and not \
994 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):
995 self.isDateTimeInRange(dt2, self.startDate, self.endDate, self.startTime, self.endTime):
999 flag = False
996 flag = False
1000
997
1001 fp.close()
998 fp.close()
1002 return flag
999 return flag
@@ -1105,11 +1102,11 class JRODataReader(Reader):
1105 return dateList
1102 return dateList
1106
1103
1107 def setup(self, **kwargs):
1104 def setup(self, **kwargs):
1108
1105
1109 self.set_kwargs(**kwargs)
1106 self.set_kwargs(**kwargs)
1110 if not self.ext.startswith('.'):
1107 if not self.ext.startswith('.'):
1111 self.ext = '.{}'.format(self.ext)
1108 self.ext = '.{}'.format(self.ext)
1112
1109
1113 if self.server is not None:
1110 if self.server is not None:
1114 if 'tcp://' in self.server:
1111 if 'tcp://' in self.server:
1115 address = server
1112 address = server
@@ -1131,36 +1128,36 class JRODataReader(Reader):
1131
1128
1132 for nTries in range(self.nTries):
1129 for nTries in range(self.nTries):
1133 fullpath = self.searchFilesOnLine(self.path, self.startDate,
1130 fullpath = self.searchFilesOnLine(self.path, self.startDate,
1134 self.endDate, self.expLabel, self.ext, self.walk,
1131 self.endDate, self.expLabel, self.ext, self.walk,
1135 self.filefmt, self.folderfmt)
1132 self.filefmt, self.folderfmt)
1136
1133
1137 try:
1134 try:
1138 fullpath = next(fullpath)
1135 fullpath = next(fullpath)
1139 except:
1136 except:
1140 fullpath = None
1137 fullpath = None
1141
1138
1142 if fullpath:
1139 if fullpath:
1143 break
1140 break
1144
1141
1145 log.warning(
1142 log.warning(
1146 'Waiting {} sec for a valid file in {}: try {} ...'.format(
1143 'Waiting {} sec for a valid file in {}: try {} ...'.format(
1147 self.delay, self.path, nTries + 1),
1144 self.delay, self.path, nTries + 1),
1148 self.name)
1145 self.name)
1149 time.sleep(self.delay)
1146 time.sleep(self.delay)
1150
1147
1151 if not(fullpath):
1148 if not(fullpath):
1152 raise schainpy.admin.SchainError(
1149 raise schainpy.admin.SchainError(
1153 'There isn\'t any valid file in {}'.format(self.path))
1150 'There isn\'t any valid file in {}'.format(self.path))
1154
1151
1155 pathname, filename = os.path.split(fullpath)
1152 pathname, filename = os.path.split(fullpath)
1156 self.year = int(filename[1:5])
1153 self.year = int(filename[1:5])
1157 self.doy = int(filename[5:8])
1154 self.doy = int(filename[5:8])
1158 self.set = int(filename[8:11]) - 1
1155 self.set = int(filename[8:11]) - 1
1159 else:
1156 else:
1160 log.log("Searching files in {}".format(self.path), self.name)
1157 log.log("Searching files in {}".format(self.path), self.name)
1161 self.filenameList = self.searchFilesOffLine(self.path, self.startDate,
1158 self.filenameList = self.searchFilesOffLine(self.path, self.startDate,
1162 self.endDate, self.expLabel, self.ext, self.walk, self.filefmt, self.folderfmt)
1159 self.endDate, self.expLabel, self.ext, self.walk, self.filefmt, self.folderfmt)
1163
1160
1164 self.setNextFile()
1161 self.setNextFile()
1165
1162
1166 return
1163 return
@@ -1181,7 +1178,7 class JRODataReader(Reader):
1181 self.dataOut.useLocalTime = self.basicHeaderObj.useLocalTime
1178 self.dataOut.useLocalTime = self.basicHeaderObj.useLocalTime
1182
1179
1183 self.dataOut.ippSeconds = self.radarControllerHeaderObj.ippSeconds / self.nTxs
1180 self.dataOut.ippSeconds = self.radarControllerHeaderObj.ippSeconds / self.nTxs
1184
1181
1185 def getFirstHeader(self):
1182 def getFirstHeader(self):
1186
1183
1187 raise NotImplementedError
1184 raise NotImplementedError
@@ -1214,8 +1211,8 class JRODataReader(Reader):
1214 """
1211 """
1215
1212
1216 Arguments:
1213 Arguments:
1217 path :
1214 path :
1218 startDate :
1215 startDate :
1219 endDate :
1216 endDate :
1220 startTime :
1217 startTime :
1221 endTime :
1218 endTime :
@@ -1284,7 +1281,7 class JRODataWriter(Reader):
1284 dtype_width = get_dtype_width(dtype_index)
1281 dtype_width = get_dtype_width(dtype_index)
1285
1282
1286 return dtype_width
1283 return dtype_width
1287
1284
1288 def getProcessFlags(self):
1285 def getProcessFlags(self):
1289
1286
1290 processFlags = 0
1287 processFlags = 0
@@ -1322,9 +1319,9 class JRODataWriter(Reader):
1322
1319
1323 self.basicHeaderObj.size = self.basicHeaderSize # bytes
1320 self.basicHeaderObj.size = self.basicHeaderSize # bytes
1324 self.basicHeaderObj.version = self.versionFile
1321 self.basicHeaderObj.version = self.versionFile
1325 self.basicHeaderObj.dataBlock = self.nTotalBlocks
1322 self.basicHeaderObj.dataBlock = self.nTotalBlocks
1326 utc = numpy.floor(self.dataOut.utctime)
1323 utc = numpy.floor(self.dataOut.utctime)
1327 milisecond = (self.dataOut.utctime - utc) * 1000.0
1324 milisecond = (self.dataOut.utctime - utc) * 1000.0
1328 self.basicHeaderObj.utc = utc
1325 self.basicHeaderObj.utc = utc
1329 self.basicHeaderObj.miliSecond = milisecond
1326 self.basicHeaderObj.miliSecond = milisecond
1330 self.basicHeaderObj.timeZone = self.dataOut.timeZone
1327 self.basicHeaderObj.timeZone = self.dataOut.timeZone
@@ -1465,9 +1462,9 class JRODataWriter(Reader):
1465 if self.dataOut.datatime.date() > self.fileDate:
1462 if self.dataOut.datatime.date() > self.fileDate:
1466 setFile = 0
1463 setFile = 0
1467 self.nTotalBlocks = 0
1464 self.nTotalBlocks = 0
1468
1465
1469 filen = '{}{:04d}{:03d}{:03d}{}'.format(
1466 filen = '{}{:04d}{:03d}{:03d}{}'.format(
1470 self.optchar, timeTuple.tm_year, timeTuple.tm_yday, setFile, ext)
1467 self.optchar, timeTuple.tm_year, timeTuple.tm_yday, setFile, ext)
1471
1468
1472 filename = os.path.join(path, subfolder, filen)
1469 filename = os.path.join(path, subfolder, filen)
1473
1470
@@ -1515,11 +1512,11 class JRODataWriter(Reader):
1515 self.ext = ext.lower()
1512 self.ext = ext.lower()
1516
1513
1517 self.path = path
1514 self.path = path
1518
1515
1519 if set is None:
1516 if set is None:
1520 self.setFile = -1
1517 self.setFile = -1
1521 else:
1518 else:
1522 self.setFile = set - 1
1519 self.setFile = set - 1
1523
1520
1524 self.blocksPerFile = blocksPerFile
1521 self.blocksPerFile = blocksPerFile
1525 self.profilesPerBlock = profilesPerBlock
1522 self.profilesPerBlock = profilesPerBlock
@@ -1572,4 +1569,4 class printInfo(Operation):
1572 else:
1569 else:
1573 log.warning('Header {} Not found in object'.format(header))
1570 log.warning('Header {} Not found in object'.format(header))
1574
1571
1575 self.__printInfo = False
1572 self.__printInfo = False No newline at end of file
@@ -430,7 +430,6 class SpectraProc(ProcessingUnit):
430
430
431 return 1
431 return 1
432
432
433
434 class GetSNR(Operation):
433 class GetSNR(Operation):
435 '''
434 '''
436 Written by R. Flores
435 Written by R. Flores
@@ -535,17 +534,17 class removeInterference(Operation):
535 for i in range(cspc.shape[0]):
534 for i in range(cspc.shape[0]):
536 LinePower= numpy.sum(realCspc[i], axis=0)
535 LinePower= numpy.sum(realCspc[i], axis=0)
537 Threshold = numpy.amax(LinePower)-numpy.sort(LinePower)[len(Heights)-int(len(Heights)*0.1)]
536 Threshold = numpy.amax(LinePower)-numpy.sort(LinePower)[len(Heights)-int(len(Heights)*0.1)]
538 SelectedHeights = Heights[ numpy.where(LinePower < Threshold) ]
537 SelectedHeights = Heights[ numpy.where( LinePower < Threshold ) ]
539 InterferenceSum = numpy.sum(realCspc[i,:,SelectedHeights],axis=0)
538 InterferenceSum = numpy.sum( realCspc[i,:,SelectedHeights], axis=0 )
540 InterferenceThresholdMin = numpy.sort(InterferenceSum)[int(len(InterferenceSum)*0.98)]
539 InterferenceThresholdMin = numpy.sort(InterferenceSum)[int(len(InterferenceSum)*0.98)]
541 InterferenceThresholdMax = numpy.sort(InterferenceSum)[int(len(InterferenceSum)*0.99)]
540 InterferenceThresholdMax = numpy.sort(InterferenceSum)[int(len(InterferenceSum)*0.99)]
542
541
543
542
544 InterferenceRange = numpy.where(([InterferenceSum > InterferenceThresholdMin]))# , InterferenceSum < InterferenceThresholdMax]) )
543 InterferenceRange = numpy.where( ([InterferenceSum > InterferenceThresholdMin]))# , InterferenceSum < InterferenceThresholdMax]) )
545 #InterferenceRange = numpy.where( ([InterferenceRange < InterferenceThresholdMax]))
544 #InterferenceRange = numpy.where( ([InterferenceRange < InterferenceThresholdMax]))
546 if len(InterferenceRange)<int(cspc.shape[1]*0.3):
545 if len(InterferenceRange)<int(cspc.shape[1]*0.3):
547 cspc[i,InterferenceRange,:] = numpy.NaN
546 cspc[i,InterferenceRange,:] = numpy.NaN
548
547
549 self.dataOut.data_cspc = cspc
548 self.dataOut.data_cspc = cspc
550
549
551 def removeInterference(self, interf=2, hei_interf=None, nhei_interf=None, offhei_interf=None):
550 def removeInterference(self, interf=2, hei_interf=None, nhei_interf=None, offhei_interf=None):
@@ -74,7 +74,7 if __name__ == '__main__':
74 walk=1,
74 walk=1,
75 expLabel='150EEJ',
75 expLabel='150EEJ',
76 getByBlock=1,
76 getByBlock=1,
77 delay=20)
77 delay=20)
78
78
79 # opObj00 = readUnitConfObj.addOperation(name='printInfo')
79 # opObj00 = readUnitConfObj.addOperation(name='printInfo')
80 # opObj00 = readUnitConfObj.addOperation(name='printNumberOfBlock')
80 # opObj00 = readUnitConfObj.addOperation(name='printNumberOfBlock')
General Comments 0
You need to be logged in to leave comments. Login now