月別アーカイブ: 2018年6月

Python猛勉強中

これまで様々なプログラミング言語を使用してきたが、最近、Pythonが必要となり、使いこなそうと努力をしています。これまでの言語使用歴を簡単に述べると・・・

学部4年 N88BASIC(実験装置が古いPC9801で、まだ、動いていたので)
大学院~ポスドク LabVIEW(画面上で配線を繋げる特殊なプログラミング)
助手・助教 科学計算を始めたのでLinuxが必要となり、シェル関係を少し
准教授・教授
研究室を運営する状態になって、右往左往しています。少ない研究費を有効活用するために、なるべくフリーソフトで実験装置の制御系のプログラムを自作しています。
ラマン分光の実験装置 Visual C++
スパッタリングの装置 RaspberryPi上で C言語 + Qt (GUIで使えるように)
最近、ブラウン運動の研究が面白く、その解析プログラムを作成し、自動化を行っています。ブラウン運動とは顕微鏡で観測した1ミクロン程度のコロイドの不規則な動きであり、デジカメで撮影した動画ファイルを解析することになります。動画の解析には、有名なOpenCVというライブラリが存在し(デジカメでの顔の自動認識などを簡単に実装できます)、OpenCVを使うためにC++をまず使いました。ただ、SEに就職が決まった学部生が企業ではJavaを使用すると聞き、Javaで動くように移植し、これまで、Java上でブラウン運動の解析プログラムをチューンしてきました。(画像をOpenCVで解析するはずが、既存のライブラリーでは満足がいかなくなり、基本コードを一から書きはじめたら、OpenCVを呼び出す箇所が無くなっていたというオチまでありますが・・)

そんなプログラム言語に対して必要なときに必要な言語をつまみ食いしてきた感がありますが、ちょうど去年は、学部ホームページのリニューアルの仕事も行っていたので、ホームページを作成する際に使用するPHPやJavaScriptにまで詳しくなっていたりします。

まさかPythonまで手を出すと思っていなかったのですが、ブラウン運動を解析する良いプログラムをネット上で見つけたので、アルゴリズムの方針を見ると我々がJavaで作ったものと方向が違い、こちらの方が良いだろうと感じました。(解析時間は掛かるが、多くの統計データを抽出できそうなアルゴリズムだった。)そのプログラムは、IDL か MatLab で書かれており、 Pythonに移植したバージョンもありました。この中で無料で使えるのは、Pythonだけであり、Pythonを始める大きな動機となっています。

まだまだ始めたばかりであり、オフィシャルのPythonをWindowsにインストールして、pipで必要なライブラリーを集めるのが良いのか、Anacondaで一機に科学計算ルーチンをインストールした方が楽なのか、いろいろ試しているところですが、Javaで作ったソフトを超える程度までPythonも使えるようになったきたので、まずは、ホームページでPython推しの中間報告をしました。

Pythonでのブラウン運動の解析画面