def _choose_peak_ids(peaks, n_peaks_to_index): """Choose `n_peaks_to_index` indices from `peaks`. This implementation sorts by angle and then picks every len(peaks)/n_peaks_to_index element to get an even distribution of angles. Parameters ---------- peaks : array_like Array of peak positions. n_peaks_to_index : int Number of indices to return. Returns ------- peak_ids : numpy.array Array of indices of the chosen peaks. """ r, angles = _cart2polar(peaks[:, 0], peaks[:, 1]) return angles.argsort()[ np.linspace(0, angles.shape[0] - 1, n_peaks_to_index, dtype=np.int) ]
def test_cart2polar(x, y, r, theta): rc, thetac = _cart2polar(x=x, y=y) np.testing.assert_almost_equal(rc, r) np.testing.assert_almost_equal(thetac, theta)