Releases: scottprahl/miepython
Add ability to get multipole information
2.5.5 (12/1/2024)
- add ability to get individual multipole intensities
- add 12_multipoles.ipynb as documentation
- improve github workflows
Better documentation for normalization options
Spring cleaning. Fixed a bunch of packaging details and improved the README.rst page.
Info about normalization options is available. For example, help(miepython.i_per) will now tell you
i_per(m, x, mu, norm='albedo')
Return the scattered intensity in a plane normal to the incident light.
This is the scattered intensity in a plane that is perpendicular to the
field of the incident plane wave. The intensity is normalized such
that the integral of the unpolarized intensity over 4π steradians
is equal to the single scattering albedo.
The normalization is controlled by `norm` and should be one of
['albedo', 'one', '4pi', 'qext', 'qsca', 'bohren', or 'wiscombe']
The normalization describes the integral of the scattering phase
function over all 4𝜋 steradians.
Args:
m: the complex index of refraction of the sphere
x: the size parameter of the sphere
mu: the angles, cos(theta), to calculate intensities
norm: (optional) string describing scattering function normalization
Returns:
The intensity at each angle in the array mu. Units [1/sr]
2.5.4 (5/7/2024)
- document normalization in docstrings
- add version and year to CITATION.cff
- remove 'v' from version numbers
- add github script and workflow to auto-update CITATION.cff
- add conda badge to readme
- clean up README.rst
- use svg images
- use a single tests/test_mie for jit and non-jit tests
- support ruff
- test python versions 3.7 to 3.12
- fix badges
- remove unused functions
- fix zenodo link
Full Changelog: v2.5.3...2.5.4
More conda packaging nonsense
v2.5.3 (8/5/2023)
- conda-forge fails because test files are not included
v2.5.0 (8/4/2023)
- fix scattering function for very small spheres
v2.4.0 (6/10/2023)
- add mie_phase_matrix() to calculate scattering (Mueller) matrix
Fix for small spheres
v2.5.0 (8/4/2023)
- fix scattering function for very small spheres (x=0.00064)
v2.4.0 (6/10/2023)
- add mie_phase_matrix() to calculate scattering (Mueller) matrix
Add scattering (Mueller) matrix
v2.4.0 (6/10/2023)
- add mie_phase_matrix() to calculate scattering (Mueller) matrix
v2.3.2
- fix typo in README.rst that prevented pypi upload
- add CITATION.cff to base level of miepython repository
v2.3.1
- add DOI for citation purposes
Citable Release
v2.3.2
- No code changes, but fixing metadata and adding CITATION.cff
v2.3.1
-
Using Zenodo to create archives that are citable. Zenodo is stored safely in CERN’s Data Center and operated by CERN. In any case, this creates a Digital Object Identifier (DOI) that is citable and trackable.
-
No code changes in this release.
User selectable phase function normalization
One of the pain points of working with Mie scattering functions is figuring out exactly how the phase function is normalized. miepython
defaults to normalizing the integral of the phase function over all directions to equal the albedo. This version now allows one to normalize to a range of common numbers:
- albedo : single scattering albedo
- one : unity
- 4pi : since there are 4π steradians in a sphere
- qsca : the scattering efficiency
- qext : the extinction efficiency
- bohren : 4π x² Qsca
- wiscombe : π x² Qsca
The normalization is done by specifying a different normalization
intensity = miepython.i_unpolarized(m, x, mu, norm='wiscombe')
See the normalization docs on https://miepython.readthedocs.io/en/latest/03a_normalization.html for details
v2.2.3
v2.2.3 (1/26/2022)
- update
_mie_An_Bn
inmiepython_nojit
- store data in module so github testing passes
- fix build of API documentation on readthedocs
- only test python 3.9 because
importlib.resources
is used to store data - python 3.9 is only needed for a few of the jupyter notebooks
v2.2.2 (1/25/2022)
- modify
_mie_An_Bn
to allocate and return An and Bn
v2.2.1 (9/5/2021)
- create pure python packages
Minor update, better packaging, docs
v2.2.2 (1/25/2022)
- modify _mie_An_Bn to allocate and return An and Bn
- fix minor packaging issue
- explicitly define encoding when opening files
- explicitly use .readthedocs.yaml to build docs
- use rtd theme for docs
- add docs/requirements
- restrict Jinja2 to 2.11.3 in docs/requirements
v2.2.1 (9/5/2021)
- create pure python packages
- include wheel file
- package as python3 only
Pure Python Release
miepython
has always been pure python, but the packaging did not reflect that.
v2.2.1 (9/5/2021)
- create pure python packages
- include wheel file
- package as python3 only
2.1.0 (05/22/21)
- fix case when scalar angle used with mie_S1_S2()
- add pypi badge
- fix notebook testing
- thanks to @zmoon for the following changes:
- add requirements-dev.txt
- add example script testing
- add workflow testing
- fix Au/Ag error
- fix examples that use refractiveindex.info
- add testing badge
2.0.1 (04/25/21)
- fix packaging mistake
2.0.0 (04/25/21)
- use numba for 10-700X speed improvement
- thanks to @jbecca and @pscicluna for their help
- add performance notebook
- add automated notebook checking
- test more code