def test_extract_peaks(): x = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2]) y = np.array([1., 8., 1., 9., 8., 9., 1., 1., 5., 1., 1., 4., 1.]) px, py = extract_peaks(x, y, threshold_fraction = 0.5, delta = 0.25) assert_array_equal(px, [0.3, 0.8]) assert_array_equal(py, [9.0, 5.0]) px, py = extract_peaks(x, y, threshold_fraction = 0.5, delta = 0.01) assert_array_equal(px, [0.1, 0.3, 0.5, 0.8]) assert_array_equal(py, [8.0, 9.0, 9.0, 5.0]) px, py = extract_peaks(x, y, threshold_fraction = 0.2, delta = 0.01) assert_array_equal(px, [0.1, 0.3, 0.5, 0.8, 1.1]) assert_array_equal(py, [8.0, 9.0, 9.0, 5.0, 4.0])
def label_spectrum_single( row, known_emission_lines, peak_threshold_fraction, label_peaks_strategy, filter_elements_fraction, delta): xs, ys = row_to_spectrum(row) px, py = extract_peaks(xs, ys, threshold_fraction = peak_threshold_fraction, delta = delta) filtered_elements = filter_elements(px, known_emission_lines, drop_if_below_fraction = filter_elements_fraction, delta = delta, group_by = ["elt", "ex"]) e_to_p, p_to_e, unlabeled = label_peaks( px, known_emission_lines, delta = delta, strategy = label_peaks_strategy) labeled_peaks = json.dumps(p_to_e) extra_columns = pd.Series([labeled_peaks], index = ['labeled_peaks']) return row.append(extra_columns)