Python 実験データ整理プログラム[構想]

f:id:wataru_boss:20180526140034p:plain
こんにちは。BOSSです。

これから行いたいこととして、Pythonを用いた便利なプログラムを一つ作ることとしてあげています。

具体的にどんなプログラムかというと、普段の研究で用いるためのデータ整理プロウグラムを組みたいと考えています。

データ整理って?

私は理系の大学院生ですが、やはり実験をする機会というのは非常に多いです。

実験データはCSVファイルというテキストフィルで出力されます。

f:id:wataru_boss:20180509093544p:plain

こういう形ですね。で、ここから

f:id:wataru_boss:20180509093936p:plain

このようにグラフを作るのですが、吐き出されたCSVファイルの値を別の物理量に換算したり

あるいはヘッダーをつけなおしたりと綺麗に整えてからグラフを作成します。

これを現状どうやっているかというと、Excelを用いてすべて手作業です。

試験というのはだいたい複数回同じことを繰り返すので同じ作業を毎回手作業でするのは効率が悪いですよね。

そういうわけで、毎回同じことするならプログラムを組んだら楽できるくない!?というのがモチベーションです。

楽をしたい!!

データ整理プログラムの構想

具体的にはどのようなプログラムを考えているのかというと、やはりCSVファイルを扱うというのが基本です。

ここでは一つ一つ実装したい構想を記しておきます。

ヘッダー部の書き換え

ヘッダー部とは写真のこの部分。

f:id:wataru_boss:20180509095815p:plain

これは試験するごとについてくる試験条件などの情報なのですが、データ整理した後グラフにするデータには試験片の情報なんかをヘッダーとしたいんですよね。

f:id:wataru_boss:20180509100041p:plain

こういう形です。

ですので、まずは試験データのヘッダー部を書き換えるということが必要す。

データを必要な物理量に換算

次にデータの換算です。基本的には実験で得ることができる物理量というのは限られています。

そのためグラフにするときにはその得られた物理量から別の物理量への換算がかならず必要となります。

例えば先ほど示した実験データ

f:id:wataru_boss:20180509093544p:plain

これは荷重と変位のデータですが、例えば試験片の断面積を知っていれば

圧力[σ] = 荷重[P] / 断面積[A]

で求めることができます。これをすべての荷重データに対して行えば圧力のデータが出来上がります。

この作業を今までExcelで式を記述してオートフィル

これを全試験データで手作業で行っていたのですが、プログラムに通すことで一気にやってもらおうという構想です。

別ファイルに出力

そして、ヘッダーを書き換え、物理量を換算したデータ群を新しいファイルに書き出す

具体的には、入力はCSVファイルだったものをインデントを揃えてtab区切りのtxtファイルに出力する

という構成で今考えています。

未来展望

最低限ここまでできたらまずまずというものですが

そのステップがクリアされたらその次はどういうものを見据えているかということを残しておきます。

複数のCSVファイルを同時処理

やはり一つのファイルで毎度プログラムを通すというのは、Excel手作業よりは何倍も効率がいいですがやはり頭がいいとは言えません。

試験データは複数とることがあたりまえですので、ディレクトリー内にあるすべてのCSVファイルにたいしてOut putしてくれるプログラムにできたら非常に便利だなぁと考えています。

GUIの設計

一方で、やはり一般的なアプリケーションとしてはGUIもなんとかしたいと考えています。

今ざっくり考えているGUIがこんな感じ

f:id:wataru_boss:20180509101936p:plain

実験で得られたデータ群が入ったディレクトリーパスを選択するところ

プログラムを通してOut putするディレクトリーパスを選択するところ

あとは計算に必要な物性であったり試験片寸法であったりを入力するところ

こういう感じで作れたらいいなぁと考えています。

まとめ

プログラムを勉強する上でやっぱりいつまでもHello Worldや電卓アプリみたいなのを作ってても楽しくないですよね。

自分の思うアプリケーションを一つ作るということが、勉強のモチベーションもあがるしやってて楽しいことだと思うので

まずはその構想から作り上げていく過程をこのブログで残していけたらなと考えています。