##// END OF EJS Templates
update jroIO_base.py se adiciona filter, jroIO_param se adicion atributo dparam para identificar data procesada, leer una sola marca de tiempo y en jroplot_parameters se utiliza como flag el dparam para identificar la data procesada y plotearla
avaldezp -
r1534:41e830abc3ce
parent child
Show More
@@ -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