From 66d058f577a68e50e9676058c39d27b365d89512 2022-06-02 01:22:16 From: Juan C. Espinoza Date: 2022-06-02 01:22:16 Subject: [PATCH] Fix HDF writer structure & az offset in pedestalinformation --- diff --git a/schainpy/model/graphics/jroplot_base.py b/schainpy/model/graphics/jroplot_base.py index c99c030..a6a0be0 100644 --- a/schainpy/model/graphics/jroplot_base.py +++ b/schainpy/model/graphics/jroplot_base.py @@ -516,7 +516,7 @@ class Plot(Operation): ''' if stitle is not None: s_string = re.sub(r"[^A-Z0-9.]","",str(stitle)) - new_string=s_string[:3]+"_"+"_"+s_string[4:6]+"_"+s_string[6:] + new_string=s_string[:3]+"_"+s_string[4:6]+"_"+s_string[6:] if self.oneFigure: if (self.data.max_time - self.save_time) <= self.save_period: diff --git a/schainpy/model/io/jroIO_param.py b/schainpy/model/io/jroIO_param.py index 10c7482..90a51e4 100644 --- a/schainpy/model/io/jroIO_param.py +++ b/schainpy/model/io/jroIO_param.py @@ -625,15 +625,17 @@ class HDFWriter(Operation): return key return name else: - if 'Metadata' in self.description: - meta = self.description['Metadata'] + if 'Data' in self.description: + data = self.description['Data'] + if 'Metadata' in self.description: + data.update(self.description['Metadata']) else: - meta = self.description - if name in meta: - if isinstance(meta[name], list): - return meta[name][x] - elif isinstance(meta[name], dict): - for key, value in meta[name].items(): + data = self.description + if name in data: + if isinstance(data[name], list): + return data[name][x] + elif isinstance(data[name], dict): + for key, value in data[name].items(): return value[x] if 'cspc' in name: return 'pair{:02d}'.format(x) @@ -677,6 +679,7 @@ class HDFWriter(Operation): data = [] for dsInfo in self.dsList: + if dsInfo['nDim'] == 0: ds = grp.create_dataset( self.getLabel(dsInfo['variable']), @@ -691,10 +694,14 @@ class HDFWriter(Operation): sgrp = grp.create_group(label) else: sgrp = grp + if self.blocksPerFile == 1: + shape = dsInfo['shape'][1:] + else: + shape = (self.blocksPerFile, ) + dsInfo['shape'][1:] for i in range(dsInfo['dsNumber']): ds = sgrp.create_dataset( self.getLabel(dsInfo['variable'], i), - (self.blocksPerFile, ) + dsInfo['shape'][1:], + shape, chunks=True, dtype=dsInfo['dtype']) dtsets.append(ds) @@ -720,7 +727,10 @@ class HDFWriter(Operation): if ch == -1: ds[self.blockIndex] = getattr(self.dataOut, attr) else: - ds[self.blockIndex] = getattr(self.dataOut, attr)[ch] + if self.blocksPerFile == 1: + ds[:] = getattr(self.dataOut, attr)[ch] + else: + ds[self.blockIndex] = getattr(self.dataOut, attr)[ch] self.fp.flush() self.blockIndex += 1 diff --git a/schainpy/model/proc/jroproc_parameters.py b/schainpy/model/proc/jroproc_parameters.py index 92ee632..270dd8e 100644 --- a/schainpy/model/proc/jroproc_parameters.py +++ b/schainpy/model/proc/jroproc_parameters.py @@ -105,6 +105,7 @@ class ParametersProc(ProcessingUnit): self.dataOut.frequency = self.dataIn.frequency # self.dataOut.noise = self.dataIn.noise self.dataOut.runNextUnit = self.dataIn.runNextUnit + self.dataOut.h0 = self.dataIn.h0 def run(self, runNextUnit = 0): @@ -4256,10 +4257,9 @@ class PedestalInformation(Operation): dataOut.flagNoData = False if numpy.isnan(az) or numpy.isnan(el) : dataOut.flagNoData = True - #print("NAN") return dataOut - dataOut.azimuth = az - az_offset + dataOut.azimuth = az + az_offset if dataOut.azimuth < 0: dataOut.azimuth += 360 dataOut.elevation = el