Skip to content

Releases: scottprahl/miepython

Add ability to get multipole information

02 Dec 03:08
Compare
Choose a tag to compare

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

07 May 23:39
Compare
Choose a tag to compare

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

05 Aug 21:34
Compare
Choose a tag to compare

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

04 Aug 18:55
Compare
Choose a tag to compare

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

10 Jun 22:20
Compare
Choose a tag to compare

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

18 May 22:28
Compare
Choose a tag to compare

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

27 Jul 19:57
Compare
Choose a tag to compare

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

26 Jan 22:51
Compare
Choose a tag to compare

v2.2.3 (1/26/2022)

  • update _mie_An_Bn in miepython_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

25 Jan 20:01
Compare
Choose a tag to compare

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

06 Aug 19:58
Compare
Choose a tag to compare

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