diff --git a/schainpy/model/graphics/jroplot_base.py b/schainpy/model/graphics/jroplot_base.py index fd2eca7..c6e642c 100644 --- a/schainpy/model/graphics/jroplot_base.py +++ b/schainpy/model/graphics/jroplot_base.py @@ -231,7 +231,6 @@ class Plot(Operation): self.attr_time = kwargs.get('attr_time', 'utctime') self.attr_data = kwargs.get('attr_data', 'data_param') self.decimation = kwargs.get('decimation', None) - self.showSNR = kwargs.get('showSNR', False) self.oneFigure = kwargs.get('oneFigure', True) self.width = kwargs.get('width', None) self.height = kwargs.get('height', None) @@ -262,6 +261,9 @@ class Plot(Operation): self.name ) + if isinstance(self.attr_data, str): + self.attr_data = [self.attr_data] + def __setup_plot(self): ''' Common setup for all figures, here figures and axes are created @@ -322,6 +324,7 @@ class Plot(Operation): self.pf_axes.append(cax) for n in range(self.nrows): + print(self.nrows) if self.colormaps is not None: cmap = plt.get_cmap(self.colormaps[n]) else: @@ -503,33 +506,33 @@ class Plot(Operation): fig = self.figures[n] - figname = os.path.join( - self.save, - self.save_code, - '{}_{}.png'.format( - self.save_code, - self.getDateTime(self.data.max_time).strftime( - '%Y%m%d_%H%M%S' - ), - ) - ) - log.log('Saving figure: {}'.format(figname), self.name) - if not os.path.isdir(os.path.dirname(figname)): - os.makedirs(os.path.dirname(figname)) - fig.savefig(figname) - if self.throttle == 0: figname = os.path.join( self.save, - '{}_{}.png'.format( + self.save_code, + '{}_{}.png'.format( self.save_code, - self.getDateTime(self.data.min_time).strftime( - '%Y%m%d' + self.getDateTime(self.data.max_time).strftime( + '%Y%m%d_%H%M%S' ), ) ) + log.log('Saving figure: {}'.format(figname), self.name) + if not os.path.isdir(os.path.dirname(figname)): + os.makedirs(os.path.dirname(figname)) fig.savefig(figname) + figname = os.path.join( + self.save, + '{}_{}.png'.format( + self.save_code, + self.getDateTime(self.data.min_time).strftime( + '%Y%m%d' + ), + ) + ) + fig.savefig(figname) + def send_to_server(self): ''' ''' diff --git a/schainpy/model/graphics/jroplot_parameters.py b/schainpy/model/graphics/jroplot_parameters.py index 84c8d2d..8909167 100644 --- a/schainpy/model/graphics/jroplot_parameters.py +++ b/schainpy/model/graphics/jroplot_parameters.py @@ -176,7 +176,7 @@ class GenericRTIPlot(Plot): def setup(self): self.xaxis = 'time' self.ncols = 1 - self.nrows = self.data.shape(self.attr_data)[0] + self.nrows = self.data.shape('param')[0] self.nplots = self.nrows self.plots_adjust.update({'hspace':0.8, 'left': 0.1, 'bottom': 0.08, 'right':0.95, 'top': 0.95}) @@ -185,13 +185,12 @@ class GenericRTIPlot(Plot): self.ylabel = 'Range [km]' if not self.titles: - self.titles = self.data.parameters \ - if self.data.parameters else ['Param {}'.format(x) for x in range(self.nrows)] + self.titles = ['Param {}'.format(x) for x in range(self.nrows)] def update(self, dataOut): data = { - self.attr_data : getattr(dataOut, self.attr_data) + 'param' : numpy.concatenate([getattr(dataOut, attr) for attr in self.attr_data], axis=0) } meta = {} @@ -202,7 +201,7 @@ class GenericRTIPlot(Plot): # self.data.normalize_heights() self.x = self.data.times self.y = self.data.yrange - self.z = self.data[self.attr_data] + self.z = self.data['param'] self.z = numpy.ma.masked_invalid(self.z) diff --git a/schainpy/model/io/bltrIO_spectra.py b/schainpy/model/io/bltrIO_spectra.py index 4045f34..f98874d 100644 --- a/schainpy/model/io/bltrIO_spectra.py +++ b/schainpy/model/io/bltrIO_spectra.py @@ -1,16 +1,8 @@ import os import sys import glob -import fnmatch -import datetime -import time -import re -import h5py import numpy -import pylab as plb -from scipy.optimize import curve_fit -from scipy import asarray as ar, exp SPEED_OF_LIGHT = 299792458 SPEED_OF_LIGHT = 3e8 @@ -19,9 +11,9 @@ from .utils import folder_in_range import schainpy.admin from schainpy.model.data.jrodata import Spectra -from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation, MPDecorator +from schainpy.model.proc.jroproc_base import ProcessingUnit from schainpy.utils import log -from schainpy.model.io.jroIO_base import JRODataReader + def pol2cart(rho, phi): x = rho * numpy.cos(phi) @@ -423,7 +415,6 @@ class BLTRSpectraReader (ProcessingUnit): copy = self.data_block.copy() spc = copy * numpy.conjugate(copy) self.data_spc = numpy.absolute(spc) # valor absoluto o magnitud - self.dataOut.data_spc = self.data_spc cspc = self.data_block.copy() self.data_cspc = self.data_block.copy() diff --git a/schainpy/model/io/jroIO_param.py b/schainpy/model/io/jroIO_param.py index 4733785..9df02d5 100644 --- a/schainpy/model/io/jroIO_param.py +++ b/schainpy/model/io/jroIO_param.py @@ -196,11 +196,11 @@ class HDFReader(Reader, ProcessingUnit): if self.description: for key, value in self.description['Metadata'].items(): - meta[key] = self.fp[value].value + meta[key] = self.fp[value][()] else: grp = self.fp['Metadata'] for name in grp: - meta[name] = grp[name].value + meta[name] = grp[name][()] if self.extras: for key, value in self.extras.items(): @@ -217,26 +217,26 @@ class HDFReader(Reader, ProcessingUnit): for key, value in self.description['Data'].items(): if isinstance(value, str): if isinstance(self.fp[value], h5py.Dataset): - data[key] = self.fp[value].value + data[key] = self.fp[value][()] elif isinstance(self.fp[value], h5py.Group): array = [] for ch in self.fp[value]: - array.append(self.fp[value][ch].value) + array.append(self.fp[value][ch][()]) data[key] = numpy.array(array) elif isinstance(value, list): array = [] for ch in value: - array.append(self.fp[ch].value) + array.append(self.fp[ch][()]) data[key] = numpy.array(array) else: grp = self.fp['Data'] for name in grp: if isinstance(grp[name], h5py.Dataset): - array = grp[name].value + array = grp[name][()] elif isinstance(grp[name], h5py.Group): array = [] for ch in grp[name]: - array.append(grp[name][ch].value) + array.append(grp[name][ch][()]) array = numpy.array(array) else: log.warning('Unknown type: {}'.format(name)) diff --git a/schainpy/model/proc/bltrproc_parameters.py b/schainpy/model/proc/bltrproc_parameters.py index 0b5eba2..925d791 100644 --- a/schainpy/model/proc/bltrproc_parameters.py +++ b/schainpy/model/proc/bltrproc_parameters.py @@ -5,14 +5,10 @@ Created on Oct 24, 2016 ''' import numpy -import copy import datetime import time -from time import gmtime -from numpy import transpose - -from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation, MPDecorator +from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation from schainpy.model.data.jrodata import Parameters @@ -68,23 +64,14 @@ class BLTRParametersProc(ProcessingUnit): self.dataOut.data_param = self.dataOut.data[mode] self.dataOut.heightList = self.dataOut.height[0] self.dataOut.data_snr = self.dataOut.data_snr[mode] - - data_param = numpy.zeros([4, len(self.dataOut.heightList)]) - SNRavg = numpy.average(self.dataOut.data_snr, axis=0) SNRavgdB = 10*numpy.log10(SNRavg) + self.dataOut.data_snr_avg_db = SNRavgdB.reshape(1, *SNRavgdB.shape) + # Censoring Data if snr_threshold is not None: for i in range(3): self.dataOut.data_param[i][SNRavgdB <= snr_threshold] = numpy.nan - # Including AvgSNR in data_param - for i in range(data_param.shape[0]): - if i == 3: - data_param[i] = SNRavgdB - else: - data_param[i] = self.dataOut.data_param[i] - - self.dataOut.data_param = data_param # TODO