diff --git a/mhkit/acoustics/base.py b/mhkit/acoustics/base.py index a4c97d7c..7a68d6bc 100644 --- a/mhkit/acoustics/base.py +++ b/mhkit/acoustics/base.py @@ -73,7 +73,7 @@ def sound_pressure_spectral_density(P, fs, window=1): return out -def apply_calibration(spsd, sensitivity_curve, fill_nan): +def apply_calibration(spsd, sensitivity_curve, fill_value): """ Applies custom calibration to spectral density values @@ -83,7 +83,7 @@ def apply_calibration(spsd, sensitivity_curve, fill_nan): Mean square sound pressure spectral density in V^2/Hz. sensitivity_curve: xarray.DataArray (freq) Calibrated sensitivity curve in units of dB rel 1 V^2/uPa^2. - fill_nan: numeric + fill_value: numeric Value with which to fill values missing from calibration curve, in units of dB rel 1 V^2/uPa^2. @@ -96,9 +96,11 @@ def apply_calibration(spsd, sensitivity_curve, fill_nan): # Read calibration curve freq = sensitivity_curve.dims[0] # Interpolate calibration curve to desired value - calibration = sensitivity_curve.interp({freq: spsd["freq"]}).drop(freq) + calibration = sensitivity_curve.interp({freq: spsd["freq"]}, method="linear").drop( + freq + ) # Fill missing with provided value - calibration = calibration.fillna(fill_nan) + calibration = calibration.fillna(fill_value) # Subtract from sound pressure spectral density Sf_ratio = 10 ** (calibration / 10) # V^2/uPa^2 @@ -248,6 +250,10 @@ def time_average(spsdl, window=60, method="median", method_arg=None): out.attrs["units"] = spsdl.units out.attrs["comment"] = f"Time average {method}" + # This coordinate hangs on for some reason + if method == "quantile": + out = out.drop_vars("quantile") + return out diff --git a/mhkit/acoustics/io.py b/mhkit/acoustics/io.py index ca2081f1..5f5215d1 100644 --- a/mhkit/acoustics/io.py +++ b/mhkit/acoustics/io.py @@ -133,7 +133,7 @@ def read_hydrophone( "valid_min": -max_sat, "valid_max": max_sat, "fs": fs, - "filename": filename.replace("\\", "/").split("/")[-1], + "filename": str(filename).replace("\\", "/").split("/")[-1], }, ) @@ -272,10 +272,6 @@ def read_iclisten(filename, sensitivity=None, use_metadata=True): Sf = int(hphone_sensitivity.split(" ")[0]) if use_metadata: sensitivity = Sf - # else: - # warnings.warn( - # f"Overriding manufacturer sensitivity {Sf} with user-defined sensitivity {sensitivity}." - # ) out = read_hydrophone( filename,