def METHOD_NAME(self, cal_type, **kwargs):
    """Calibrate to get volume backscattering strength (Sv) from AZFP power data.
    The calibration formulae used here is based on Appendix G in
    the GU-100-AZFP-01-R50 Operator's Manual.
    Note a Sv_offset factor that varies depending on frequency is used
    in the calibration as documented on p.90.
    See calc_Sv_offset() in convert/azfp.py
    """
    # Compute range in meters
    # range computation different for Sv and TS per AZFP matlab code
    self.compute_echo_range(cal_type=cal_type)
    # Compute derived params
    # TODO: take care of dividing by zero encountered in log10
    spreading_loss = 20 * np.log10(self.range_meter)
    absorption_loss = 2 * self.env_params["sound_absorption"] * self.range_meter
    SL = self.cal_params["TVR"] + 20 * np.log10(self.cal_params["VTX"])  # eq.(2)
    # scaling factor (slope) in Fig.G-1, units Volts/dB], see p.84
    a = self.cal_params["DS"]
    EL = (
        self.cal_params["EL"]
        - 2.5 / a
        + self.echodata["Sonar/Beam_group1"]["backscatter_r"] / (26214 * a)
    )  # eq.(5)
    if cal_type == "Sv":
        # eq.(9)
        out = (
            EL
            - SL
            + spreading_loss
            + absorption_loss
            - 10
            * np.log10(
                0.5
                * self.env_params["sound_speed"]
                * self.echodata["Sonar/Beam_group1"]["transmit_duration_nominal"]
                * self.cal_params["equivalent_beam_angle"]
            )
            + self.cal_params["Sv_offset"]
        )  # see p.90-91 for this correction to Sv
        out.name = "Sv"
    elif cal_type == "TS":
        # eq.(10)
        out = EL - SL + 2 * spreading_loss + absorption_loss
        out.name = "TS"
    else:
        raise ValueError("cal_type not recognized!")
    # Attach calculated range (with units meter) into data set
    out = out.to_dataset()
    out = out.merge(self.range_meter)
    # Add frequency_nominal to data set
    out["frequency_nominal"] = self.echodata["Sonar/Beam_group1"]["frequency_nominal"]
    # Add env and cal parameters
    out = self._add_params_to_output(out)
    return out