Skip to content

v2.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 21 Jul 01:59
· 1361 commits to dev since this release

🚀 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