def METHOD_NAME(self) -> numpy.ndarray:
    """
    This performs sampling  measurements. However since the measurement
    time can vary from few seconds to hundreds of minutes we first set
    the visa time out.
    The visa time-out should be longer than the time it takes to finish
    the sampling measurement. The reason is that while measurement is
    running the data keeps on appending in the buffer of SPA. Only when
    the measurement is finished the data is returned to the VISA handle.
    Hence during this time the VISA is idle and waiting for the response.
    If the timeout is lower than the total run time of the measurement,
    VISA will give error.
    We set the Visa timeout to be the `measurement_time` times the
    `_timeout_response_factor`. Strictly speaking the timeout should be
    just longer than the measurement time.
    """
    measurement_time = self.instrument._total_measurement_time()
    time_out = measurement_time * self._timeout_response_factor
    default_timeout = self.root_instrument.timeout()
    # if time out to be set is lower than the default value
    # then keep default
    if time_out < default_timeout:
        time_out = default_timeout
    self.root_instrument.write(MessageBuilder().fmt(1, 0).message)
    with self.root_instrument.timeout.set_to(time_out):
        raw_data = self.root_instrument.ask(
            MessageBuilder().xe().message)
    self.data = fmt_response_base_parser(raw_data)
    convert_dummy_val_to_nan(self.data)
    return numpy.array(self.data.value)