Releases
v2.0.0
🚀 New features
Added optional parallelization to many functions using dask
Added image-based invasion percolation algorithm (ibip) to filters
GPU-accelerated the image-based invasion percolation (IBIP) algorithm
Added nl_means_layered function for parallelized noise removal #new
Added boxcount to metrics #new
Added random_cantor_dust and sierpinski_foam to generators #new
Added borders and faces to generators #new
Added pseudo_electrostatic_packing to generators #new
Added pseudo_gravity_packing of spheres to generators #new
Added wrapper to generic ImageJ functions #new
Added a lightweight wrapper for the classic MaximalBall algorithm #new
Added settings to top level of package to control behavior like hidding progress bars and messages #new
Added unpad function to tools module #new
New IO method to_stl for exporting an image to STL mesh #new
Added cylinder_plug function to generators, used in extract_cylinder function for improved speed #new
Added ps_round function to tools to produce disk and ball strels programmtically #new
Added ps_rect function to tools for programatically generating 2D or 3D rectilinear strels #new
Added io function to save an image as a Paraview state file and open directly in Paraview #new
Added function to export a sphere pack image to COMSOL #new
🍰 Enhancements
Exposed sigma and r_max in snow_2 #enh
Better support for 2D images #enh
Added option to trim_nearby_peak to apply a threshold for distance check #enh
Added ability to set loglevel by number as well as name #enh
Unified various snow extraction algorithms under new snow2 function #enh
Added more robust inference of Python environment (terminal vs. notebook) #enh
Migrated to "loguru" from Python's stdlib "logging" for logger messages #enh
Improved various metrics and the bar chart function in the visualization module to work together better #enh
Added spacing to show_planes #enh
Extended RSA api with clearance and return_spheres arguments, and now accepts im or shape #enh
Cylinders generator now also accepts porosity (previously only number of cylinders) #enh
Refactored make_contiguous to use less memory and by 5x faster #enh
🔧 Maintenance
Fix a bug in examples CI where if no tests were collected, CI reported as failed #maint
Replaced array_split dependency with custom-made function #maint
Parallelized examples' CI, and switched to Mambaforge #maint
Fixed codecov to include numba-jitted methods in coverage report #maint
Removed Dask progress bars and minor refactoring #maint
Included ParaView unit tests in the macOS build #maint
Update Actions to accommodate the native support of "ci skip" by GitHub + minor tweaks #maint
Migrate from pip to conda for CI #maint
⚠️ API changes
Replaced namedtuples with custom Results container #api
Replaced perlin_noise with fractal_noise in the generators module based on fastnoisesimd (and pyfastnoisesimd) packages #api
Moved several functions between submodules, deleted others, and renamed files #api
Altered phase_fractions to accept alias and return dict, e.g. {'void': 0.44, 'solid':0.56} #api
Switched radius argument to just r throughout package #api
Switched to maxiter throughout, instead of max_iter or max_iters or iter_max #api
Radial density distribution now only accepts distance transform #api
Reduced the number of arguments in the snow family of functions #api
Enhanced add_boundary_regions function to accept pad_width instead of face names #api
Updated lattice_spheres to be much more flexible, renamed and added args #api
Remove to_openpnm function from io module #api
Renamed some metrics to be more consistent with each other #api
Fixed up regionprops_3d to behave equivalently to scikits-image, including delayed evaluation #api
🐛 Bugfixes
Fixed tqdm progress bar bug that always defaulted to text-based #bug
Fixed edge case bugs on RSA and insert_cylinders #bug
Rewrote trim_saddle_points to avoid hitting max_iters as oftern #bug
Fixed tiny bug in L value used in dns.tortuosity (L -> (L -1)) that was prevent tau =1 in open space #bug
Fixed bug in find_outer_region #bug
Fixed missing type check in hold_peaks #bug
Added check to ensure filter output size matches input in chunked_func #bug
Fixed bug in trim_percolation_paths #bug
Fixed snow_dual to handle unsegmented solid regions #bug
Fixed a bug in add_boundary_regions that occasionally led to some unlabeled pores #bug
📗 Documentation
Large overhaul of docstrings, consistent argument naming between functions #doc
Added many new example notebooks and revamped documentation site #docs
Moved documentation from readthedocs to GitHub Pages + major enhancements #doc
You can’t perform that action at this time.