この記事は何か
pythonのモジュールであるmiepythonを動かしながら、光の散乱の理論とmiepythonの使い方を学ぼうとしています
miepythonとは
miepython is a pure‑Python implementation of Mie theory for spherical scatterers, validated against Wiscombe’s reference results. The library is lightweight, extensively tested, and—thanks to an optional Numba backend—can process nearly a million particles per second.
python上で動く、ミー散乱の理論の実装
Numba(numpy)で動いていて、他の数値計算ライブラリが不要。(No external dependencies beyond NumPy)
私の環境
- python 3.10.11
インストール
pip install miepython
2025/9/17現在、miepython3.0.2とその依存モジュールがインストールされます
動作確認
公式webサイトにあるBasicExampleを走らせてみる
コメントは自分なりに和訳
import miepython as mie
# Define sphere properties
m = 1.5 - 1j # 複素屈折率
d = 100 # 散乱を起こす粒子の粒径 (nm)
lambda0 = 314.15 # 光の真空での波長 (nm) 314.15nmなので紫外線
# Calculate efficiencies
qext, qsca, qback, g = mie.efficiencies(m, d, lambda0)
print(f"Extinction efficiency: {qext:.3f}")
print(f"Scattering efficiency: {qsca:.3f}")
print(f"Backscatter efficiency: {qback:.3f}")
print(f"Scattering anisotropy: {g:.3f}")
とりあえず公式webサイトにあるような結果が得られた
用語
理解できていないのでこの辺りはおいおい勉強して追記していく
複素屈折率
Extinction efficiency
消散効率
(=散乱効率+吸収効率)
Scattering efficiency
散乱効率
absorption coefficient
吸収効率
wave_length単位での吸収量
Backscatter efficiency
後方散乱効率?
Scattering anisotropy
散乱の異方性