用途に合えばピクセルデータを受け取るだけなので手軽ですね。分光した光は微弱になるので、1秒ぐらい露光しているようです。その辺も後で調べてみます。
さて、1スキャン分のデータの区切りは数値の0になっています。この装置の場合はデータが0になることがないので区切りに使っているのでしょう。
区切りデータを使って1スキャン分を1次元配列に切り出すプログラムです。
ピクセルデータを書き込む配列を用意して順次データを書き込んでいきます。データが"0"のときに配列が初期化され、書き込む指標も0にします。1スキャン分のグラフを書き終わるとすぐに次のスキャンを書き始めるのでこのままではあまり実用性はありません。
次にスキャンデータのノイズを低減するためにn回のスキャンデータでピクセルごとに平均化します。突発的なでかいノイズをはじくために最大値と最小値を除いて平均化したいと思います。正式な名前は分かりませんがエクセルではTrimMeanという同じ機能の関数がありますので、TrimMeanと書くことにします。
n回のTrimMeanでは3648xnの2次元配列を用意して、スキャンが終わるごとに更新していきます。更新のたびにピクセルごとのTrimMeanを計算してグラフを作成します。
TrimMeanはデータをソートして指標1からn-2個の部分配列をとって平均しています。
ときどき大きなスパイク上のノイズが入りますが、TrimMeanしているので影響を受けません。
次回は保存ボタンを押すとcsv形式でデータが保存されるようにしてみます。