Development of PoreSpy V2.0 has begun

Minor changes and major improvements

Starting this week (Feb 15, 2021) we have begun merging ‘breaking changes’ onto the ‘dev’ branch or PoreSpy. The next major release will therefore be tagged 2.0.0, following the common semantic versioning. Incrementing the major version number indicates that backwards incompatible changes have been made. In the present case the majority of changes are enhancements and additions and should be relatively painless, but users may have to update their code in a few places.

For example the lattice_spheres method now accepts spacing to indicate the center-to-center distance between spheres, while offset now means the distance between the start of each axis and the center of the first sphere. Clearly not an insurmountable change.

Perhaps the most significant change, and the main motivation for moving to V2, will be how the network extraction functions work. In the current version (V1.3.1) we return many different properties, some of which are quite opinionated. For instance, pore volume assumes that the pore is a sphere. We are going to reduce the returned set of properties to only quantitatively well-defined values, such as the region volume and inscribed diameter.

For sure the most exciting part of this upcoming release is all the new features to be added. Below gives a summary of just a few highlights:

  • Wrappers for ImageJ functions using the pyimagej library

  • Wrapper for the classic MaximalBall algorithm developed by Martin Blunt’s group

  • Opening images directly in Paraview for powerful visualization

  • Image-based invasion percolation algorithm to simulate rate-based injection of non-wetting fluids

  • Several new image generators including pseudo_gravity_packing and pseudo_electrostatic_packing. These will allow creation of well-packed but not overlapping spheres. The ‘pseudo’ prefix indicates that they are not rigorous, but just meant to be helpful ways to prototype and test.

  • Skeleton shortest-path search method (sspsm) for estimating the tortuosity as recently outlined by Fu et al.

  • Export images to Salome and STL formats

  • Generate a sphere packing geometry for use in Comsol

  • Fractal dimension measurement using the box-counting method

  • Example notebooks for each and every function in the package

  • Parallelized versions of many functions using the dask library to process each image in chunks

  • Addition of several network extraction algorithms developed by the PMEAL group including the parallized version of SNOW.

In addition to these exciting changes, there will be many smaller ones behind the scenes to speed things up and reduce memory consumption.

The expected release date for this is near the end of March 2021, so keep your eyes glued to our Github page to monitor progress. Any suggestions or contributions would be more than welcome. To make a suggestion please leave us a note on the new Github Discussions forum. And you happen to have any code you wish to share, now would be a great time! Peruse our contributors guide for how to proceed.