Practical Guide to Wavelet Analysis in Python


以前、wavelet解析について別の場所に書いた。質問を受けた事を機会にgithubにコードを上げると共に、ここに内容を再録する。


Torrence and Compo [1998]のwavelet解析手法と、そのツールは我々の分野でよく使われる。私もMiyama and Miyazawa [2014]をで使用している。その関連した発表をAOGS 2014でした時に、Torrence and Compo [1998] はスケールが大きいほうを過大評価するバイアスがあり、それに関する論文(Liu et al. 2007と関連するweb pageを教えていただいた。

下の図はLiu et al. 2007のFig.2に対応する、1,8,32,128,365日のsineカーブの単純な重ね合わせ(a)のシグナルにwavelet解析をかけたものである。Torrence and Compo [1998] の手法(b,c)ではスケールが大きい(長周期)のほうがシグナルが大きいと解析されてしまう。一方、Liu et al. [2007]はスペクトルをスケールで割ることを提案しており、これであれば(d,e)、各周期が同じくらいの強さであるという合理的な結果が出る。

上記の図を作るwavelet解析のツールをpythonに翻訳し、Jupyter Notebookにしたものはこちら。

さらに、NINO SST3のwavelet解析した(Liu et al. 2007のFig 4に対応)物をJupyter Notebookしたものはこちら。