たまたま /var/tmp/logcheck を消しちゃったら、動作しなくなった。
うーん、これパッケージ supplied なディレクトリなのか。
なんで /var/lib 以下でやっちまわないんやろか。
せめてなければ作ってほしいような気が。
基板屈折率の扱いに悩み中。
どうせ 400〜800nm なので
k=0 と置いて透過データから作ってしまえばいいのだが、
生データに対するフィルタと補間をどうするのが一番
手抜きできる
スマートか。
本をパラパラ眺めたりしているだけで一向に進まないので、
後回しにして他のとこ実装しちゃうか。
@
cvs import:
thory.f と amoeba の簡単な interface を書いて、
ひとまず MgOfit というモジュールで import した。
@
ガラス透過率測定:
プログラミングと並行して。
データは ~/project/MgOfit/tglass 以下。
0F, 1R, 2F, 3R と向きを反転させつつ 4 回測った。
一応スタンダードに電源 on から 1h 待って測定。
以下気になったこと。
- 400〜450nm くらいでは、明らかに dI/dw が変わっている。 もう k が出てきてるか?
- 1R の 600 nm あたりにジャンプがあった。 (何か切り替わるんだっけ?)
- 3R も 550〜600nm 位に dip がある。
- 時系列順にだんだん透過率が増えている? (0F→3R で平均 0.1% 弱くらい)
ちなみに gnuplot で img2dat の結果を見るときは
plot 'ふがほげ.dat' every ::1:1
と every を使えば変換せずにすむ。
使った Maxell のフロッピーでリードエラーが多発。
分光計のドライブとは相性が悪いようだ。
データを移動後あらゆる廃棄。
@
ガラス透過率の平滑化:
Excel で作業。
ファイルは ~/project/MgOfit/tglass/tglass.xls。
Function movave(cc As range, width As Variant) As Variant
Dim ccrow As Integer
Dim cccol As Integer
Dim sum As Variant
ccrow = cc.Row
cccol = cc.Column
sum = 0
For irow = ccrow - width To ccrow + width
sum = sum + Cells(irow, cccol)
Next
movave = sum / (2 * width + 1)
End Function
とかいう関数を作って眺めてみる。
ざっと見た感じ、15〜25 nm 以上の移動平均を取らないと、
ノイズが残る感じか。
もうちょい取得時のバンドパスを広くして、
積分時間も大きくするほうがいいのかもしれないな。
@
Excel でテキスト保存:
うへ、データをテキスト保存しようとすると、
さっきの関数で計算したセルが 0 クリアされる。
しょうがないので別シートに手動で「値貼り付け」してから保存。
せめてマクロ化しようと思ったけど、
マクロ実行時にやっぱり 0 クリアされる。だめだこりゃ。死ネ。
@
スプライン関数:
4 本のデータを波長ごとに平均し、71 点 (=28.4 nm) の移動平均をとり、
400〜800 の区間を 20nm おきにサンプリング、
この生データを節点としてスプライン関数をつくることにした。
D 論の時に作ったルーチンを引っ張り出すために以下を実施。
cvshome -d sparse HISPUT/contrib/sparse
cvshome -d spline HISPUT/lib/nakano
cd spline
cvs tag -b for_MgOfit_20021221
cvs up -r for_MgOfit_20021221
うりうり書いて nglass.F 完成。
リポジトリの tglass/ が整理したガラスの透過率データと
DATA 文を作るためのスクリプト・Makefile で、
nglass/ 以下がテストルーチン。
spline1d.F に与える
x のデータが昇順でないといけないことに気づかずにしばらく嵌まる。
ソースのコメントには書いてあったけど、エラーにしないとな。
x が等間隔じゃなくても OK にするのも含め、いつか直さんと。
@
完成:
amoeba へのインターフェース (fom.F) に、
初期化と結果出力の各ルーチンを書く。
ひとまず動くバージョンができた。
生データから
こないだ作った前処理
とかを含めて一括処理するスクリプト書きはまた今度にしよう。
fortran の書式付き read と実際のデータとの擦り合わせがちと面倒くさいな。