@@ -566,12 +566,15 class WeatherParamsPlot(Plot): | |||||
566 | else: |
|
566 | else: | |
567 | factor = 1 |
|
567 | factor = 1 | |
568 |
|
568 | |||
|
569 | if hasattr(dataOut, 'dparam'): | |||
|
570 | tmp = getattr(dataOut, 'data_param') | |||
|
571 | else: | |||
|
572 | ||||
569 |
if 'S' in self.attr_data[0]: |
|
573 | if 'S' in self.attr_data[0]: | |
570 | tmp = 10*numpy.log10(10.0*getattr(dataOut, 'data_param')[:,0,:]/(factor)) |
|
574 | tmp = 10*numpy.log10(10.0*getattr(dataOut, 'data_param')[:,0,:]/(factor)) | |
571 | else: |
|
575 | else: | |
572 | tmp = getattr(dataOut, 'data_param')[:,vars[self.attr_data[0]],:] |
|
576 | tmp = getattr(dataOut, 'data_param')[:,vars[self.attr_data[0]],:] | |
573 |
|
577 | |||
574 |
|
||||
575 | if self.mask: |
|
578 | if self.mask: | |
576 | mask = dataOut.data_param[:,3,:] < self.mask |
|
579 | mask = dataOut.data_param[:,3,:] < self.mask | |
577 | tmp = numpy.ma.masked_array(tmp, mask=mask) |
|
580 | tmp = numpy.ma.masked_array(tmp, mask=mask) | |
@@ -627,6 +630,9 class WeatherParamsPlot(Plot): | |||||
627 | self.zmax = self.zmax if self.zmax else numpy.nanmax(z) |
|
630 | self.zmax = self.zmax if self.zmax else numpy.nanmax(z) | |
628 | self.zmin = self.zmin if self.zmin is not None else numpy.nanmin(z) |
|
631 | self.zmin = self.zmin if self.zmin is not None else numpy.nanmin(z) | |
629 |
|
632 | |||
|
633 | if isinstance(data['mode_op'], bytes): | |||
|
634 | data['mode_op'] = data['mode_op'].decode() | |||
|
635 | ||||
630 | if data['mode_op'] == 'RHI': |
|
636 | if data['mode_op'] == 'RHI': | |
631 | try: |
|
637 | try: | |
632 | if self.data['mode_op'][-2] == 'PPI': |
|
638 | if self.data['mode_op'][-2] == 'PPI': |
@@ -481,6 +481,7 class Reader(object): | |||||
481 | folderfmt = None |
|
481 | folderfmt = None | |
482 | open_file = open |
|
482 | open_file = open | |
483 | open_mode = 'rb' |
|
483 | open_mode = 'rb' | |
|
484 | filter =None | |||
484 |
|
485 | |||
485 | def run(self): |
|
486 | def run(self): | |
486 |
|
487 | |||
@@ -519,11 +520,13 class Reader(object): | |||||
519 | return |
|
520 | return | |
520 |
|
521 | |||
521 | def find_files(self, folders, ext, filefmt, startDate=None, endDate=None, |
|
522 | def find_files(self, folders, ext, filefmt, startDate=None, endDate=None, | |
522 | expLabel='', last=False): |
|
523 | expLabel='', filter=None,last=False): | |
523 |
|
524 | |||
524 | for path in folders: |
|
525 | for path in folders: | |
525 | files = glob.glob1(path, '*{}'.format(ext)) |
|
526 | files = glob.glob1(path, '*{}'.format(ext)) | |
526 | files.sort() |
|
527 | files.sort() | |
|
528 | if filter is not None: | |||
|
529 | files= [ file for file in files if os.path.splitext(file)[0][-len(filter):] == filter] | |||
527 | if last: |
|
530 | if last: | |
528 | if files: |
|
531 | if files: | |
529 | fo = files[-1] |
|
532 | fo = files[-1] | |
@@ -549,7 +552,7 class Reader(object): | |||||
549 |
|
552 | |||
550 | def searchFilesOffLine(self, path, startDate, endDate, |
|
553 | def searchFilesOffLine(self, path, startDate, endDate, | |
551 | expLabel, ext, walk, |
|
554 | expLabel, ext, walk, | |
552 | filefmt, folderfmt): |
|
555 | filefmt, folderfmt,filter): | |
553 | """Search files in offline mode for the given arguments |
|
556 | """Search files in offline mode for the given arguments | |
554 |
|
557 | |||
555 | Return: |
|
558 | Return: | |
@@ -563,11 +566,11 class Reader(object): | |||||
563 | folders = path.split(',') |
|
566 | folders = path.split(',') | |
564 |
|
567 | |||
565 | return self.find_files( |
|
568 | return self.find_files( | |
566 | folders, ext, filefmt, startDate, endDate, expLabel) |
|
569 | folders, ext, filefmt, startDate, endDate, expLabel,filter) | |
567 |
|
570 | |||
568 | def searchFilesOnLine(self, path, startDate, endDate, |
|
571 | def searchFilesOnLine(self, path, startDate, endDate, | |
569 | expLabel, ext, walk, |
|
572 | expLabel, ext, walk, | |
570 | filefmt, folderfmt): |
|
573 | filefmt, folderfmt,filter): | |
571 | """Search for the last file of the last folder |
|
574 | """Search for the last file of the last folder | |
572 |
|
575 | |||
573 | Arguments: |
|
576 | Arguments: | |
@@ -586,8 +589,7 class Reader(object): | |||||
586 | else: |
|
589 | else: | |
587 | folders = path.split(',') |
|
590 | folders = path.split(',') | |
588 |
|
591 | |||
589 | return self.find_files( |
|
592 | return self.find_files(folders, ext, filefmt, startDate, endDate, expLabel, filter,last=True) | |
590 | folders, ext, filefmt, startDate, endDate, expLabel, last=True) |
|
|||
591 |
|
593 | |||
592 | def setNextFile(self): |
|
594 | def setNextFile(self): | |
593 | """Set the next file to be readed open it and parse de file header""" |
|
595 | """Set the next file to be readed open it and parse de file header""" |
@@ -94,6 +94,8 class HDFReader(Reader, ProcessingUnit): | |||||
94 | self.filefmt = "*%Y%j***" |
|
94 | self.filefmt = "*%Y%j***" | |
95 | self.folderfmt = "*%Y%j" |
|
95 | self.folderfmt = "*%Y%j" | |
96 | self.utcoffset = 0 |
|
96 | self.utcoffset = 0 | |
|
97 | self.filter = None | |||
|
98 | self.dparam = None | |||
97 |
|
99 | |||
98 | def setup(self, **kwargs): |
|
100 | def setup(self, **kwargs): | |
99 |
|
101 | |||
@@ -107,7 +109,7 class HDFReader(Reader, ProcessingUnit): | |||||
107 | for nTries in range(self.nTries): |
|
109 | for nTries in range(self.nTries): | |
108 | fullpath = self.searchFilesOnLine(self.path, self.startDate, |
|
110 | fullpath = self.searchFilesOnLine(self.path, self.startDate, | |
109 | self.endDate, self.expLabel, self.ext, self.walk, |
|
111 | self.endDate, self.expLabel, self.ext, self.walk, | |
110 | self.filefmt, self.folderfmt) |
|
112 | self.filefmt, self.folderfmt,self.filter) | |
111 | try: |
|
113 | try: | |
112 | fullpath = next(fullpath) |
|
114 | fullpath = next(fullpath) | |
113 | except: |
|
115 | except: | |
@@ -133,7 +135,7 class HDFReader(Reader, ProcessingUnit): | |||||
133 | else: |
|
135 | else: | |
134 | log.log("Searching files in {}".format(self.path), self.name) |
|
136 | log.log("Searching files in {}".format(self.path), self.name) | |
135 | self.filenameList = self.searchFilesOffLine(self.path, self.startDate, |
|
137 | self.filenameList = self.searchFilesOffLine(self.path, self.startDate, | |
136 | self.endDate, self.expLabel, self.ext, self.walk, self.filefmt, self.folderfmt) |
|
138 | self.endDate, self.expLabel, self.ext, self.walk, self.filefmt, self.folderfmt,self.filter) | |
137 |
|
139 | |||
138 | self.setNextFile() |
|
140 | self.setNextFile() | |
139 |
|
141 | |||
@@ -149,6 +151,9 class HDFReader(Reader, ProcessingUnit): | |||||
149 | if 'type' in self.meta: |
|
151 | if 'type' in self.meta: | |
150 | self.dataOut = eval(self.meta['type'])() |
|
152 | self.dataOut = eval(self.meta['type'])() | |
151 |
|
153 | |||
|
154 | if self.dparam: | |||
|
155 | setattr(self.dataOut, "dparam", 1) | |||
|
156 | ||||
152 | for attr in self.meta: |
|
157 | for attr in self.meta: | |
153 | setattr(self.dataOut, attr, self.meta[attr]) |
|
158 | setattr(self.dataOut, attr, self.meta[attr]) | |
154 |
|
159 | |||
@@ -171,7 +176,10 class HDFReader(Reader, ProcessingUnit): | |||||
171 | startTime = self.startTime |
|
176 | startTime = self.startTime | |
172 | endTime = self.endTime |
|
177 | endTime = self.endTime | |
173 | thisUtcTime = self.data['utctime'] + self.utcoffset |
|
178 | thisUtcTime = self.data['utctime'] + self.utcoffset | |
|
179 | try: | |||
174 | self.interval = numpy.min(thisUtcTime[1:] - thisUtcTime[:-1]) |
|
180 | self.interval = numpy.min(thisUtcTime[1:] - thisUtcTime[:-1]) | |
|
181 | except: | |||
|
182 | self.interval = 0 | |||
175 | thisDatetime = datetime.datetime.utcfromtimestamp(thisUtcTime[0]) |
|
183 | thisDatetime = datetime.datetime.utcfromtimestamp(thisUtcTime[0]) | |
176 |
|
184 | |||
177 | thisDate = thisDatetime.date() |
|
185 | thisDate = thisDatetime.date() | |
@@ -255,6 +263,9 class HDFReader(Reader, ProcessingUnit): | |||||
255 | if self.data[attr].ndim == 1: |
|
263 | if self.data[attr].ndim == 1: | |
256 | setattr(self.dataOut, attr, self.data[attr][self.blockIndex]) |
|
264 | setattr(self.dataOut, attr, self.data[attr][self.blockIndex]) | |
257 | else: |
|
265 | else: | |
|
266 | if self.dparam: | |||
|
267 | setattr(self.dataOut, attr, self.data[attr]) | |||
|
268 | else: | |||
258 | setattr(self.dataOut, attr, self.data[attr][:, self.blockIndex]) |
|
269 | setattr(self.dataOut, attr, self.data[attr][:, self.blockIndex]) | |
259 |
|
270 | |||
260 | self.dataOut.flagNoData = False |
|
271 | self.dataOut.flagNoData = False |
General Comments 0
You need to be logged in to leave comments.
Login now