Вы можете попробовать это так:

я в поле зрения довольно много датчиков, которые измеряют давление воды. В прошлом высота этих датчиков менялась довольно много раз, создавая скачки во временных рядах. Поскольку эти временные ряды непрерывны, и у меня есть ручное измерение, я технически должен быть в состоянии устранить скачки (вручную это легко, но слишком много измерений, поэтому мне нужно сделать это в python).

Я попытался удалить скачки, используя медианный фильтр, но это не сработало.

Мой код:

    # filter out noise in signal (peaks)
    minimumPeak = 0.03 # filter peaks larger than 0.03m
    filtered_value = np.array(im.median_filter(data['value'], 5))
    noise = np.array((filtered_value-data['value']).abs() > minimumPeak)
    data.loc[noise, 'value'] = filtered_value[noise]

данные - это пандас, содержащий два столбца: datetime и value.

Я также попытался сделать это вручную и заставил это работать в простом случае, но не очень хорошо в любом другом. Любая идея, как я бы отфильтровать прыжки?

Пример показан на рисунке ниже (желтый указывает на скачки, красный - измерение вручную (вполне возможно, что это измерение не в начале, как в этом примере))

Ответы на вопрос(2)

Ваш ответ на вопрос