降水数据集上的高通滤波器

时间:2017-06-21 08:01:54

标签: python filter highpass-filter

我试图在python中实现高通滤波器以进行每小时降水测量。我需要在24小时内过滤低频率。

Data

我已修改此代码:Python High Pass Filter

import numpy as np
import pandas as pd
from pandas import Series
import csv
import matplotlib.pyplot as plt
from scipy import signal

def butter_highpass(cutoff, fs, order=5):
    nyq = 0.5 * fs
    normal_cutoff = cutoff / nyq
    b, a = butter(order, normal_cutoff, btype='high', analog=False)
    return b, a

def butter_highpass_filter(data, cutoff, fs, order=5):
    b, a = butter_highpass(cutoff, fs, order=order)
    y = filtfilt(b, a, data)
    return y

df= pd.read_csv('pp_2010.csv', sep=',', parse_dates=['Date'])
df= df.set_index('Date')

dt=3600
fs=1/float(dt)
cutoff=1/float(dt*24)
data=np.array(df['pp/hr'])
data_fl = butter_highpass_filter(data,cutoff,fs)

plt.plot(data,label='obs')
plt.plot(data_fl,label='filtered')
plt.show()

代码正在运行,我已尝试使用链接示例。在我的例子中,data_fl是一个由nan组成的数组。

我认为问题是因为是非正弦的,但我不确定。如果这是问题,我该如何过滤此数据集?

任何提示是什么错误?

感谢

0 个答案:

没有答案