【raytracing】レンズなどの光学系の光線追跡(レイトレーシング)ができるraytracingライブラリ[Python]

  • URLをコピーしました!

raytracing

前回、Pythonで数値の桁数や小数点以下の桁数を取得したり、指数表示に変換する方法を紹介しました。

今回はレンズなどの光学系の光線追跡(レイトレーシング)ができるraytracingライブラリを紹介します。

それでは始めていきましょう。

raytracingライブラリのインストール

raytracingライブラリのインストールはpipで行います。

pip install raytracing

デモ1:光学系のレイトレーシング

インストールが終わったらとりあえず簡単なデモを見てみましょう。

raytracingライブラリのGithubのページにいくつかデモが載っているので、ここでは2つ紹介します。

一つ目はレンズによる光学系の設計です。

from raytracing import *

path = ImagingPath()
path.append(Space(d=50))
path.append(Lens(f=50, diameter=25))
path.append(Space(d=120))
path.append(Lens(f=70))
path.append(Space(d=100))
path.display()

実行結果

これだけのプログラムでレンズ2枚の光学系のレイトレーシングができました。

このプログラムの中身に関しては次回見ていきます。

また光学系のデモに関してはこちらにもありますのでご興味ある方はどうぞ。

デモ2:市販レンズの情報表示

raytracingライブラリではThorlabsやEdmund Optics、Nikon、Olympusで市販されているレンズの情報を少し収録しており、その情報を表示したり、光学系に組み込んだりすることができます。

特に多いのがThorlabsのレンズですが、それでも一部に留まっています。

どんなレンズの情報が収録されているかは、Githubのページでそれぞれのプログラムを見てもらえると分かります。

Thorlabsthorlabs.py
Edmund Opticseo.py
Nikonnikon.py
Olympusolympus.py

その情報を表示するには「会社名.レンズ名().display()」を実行します。

会社名は上の表の「会社名.py」で「.py」を除いたものになります。

from raytracing import *

thorlabs.AC254_050_A().display()

実行結果

ただ私の環境ではこの様に文字がダブって表示されてしまい、あまり役には立たなさそうでした。

また収録されているレンズもそれほど多くないので、自分が使いたいレンズの情報があったらラッキーくらいで思っておき、基本的には自分でレンズも作成して光学系を組んでいった方が良さそうです。

ただレンズ情報も重要な点のみ入れて設計することができるのがこのraytracingライブラリの良いところです。

ということで次回はデモ1で紹介した光学設計のプログラム中のそれぞれの関数がどんな意味があるのか解説をしていきます。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする