Releases: PMEAL/porespy
v1.3.1
🐛 Bugfixes
- Fixed dask version in setup.py (porespy using
pip install porespy
had a missing dask module)
v1.3.0
🚀 New features
- Added snow_partitioning_parallel to filters module
- Added fully automated deployment to PyPI via GitHub Actions
- Added dns submodule with tortuosity function
- Added customized bar plot option to visualization module
- Added full pytest integration for automated testing of notebook examples
- Added custom imshow and a wrapper at top level for instant access
- Added GitHub Actions workflow to replace Travis CI
- Added two functions to tools module: size_to_seq and seq_to_satn
- Added two functions to tools module: size_to_seq and seq_to_satn
- Added option to trim_nonpercolating_paths to accepts masks
- Added porosity_profile example
⚠️ API changes
- Changed direction to axis in some vis functions
- Removed dims and ndims, typos
- Changed all internal distance transforms to much faster edt instead of scipy.ndimage.distance_transform_edt
🐛 Bugfixes
- Fixed CI testing error due to pep8 incompatibility with the latest pytest
- Fixed mising dns submodue install in setup file
- Fixed subdivide to return tuples, enhanced to accept flattened and overlap args
- Fixed bugs in snow_n regarding non-contiguous aliases and missing labels
- Fixed cylinders generator to provide a more uniform porosity distribution
- Fixed some examples that were issuing deprecation warnings
New features and bug fixes
🚀 New features
New visualization functions
- Added
show_3D
to visualization module. This function rotates the image along two axes and returns a 2D view from an angle for simple viewing with matplotlib'simshow
.
New filters
- Added
trim_small_clusters
. This function allows the removal of all features small than a threshold size. - Added
hold_peaks
function: This function finds the highest greyscale value along in each slice along a given axis. - Added the
prune_branches
function. Given an image skeleton, this removes all dangling branches.
Improved generators
- Loosened tolerance for polydisperse generator test
- Switched default solver in sphere generator to bisection method
- Enhanced cylinders function to accept length argument
Minor changes
- Changed
trim_disconnected_blobs
to make a copy of input image - Allowed get_border to optionally return indices as well as mask
- Cleaned many docstrings throughout package (need to install a spell checker on IDE!)
🐛 Bugfixes
- Fixed bug in snow_extraction that resulted in some negative throat lengths
- Fixed bug in
trim_disconnected_blobs
. Note this bug was also impactingporosimetry
when an inlet mask was provided.
Journal of Open Source Software Release
This minor release is a major event in PoreSpy development. We have submitted our package to the Journal of Open Source Software, which will create an official DOI that users can refer to in any papers that use PoreSpy. Thanks to JOSS for being such an excellent and smoothly functioning journal, and thanks to all the contributors in the PMEAL group and elsewhere.
Prepartions for Journal of Open Source Software Release
More preparations for JOSS release
Major release
At the time of this release there were only 7 open issues on the Github issue tracker, and most were feature requests. The following general areas were tackled:
- Enhanced documentation by adding extra citations to functions, fixing typos, improve the quality of figures throughout, added a contributor guide
- Added pseudo-manuscript to the package highlight the motivation for
- Improved test coverage, nearly 90%
- Moved all examples from a separate repo into a folder within the main package
- Fixed numerous bugs and instabilities
- Refactored the code in numerous locations (e.g. SNOW algorithms are now discrete functions that can be called individually)
Journal of Open Source Software Preparation
This minor release adds a few components to the package that are necessary for the JOSS review, including a license (MIT) and a file called paper.md which gives a brief synopsis of the package.
Version 1.0 is finally here!
This is the official release of PoreSpy Version 1.0. We've been working on this package for more than a year, adding new functions, fine tuning the old functions, and generally optimizing the organization of things. During this period, things have been breaking and changing, so we are happy to say that it is finally stable and ready for all to use.
-
For information about what's in the package, refer to the readme on Github.
-
For a gallery of examples showing how to use the package for various porous media related tasks, see the examples folder containing Jupyter notebooks.
-
Any questions about using the package, bug reports, feature requests, and suggestions, should be directed to the Github Issues page.
-
Finally, we plan to submit a pseudo-paper to the Journal of Open Source Software so that users may reference the software in any publications that relies on it.
Thanks to all the members of the Porous Materials Engineering and Analysis Lab in the Department of Chemical Engineering at the University of Waterloo for their hard work on this:
@TomTranter
@mdrkok
@ma-sadeghi
@Zohaib-Atiq
@magnaou
@Ni2M
@jgostick
Bug Fixes
🚀 New features
- Added function for finding fraction of each phase in a multiphase image
- Added missing network props
- Added marching cubes surface area calculation to
- Added ability to generate voxel image from an
openpnm
network - Added optional arguments to several functions for improved usability
- Added function
n_phase_boundary
🍰 Enhancements
- Enhanced docs substantially
- Cleaned up requirements
- Move examples into main repo
🐛 Bugfixes
- Fixed calculation of pore center in SNOW algorithm to use peak instead of center of mass
- Fixed bug in marching cube area calculation when voxel_size < 1
- Fixed bug in
snow
that used blurred distance transform to re-generate binary mask - Fixed a bug in chord length distribution
- Fixed bug in
porosimetry
- Fixed usage of
squeeze
on 2d images - Fixed
make_contiguous
to handle 0 and negative numbers
Version 0.4.0
This minor version bump adds quite a lot of improvements and new features to PoreSpy. We are planning to release an official 1.0 in the very near future, so this release is a dress rehearsal in some ways.
🚀 New features
Added map_to_regions
function for colorizing a region image by given values
Added a linear_density function based on Torquato's definition
Implemented the marching cubes algorithm for calculating surface areas
Added a function for adding boundaries to a region image
🐛 Bugfixes
- Fixed a bug in chord length distribution
- Fixed make_continuous to work properly on images with 0
- Ensure im.copy() is used throughout package
- Fixed bug in snow extraction that used blurred image to create mask
- Improved chord spacing in apply_chords
- Fixed artifacts in some of the porosimetry modes
- Changing use of squeeze on 2D images
⚠️ API changes
- Tweaking count_chords and chord_len_dist to accept bool or labeled chords
- Added bins='None' functionality for chord_length_distribution
- Added optional arguments to several functions for improved usability
🍰 Enhancements
- Added type annotations to some functions in
generators
- Added an examples subfolder to ensure they are always up to date
- Increased code coverage
- Adding more network properties to SNOW extraction