sifue's blog

プログラマな二児の父の日常 ポートフォリオは www.soichiro.org

データ解析をするためのソフトウエア。

最近は、とにかく朝から晩まで取れた動画や画像の解析をどのようにしていくかひたすら模索する毎日で、学校に着くもひたすらPCに向かい、気付いたら夜12時前で一日が終るというような毎日を送っています。
で、解析をしていくにあたってある程度ソフトウエアの使い分けのようなものをしはじめたのでそれをまとめます。

動画、画像データからの数値抽出は、
ImageJ
http://rsb.info.nih.gov/ij/
とにかくすごいよ、NIHって所でしょうか。プラグインも豊富だし、自分でJAVAで開発できるし、動画スタック、画像演算における最高峰のフリーソフトだと思います。作業のマクロ化もマクロレコーダを使ってできるので大量データ処理もお手の物ですね。最初にメモリも確保できますが、重い動画演算をさせるためには数GBのメモリが必要になり計算できないことも…。高度なことをするためにはメモリを多く積んだマシンが必要です。

時系列の数値データ演算、抽出、微積分、フーリエ変換、および2次元のグラフ作成は、
Kaleidagraph
http://www.hulinks.co.jp/software/kaleida/
http://www.synergy.com/
これまたすごいソフトです。単純なデータ抽出などはこれでやってしまいます。数式入力の関数の豊富さ、マスク機能による場合分け抽出などの能力は非常に高いです。数式プロトコルを使うことで、手で行う操作もスクリプト化できます。ただ、残念なのは本格的マクロ作成に関するドキュメントが少ないことです。逆ポーランド式のマクロは敷居が高い気がします。行数指定が1000行1000列までしか指定できず、マクロが汎用性が低いのが切ないところ。ただ、2次元グラフの自己作成関数へのフィッティングは恐ろしく優秀です。ボルツマン分布、ガウス分布ポアソン分布が繰り込まれたような複雑なモデル関数にもかなり正確なフィッティングをしてくれます。統計解析ももちろん機能についています。変換については一部マクロをダウンロードしなくてはいけません。

ウェーブデータのフィッティング解析は、
IGOR pro
http://www.hulinks.co.jp/software/igor/
めちゃくちゃ長くて細かくて、Kaleidagraphの描画能力でも処理しきれないようなウェーブデータはもうIGOR proしかありません。フーリエ変換なんかも標準でついてます。さまざまなマクロ作成能力もほぼC言語なのでかなりできる範囲が広く、自分で大規模なプラグインも作れます。超複雑な演算、重たい処理をウェーブデータに仕掛けるときは、もうこのIGOR proしかないですね。ただウェーブには強いけど、2次元、3次元のグラフの描画は弱い感じです。一応映像処理もできますがImageJの方が強力ですね。フィッティング能力という点ですごく優れたソフトウエアという評価をされています。

モデルのグラフ化、式変形、シミュレーション
Mathematica
http://www.wolfram.com/index.ja.html
本当にMathematicaは偉大です。とにかくできることの幅が広すぎます。たぶんできないことがないんじゃないでしょうか。複雑な式の変形や解の導出。ベクトルの演算、3次元グラフの描画までこなしてくれる恐ろしいソフトです。そして、めちゃ厳密。とにかくモデルを立てたらこれで検証、あたらしいモデルや理論に出会ったらこいつで計算って感じでしょうか。線形計算専門もしくベクトル演算ならMatLabの方がよいのかもしれませんが、なんにせよMathematicaで導出できない解はなさそうな気がしてしまいます。ちょっとしたことなら良いのですが、複雑なことを簡単にやらせてくれるわけではないソフトです。ちょっとしたことならKaleidagraphの描写機能で満足できます。ただ、画像とかのシミュレーションをしようと思うとそれ専用のアプリケーションパッケージの購入が必要です。
 
まあ以上の感じで解析を進めています。それでもダメならプログラミングですね。最近は無駄にJAVAで作っています。オブジェクト指向な言語なので最終的にきれいにまとめて管理したいという気持ちでいます。うーん道のりは長い。なんにせよ複雑でない限りはImageJとKaleidagraphでけりをつけたいところです。Kaleidagraphのマクロをしっかり勉強してみるかなぁ。
とりあえず、ヒューリンクスのページに解析ソフトがいろいろそろって説明されています。
http://www.hulinks.co.jp/software/stat.html
世の中にはまだまだ知らないソフトウエアがたくさんありそうですね。