問題タブ [downsampling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
260 参照

pandas - パンダを使用してカスタムダウンサンプリングを最適化するには?

ボケを使用してプロットする前にダウンサンプリングする必要がある測定データ (Datetime、温度) の大きなセットがあります (スムーズなユーザー インターフェイスを維持するため)。

見たい不規則な物理現象があるため、データをリサンプリングしたり、4 (または 10) で 1 つのサンプルを取得したりすることはできません。サンプルを保持する必要があるかどうかを判断するには、よりスマートなアプローチが必要です。

私の考えは、参照サンプルを取得し、参照サンプルに近い限り (参照サンプル値の周囲のウィンドウ内に) 次のサンプルをドロップすることです。サンプルが窓の外にある場合、それは保持され、次のサンプルの新しい参照サンプルになります。頻度のないデータセットを取得しますが、問題ではないと思います。

次のコードは、データの動作をかなり適切に再現するカスタム/ファジー ダウンサンプリングの実装です。

このコードは機能していますが、遅いです:

窓は測温精度に関係するのであまりいじることができません。

私のサンプル サイズは現在 300000 ですが、近い将来には数百万に増える可能性があります。

このコードを最適化/高速化する方法はありますか?

たぶん、物理的な意味を持つダウンサンプリングを行う方法を他に考えていますか?

たぶん、bokeh server で直接解決策がありますか? 理想的にはユーザーのズームに依存しますか?

0 投票する
0 に答える
1061 参照

python - Python での同じ周波数データへのリサンプリングとフィルタリング

私は毎日 32hz で入ってくる大量のデータを扱っています。データを .5hz (編集: 質問は元々 1hz と指定されていましたが、提案に基づいて変更されました) にフィルター処理し、1hz にダウンサンプリングします。ダウンサンプリングには signal.resample を、signal.butter フィルターには signal.filtfilt を使用しています。ただし、これらの両方を実行した後、FFT は信号が 0.16hz 付近で減衰することを示しています。

ダウンサンプリングよりもフィルタリングする順序は重要ですか? 手続きの関係でしょうか?メソッドを正しく理解していませんか?

関連すると思われるデータを含めました

FFT の写真:

生データ (他の周波数の漏れによる 4Hz スパイク):
生データ (他の周波数の漏洩による 4Hz スパイク)

filtfilt の後:
フィルトフィルト後

リサンプリング後:
リサンプリング後

編集: .5hz でフィルターするように調整した後、同じ問題が発生します。FFT の表示方法に問題があるのではないかと考えています。グラフを表示するために使用していたクイック プロットを含めました。