Better output of SLM for plotting as a line
This commit is contained in:
parent
accde58b5b
commit
7b00e3b2bd
@ -8,6 +8,7 @@ from .wrappers import Slm as pyxSlm
|
||||
import numpy as np
|
||||
from .lasp_common import (TimeWeighting, FreqWeighting, P_REF)
|
||||
from .filter import SPLFilterDesigner
|
||||
import logging
|
||||
|
||||
__all__ = ['SLM', 'Dummy']
|
||||
|
||||
@ -168,15 +169,33 @@ class SLM:
|
||||
|
||||
def return_as_dict(self, dat):
|
||||
"""
|
||||
Helper function used to
|
||||
Helper function used to return resulting data in a proper way.
|
||||
|
||||
Returns a dictionary with the following keys:
|
||||
'data': The y-values of Lmax, Lpeak, etc
|
||||
'overall': The overall value, in [dB] **COULD BE NOT PART OF
|
||||
OUTPUT**
|
||||
'x': The exponents of the octave, such that the midband frequency
|
||||
corresponds to 1000*G**(x/b), where b is the bands, either 1, 3, or
|
||||
6
|
||||
'mid': The center frequencies of each band, as a numpy float array
|
||||
'nom': The nominal frequency array text, as textual output corresponding
|
||||
to the frequencies in x, they are '16', .. up to '16k'
|
||||
|
||||
"""
|
||||
output = {}
|
||||
for i, x in enumerate(self.xs):
|
||||
# '31.5' to '16k'
|
||||
output[self.nom_txt[i]] = { 'data': dat[i],
|
||||
'x': x}
|
||||
output['nom'] = self.nom_txt
|
||||
output['x'] = list(self.xs)
|
||||
output['mid'] = self.fbdesigner.fm(list(self.xs))
|
||||
logging.debug(list(self.xs))
|
||||
logging.debug(output['mid'])
|
||||
# Indiced at 0, as pyxSLM always returns 2D arrays.
|
||||
|
||||
if self.include_overall and self.fbdesigner is not None:
|
||||
output['overall'] = {'data': dat[i+1], 'x': 0}
|
||||
output['overall'] = dat[-1]
|
||||
output['y'] = np.asarray(dat[:-1,0])
|
||||
else:
|
||||
output['y'] = np.asarray(dat[:,0])
|
||||
return output
|
||||
|
||||
def Leq(self):
|
||||
|
Loading…
Reference in New Issue
Block a user