Releases: PMEAL/porespy
Releases · PMEAL/porespy
v2.4.2
🔧 Maintenance
- Changed
skeletonize_3d
toskeletonize
to address skimage deprecation, along with related fixes. - Updated requirements in
pyproject.toml
to enforceskimage==0.24
, sincewatershed
in 0.25 produces different results.
v2.4.1
v2.4.0
v2.4.0
🚀 New features
- Added polydisperse_cylinders function to beta
- Added a
rectangular_pillars
micro-model generator to thebeta
module - Add
flux
andtau_from_cmap
to simulations module - Added
tortuosity_gdd
method to compute tortuosity using domain decomposition - Added
ramp
tobeta
module for inclusion ingenerators
eventually - Added
local_diff
filter tobeta
module for inclusion infilters
eventually - Added
beta
module for introducing new functions which may still need tweaking - Added
pc_to_seq
function - Added
pc_map_to_pc_curve
function for much faster generation of pc curves from images
🍰 Enhancements
- Added several micromodels functions to the generators module
- Improved speed of cylinders 5x by using _insert_disk_at_points_parallel method instead of dilating using edt
- Sped up sphere insertions using parallelization
- Readded
tic
andtoc
functions totools
module - Enhanced
satn_profile
function to accept pre-thresholded image - Enhanced
satn_profile
function to throw an exception if requested saturation cannot be obtained
🔧 Maintenace
- Migrated from bump2version to hatch for resolving version number
- Refactored and updated Actions
- Deprecated Python 3.8 and 3.9
- Added linter Action: ruff
- Unified project config (pytest.ini, setup.cfg) files in pyproject.toml
- Removed pyfastnoisesimd from dependencies as it no longer works on Python 3.9+
- Migrated from setup.py to pyproject.toml
- Migrated from flat layout to the PyPA recommended src layout
- Enhanced api with type annotations and defaults
- Updated the python version coverage to include 3.11
- Tidyied up after some recent PRs
- Enhanced
satn_profile
function to return aResults
object with data as attributes
v2.3.0
🚀 New features
- Added function to compute diffusive size factor using dns #new
- Added
zip_to_stack
for converting 2D tiff files in a zip folder into a 3D tiff image #new - Added
folder_to_stack
for converting 2D tiff files in a folder into a 3D tiff image #new - Added
random_spheres
as a wrapper torsa
for more descriptive name (rsa to be deprecated eventually) #new - Added
show_panels
function to visualizations module #new - Added
spheres_from_coords
to generators #new - Added
find_bbox
to tools #new - Add better sierpinski foam generator that accepts shape #new
🍰 Enhancements
- Added
mode='drainage/imbibition'
argument to all seq/size/satn functions, to accomodate upcoming imbibition simulations #enh - Make
Results
object more useful by including name of function that produced it, and time #enh - Added
seed
argument to all random generators #enh - Enhanced
spheres_from_coords
to work with negative coordinates #enh #bug - Improved the speed of
find_bbox
#enh - Added protrusion argument to
rsa
#enh
🔧 Maintenace
- adding release.yml to package to assist with automatic changelog generation #maint
- Fixed imageio deprecation warnings in 2 examples #doc, #maint
- using _all_ everywhere for imports #maint
- Removed optional dependencies from setup.py #maint
⚠️ API changes
- Changed radius to r in
voronoi_edges
#api - Moved ibip percolation functions to simulations module
🐛 Bugfixes
- Included dtype in np.sum calls throughout to ensure it returns the correct value on large images #bug
- Fixed bug in
find_trapped_regions
when no solid present on outlet face #bug - Fix parse bug in
_parse_pad_width
used bysnow2
if boundary_width was a list of lists #bug - Fix divs bug in
blobs
#bug - Improved output of Results object when large dicts present #bug
- Enhanced
spheres_from_coords
to work with negative coordinates #enh #bug - Fixed some bugs pertaining to numpy deprecations becoming reality #bug
- Fixed bugs in rsa when using clearance #bug
- Fixed dynamically changing loglevel #bug
tortuosity_fd
should raise Exception if all pores are floating pores #bug
📗 Documentation
- Fixed formatting of the Results table in tortuosity notebook #doc
- Fixed imageio deprecation warnings in 2 examples #doc, #maint
- Added tutorial notebook explaining the use of
spheres_from_coords
on various csv files #doc - Fix link to installation guide in readme #docs
- Added examples on snow2, regions_to_network, and other network extraction related function #docs
- Added examples on often asked questions in the Discussions #doc
Installation
The txt files below contain the specific packages and their versions to install to get a functioning installation for archival purposes using conda. Instructions for installing are in the top of the file.
v2.2.2
🍰 Enhancements
- Replaced
loguru
withrich
for logging tortuosity_fd
now uses PyAMG instead of PyPardiso, which makes it way fastertortuosity_fd
now optionally accepts an OpenPNM solver object for more fine-grained control
v2.2.1
🔧 Maintenace
- Add example notebook on how to create multiscale images
- PoreSpy is now compatible with OpenPNM v3 API
v2.2.0
🚀 New features
- Added
AI_diffusive_size_factor
tonetworks
module for predicting diffusive conductance from watershed segmentation using tensorflow
🍰 Enhancements
- Enhanced parallelized operations (such as filters) to not oversubscribe the CPU, hence should run faster
- Enhanced two point correlation function for speed, flexibility and compatibility
regions_to_network
is now more flexible and can handle noncontiguous phase labels- Added a jitted get_radial_sum to tpcf, updated parse histogram to incorporate tpcf outputs
🔧 Maintenace
- Added Python 3.10 to CI workflows
- Unified
requirements.txt
withinstall_requires
insetup.py
- Fixed version regex in setup.cfg that incorrectly incremented the 4th digit
🐛 Bugfixes
- Fixed
bundle_of_tubes
to work withscipy
1.9+
📗 Documentation
- Fixed "diffusive conductance using AI" example notebooks
- Large batch of updates to the examples
v2.1.0
🚀 New features
- Added
pc_to_satn
function to filters #new - Added
satn_to_seq
function to filters #new - Added
satn_profile
to metrics #new - Added
find_h
to metrics #new - Added
pc_curve
to metrics which accepts either sizes or pressures #new - Added
satn_to_panels
to visualization folder to create a montage of invasion steps #new - Added
prep_for_imshow
to visualization folder to adjust image for passing to plt.imshow #new - Created
simulations
module to replacedns
#new #api - Moved
tortuosity
function tosimulations
and renamed ittortuosity_fd
for finite difference #new #api - Added
drainage
function to the newsimulations
module, which incorporates the effect of gravity #new
🍰 Enhancements
- Added ability to pass custom peaks to snow algorithms #enh
- Phase labels no longer need to be contiguous in snow functions or
snow2
extraction #enh - Phase labels of 0 can now be passed to
snow2
, ifphase_alias
argument is provided #enh - Added ability to specify residual invading phase in
drainage
#enh - Added surface option to trim/fill functions to optionally remove artifacts on the surfaces #enh
- Added optional strel arg to
trim_nonpercolating_paths
#enh
🔧 Maintenance
- Removed joss folder from top level of repo #maint
- Decreased size of examples to accelerate testing and building #maint
- Added many quantitative unit tests for snow functions #maint
- Using much small images in snow tests to improve testing speed #maint
- Minor adjustments/improvements to various trim peaks functions #maint
- Consolidated jit sphere insertion funcs into a single file under
tools
#maint - Streamlined and simplified CI workflows #maint
- Renamed how-tos to reference and other maintenance of docs #docs #maint
- Added citations file to repo #maint
- Dropped support for Python 3.6 and 3.7 per NEP29 #maint
- Fixed examples CI to use the official pytest-split #maint
- Temporarily excluded
imagej
module from coverage due to CI/dependency issues #maint - Removed transforms3d from requirements as it's no longer needed #maint
- Added 4th digit to semantic version to indicate number of merges into dev branch
⚠️ API changes
- Deprecated
pc_curve_from_mio
in favor of justpc_curve(sizes=sizes)
#api - Created
simulations
module to replacedns
#new #api - Moved
tortuosity
function tosimulations
and renamed ittortuosity_fd
for finite difference #new #api - Deprecated
dns.tortuosity
though provided a wrapper to the moved and renamed versiontortuosity_fd
#api
🐛 Bugfixes
- Fixed bug in
region_volumes
method #bug - Fixed
cylindrical_plug
generator to work in 2D #bug - Fixed bugs in
snow2
when accuracy was 'high': missing throat_perimeters and incorrect voxel scaling #bug - Fixed a memory leak in
tortuosity_fd
📗 Documentation
- Removed excess badges from readme #doc
- Major updates to all example notebooks #docs
- Renamed how-tos to reference and other maintenance of docs #docs #maint
- Added 2 new examples on the basic use of
drainage
and explaining its inner workings #docs - Updated some notebooks to work with new version of openpnm (2.8+) #doc
Installation
Normally porespy can be installed using conda install -c conda-forge porespy=2.1
; however, to reproduce the exact environment which this release was built upon (i.e. at some point in the future), download one of the requirements files below (i.e. requirements_ps21_py310_win64.txt), then run the following at the conda prompt:
conda create --name <env> --file requirements_ps21_py310_win64.txt
conda activate <env>
where <env>
is your chosen environment name.
v2.0.2
🐛 Bugfixes
- Fixed snow2 which called missing function in accuracy='high' mode
📌 Pinned Dependencies
The following file can be used to produce a working installation of PoreSpy v2.0.2: conda_pinned_requirements_v2.0.2.txt
v2.0.1
🔧 Maintenace
- Make pyfastnoisesimd optional for conda-forge builds to work #maint