« 簡易分光器 - 作り方・使い方のまとめとリンク集 | トップページ | 簡易分光器のフラウンホーファー線を岡山天体物理観測所と比較してみた(b線) »

2016年6月23日 (木)

スペクトルデータをExcelでSVG画像にしてみた

スペクトル画像の数値化(+一次元化)、数値化されたスペクトルデータの再画像化はすでにできていますが、数値化されたスペクトルデータをもとの画像上の位置に書き戻すだけなので、画像上の位置と波長は一次関数で表されるようなものではありません。
スペクトル画像(分光写真)を数値化(グラフ化)する方法」、スペクトル画像の一次元化と再画像化の自動処理

そこで今回は画像上の位置と波長が一次関数になるように再画像化することを考えます。要するに画像に定規をあてて長さを測れば波長がわかる、というようなイメージです。

--------

今500nmから524nmの間のスペクトルデータが25個あるとします。1番目のデータが500nm、25番目のデータが524nmになっているとしても、例えば12番目のデータは511.0nmではなく511.6nmだったりします(下図の左側)

01_2

一方新たに作る画像では13番目には512.0nmのデータを格納する必要があります。
そこで12番めと13番目のデータから補間するなどして512.0nmのデータを作りこれを新しい画像の13番目のデータとすることになります(上図の右側)

-------

今回はちょっと違った方法を考えました。

新たに作る画像をビットマップイメージではなくベクタイメージだとします。この場合12番目のデータが511.6nmであればそのデータをベクタイメージの511.6nmに相当するところに書き込むだけで済みます(描画するときの線幅には配慮が必要です)

02

考え方はとても簡単になります。具体的にどうやってベクタイメージを作るかということになるのですが、SVGを使うことにします。SVGはテキストベースなのでプログラムに不慣れな私も自由に扱えます。再画像化したスペクトルに波長の目盛りを入れたり輝線のあるべき位置にマークするというようなこともできます。

    SVGに関してはバイブル的サイトがあるので紹介しておきます。
      「
svg要素の基本的な使い方まとめ

スペクトルデータはExcelのシート上にあるのでExcelでそのままSVGデータを作ることにしました。

03_2

X列の青くマークしたところにSVGデータができあがるのでこれをテキストファイルにコピペして○○.svgという名前で保存すればできあがりです。

このExcelファイルは説明なしでは(というか説明があっても)とても使っていただけるようなものではないのですが、どうやって、どういうSVGデータを作っているかは参考になるかもしれないのでダウンロードできるようにしておきます。

  IMGP8858-太陽光・SVG-M46d3-1430.xlsx」 (2MByte近くあります)


作成されたSVGデータの例

<svg
   xmlns="http://www.w3.org/2000/svg"
   width="2400"
   height="700"
   >
<g font-family="Sans" font-size="12" fill="yellow">

---- 中略 -----

ここからスペクトルの描画
<path style="stroke:#021C13" stroke-width="1.26" d="M 200.52,200 200.52,500" />
<path style="stroke:#021D14" stroke-width="1.26" d="M 201.15,200 201.15,500" />
<path style="stroke:#031E15" stroke-width="1.26" d="M 201.79,200 201.79,500" />
<path style="stroke:#011E15" stroke-width="1.26" d="M 202.42,200 202.42,500" />
<path style="stroke:#001E14" stroke-width="1.26" d="M 203.05,200 203.05,500" />
<path style="stroke:#011C13" stroke-width="1.26" d="M 203.68,200 203.68,500" />

---- 中略 -----

元素名とその波長の描画
<path stroke="yellow" stroke-width="1" d="M 1315.53,190 1315.53,250" />
<text transform="rotate(-90 1320.53 190)" x="1320.53" y="190">Mg(b4/-)  516.73</text>
<path stroke="yellow" stroke-width="1" d="M 1326.07,190 1326.07,250" />
<text transform="rotate(-90 1331.07 190)" x="1331.07" y="190">Mg(-/b3)  516.89</text>
<path stroke="yellow" stroke-width="1" d="M 1351.33,190 1351.33,250" />
<text transform="rotate(-90 1356.33 190)" x="1356.33" y="190">Mg(b2/b2) 517.27</text>
<path stroke="yellow" stroke-width="1" d="M 1424.13,190 1424.13,250" />
<text transform="rotate(-90 1429.13 190)" x="1429.13" y="190">Mg(b1/b1) 518.36</text>

---- 中略 -----

波長目盛りの描画

<path stroke="yellow" stroke-width="1" d="M 200,440 200,500" />
<text transform="rotate(-90 205 525)" x="205" y="525">500</text>
<path stroke="yellow" stroke-width="1" d="M 533.33,480 533.33,500" />
<path stroke="yellow" stroke-width="1" d="M 866.67,470 866.67,500" />
<text transform="rotate(-90 871.67 525)" x="871.67" y="525">510</text>
<path stroke="yellow" stroke-width="1" d="M 1200,480 1200,500" />
<path stroke="yellow" stroke-width="1" d="M 1533.33,470 1533.33,500" />
<text transform="rotate(-90 1538.33 525)" x="1538.33" y="525">520</text>
<path stroke="yellow" stroke-width="1" d="M 1866.67,480 1866.67,500" />
<path stroke="yellow" stroke-width="1" d="M 2200,470 2200,500" />
<text transform="rotate(-90 2205 525)" x="2205" y="525">530</text>

---- 中略 -----

  </g>
</svg>

------

ベクタイメージを作ってもPC上で表示されるのはビットマップイメージです。この変換はどうするかというと

  Internet Explorer で表示する
  InkspaceかGIMPでビットマップイメージに変換する

ということになります。

次の画像はプラズマボールのスペクトルデータから上記の方法でスペクトル画像を作った例です。
輝線のあるべき場所を示すマークと実際の輝線の位置がぴったりあっています。
Imgp8439m52d201400400700wotcsvgv_2

前の記事 デジカメ分光感度特性の謎
次の記事 「簡易分光器のフラウンホーファー線を岡山天体物理観測所と比較してみた(b線)


まとめ記事
  「
簡易分光器 - 作り方・使い方のまとめとリンク集
    簡易分光器とは?
    簡易分光器の実力
      太陽光(フラウンホーファー線)
      蛍光灯
    原理・設計
    製作・材料
      スリット

      回折格子
      構成/構造
    フラウンホーファー線の撮影法
    簡易分光器の性能評価
    トラブルが起きたときの対処法
    画像の数値化・グラフ化
    デジカメの分光感度特性
    スペクトルデータの再画像化

    分光器の応用
      光害カットフィルターの特性を調べる
      半導体レーザー出力光の波長の変化
      簡易分光器では手が出ないようなもの
    スペクトルに関する資料集
    スペクトル(画像)の実例

---------


  「
測定対象別記事一覧(測定、電子工作、天文計算)
  「
過去記事の一覧(測定、電子工作、天文計算)

« 簡易分光器 - 作り方・使い方のまとめとリンク集 | トップページ | 簡易分光器のフラウンホーファー線を岡山天体物理観測所と比較してみた(b線) »

簡易分光器とスペクトル」カテゴリの記事

コメント

おお!ついにやりましたね^^。
おめでとうございます(o^-^o)

ありがとうございます。
宿題をやっと済ませたような気分です。
記事を書いて気がついたのですが、線幅の設定値が間違っているようです (^^;;

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: スペクトルデータをExcelでSVG画像にしてみた:

« 簡易分光器 - 作り方・使い方のまとめとリンク集 | トップページ | 簡易分光器のフラウンホーファー線を岡山天体物理観測所と比較してみた(b線) »

フォト

サイト内検索

  • 記事を探されるんでしたらこれがいちばん早くて確実です。私も使ってます (^^;; 検索窓が表示されるのにちょっと時間がかかるのはどうにかしてほしいです。

新着記事

リンク元別アクセス数

  • (アクセス元≒リンク元、原則PCのみ・ドメイン別、サイト内等除く)

人気記事ランキング

  • (原則PCのみ、直近2週間)
無料ブログはココログ