質問: 色度(x,y)をスペクトルデータから計算したいです。 色度(x,y)をスペクトルデータから計算したいです。 任意のスペクトルデータを入力し色度(x,y)を計算したいです。 excelやフリーのソフトで、その様なことができるものはありますか?
回答: 以前、excel vba を使って任意のスペクトルの色度座標を計算するツールを作ったことがあるのでコードを紹介します(字数制限でこの回答に添付できないので次の解答に添付します)。ワークシートの f 列にスペクトルの波長データ、g 列にスペクトルの強度データを貼り付けて、マクロ xy を実行すると、4行 j 列目に x 座標、5 行 j 列目に y 座標の値が書き込まれます。 データの読書きのセル位置はプログラムの4行目以降に書かれていますので適宜変えてください。添付図は、発光スペクトルをローレンツ関数とした場合の例です。このvbaプログラムは自分用なのでエラー処理等は行っていません。スペクトルの波長範囲は、等色関数データの波長範囲の内側としてください。スペクトルの波長が中途半端な値でも、波長間隔が一定でなくても計算できます(等色関数を直線補間している)。 等色関数データは、ここ(http://www.cvrl.org/)の左側の「cmfs」をクリックして出てきたページの「e/w」をクリックするとダウンロードできます。一番上にある 「cie 1931 2-deg, xyz cmfs」 が2度視野、「cie 1964 10-deg, xyz cmfs 」が10度視野です。「e/w」の / が破線のほうは波長 5nm 刻み、/ が実線のほうが 1nm 刻みのデータです。ダウンロードしたデータの1列目は波長、2列目が等色関数の x_、3列目が y_、4列目が z_ になっています。