MieScattering.jl is a pure-Julia package for calculation of Mie scattering. This package is basically a 1:1 port of the great miepython Python package written by Scott Prahl. I highly recommed to read his documentation which also gives a lot of mathematical insights into the topic. This package basically follows the same syntax as miepython
but with small tweaks to adapt to Julia specifics. This package gives comparable or even better (thanks to real multi-threading) performance than the JIT-version of miepython
using numba
.
The test suite has been adapted as well, so the whole package is numerically tested against Wiscombe's code and of course miepython
itself.
Install the package using the package manager:
] add MieScattering
using MieScattering
m = 1.3179 - 0.000097313*im
d = 0.2 # µm
λ0 = 1.064 # µm
qext, qsca, qback, g = ez_mie(m, d, λ0)
This is not the first Julia package for calculating Mie scattering. The whole purpose of this package is to have all features of miepython
without having to call Python from Julia.