<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def centroids(self, instrument, min_abundance=1e-4, points_per_fwhm=25):
 """ Estimates centroided peaks for a given instrument model. :param instrument: instrument model :param min_abundance: minimum abundance for including a peak :param points_per_fwhm: grid density used for envelope calculation :returns: peaks visible with the instrument used :rtype: TheoreticalSpectrum """

        assert self.ptr != ffi.NULL
        centroids = ims.spectrum_envelope_centroids(self.ptr, instrument.ptr,
                                                    min_abundance, points_per_fwhm)
        return _new_spectrum(CentroidedSpectrum, centroids)