見出し画像

【科学の可視化】 可視光スペクトルの描画

本連載ではPythonなどのプログラミング言語を使用して科学概念の可視化を試みたいと思います。
本稿では可視光スペクトルを描画するPythonスクリプトを作成します。


1. 可視光とは

可視光は我々人間が色として認識することができる光のことです。
光は波としての性質を持っているので、一般的な波と同様に波長や波数(波長の逆数)で特徴づけることができます。

図1: 波の波長.

光の中でも可視光は、おおよそ380nm-780nmの波長域と言われています。
1931年に国際照明委員会(CIE: Commission Internationale de l'Eclairage)で光の三原色は赤色(700.0nm)、緑色(546.1nm)、青色(435.8nm)と制定されました。
これは人間が認識できる三原色に基づいた結果です。
また、ヘッダー画像に示すように、380nmよりも短い波長の光は紫外線、780nmよりも長い波長の光は赤外線と呼ばれています。

2. 可視光スペクトル

光の波長に対する強度分布を可視光スペクトルと言います。
今回は光の強度を色に変換して表示することを考えましょう。

可視光スペクトルは調べればいくらでも出てきますが、任意の波長域で表示したい、或いは波長ではなくエネルギーや波数で表示したいなど、カスタマイズしたいと思ことがよくあります。
そこで、今回はPythonのMatplotlibモジュールを用いて可視光のスペクトルを表示させてみます。

2.1 波長と色の関係

加法混色の概念を用いれば、任意の色を光の三原色の足し合わせとして表現することができます。
今回も可視光スペクトルを光の三原色(RGB)の重ね合わせとして表すことにします。
単色のスペクトルとして以下のようなGauss分布関数$${G(\lambda)}$$を想定しましょう。

$${G(\lambda) = I \cdot \exp\left( -\left( \cfrac{\lambda - \lambda_0}{\Delta\lambda}\right )^2 \right )}$$

ここで$${I}$$は光の強度、$${\lambda_0}$$は光の中心波長、$${\Delta\lambda}$$はスペクトルの半値幅を表しています。
このGauss分布関数を赤、緑、青の3種類用意して足し合わせることで可視光のスペクトルを再現できるはずです。

また、エネルギー分解のスペクトルを描く際には以下の式を用いてエネルギー$${\varepsilon}$$ (eV)を波長$${\lambda}$$ (nm)に変換することができます。

$${\lambda \ (\mathrm{nm}) = \cfrac{1240}{\varepsilon \ (\mathrm{eV})}}$$

2.2 可視光スペクトルの描画結果

2.1の式を用いて実際にPythonで実装してみましょう。

描画におけるパラメータについてはNatural Science 遠藤理平さんの記事を参考にさせていただきました。
また、RGBの3色だけでは暗い部分が生じてしまうということで、橙色(605.0nm)、黄色(580.0nm)、水色(490.0nm)、紫色(400.0nm)のGauss分布関数も加えました。

Pythonスクリプトを添付してありますが、スクリプトの内容についてはあまり最適化されていないので、参考にして適宜書き換えてみてください。

以下のコマンドでスクリプトを実行するとspectrum.pdfというファイルに画像が保存されます。

python rgb.py

結果として図2のような画像が表示されるはずです。
sw_axisで横軸の物理量を変換することが可能です。
また、(emin, emax)と(wmin, wmax)で最大値、最小値を指定できます。

図2: 可視光のエネルギースペクトル(上段)と波長スペクトル(下段).

2.3 Colourモジュールを用いた実装

Pythonにcolourという色科学のためのモジュールがありましたので紹介したいと思います。
以下のコマンドで簡単にインストールすることができます。

pip install --user colour-science

このモジュールを使用すると実質2行で図3を描画することができました。
サンプルスクリプト(visible.py)を添付しておきます。

図3: colourモジュールを用いた可視光スペクトルの描画結果.

3. まとめ

PythonのMatplotlibを用いて可視光スペクトルを描画することができました。
colourモジュールを使用すれば、より簡単に可視光スペクトルを描画できますので、是非試してみてください。

参考文献

・木下修一, 近藤寿人 編, 『シリーズ生命機能1 生物ナノフォトニクス-構造色入門-』, 朝倉書店(2010).

この記事が気に入ったらサポートをしてみませんか?