Releases: Deep-MI/LaPy
LaPy v1.6.0
What's Changed
- Compute list of extrema in TriaMesh & improved Polygon in #102
- Handle crossing level sets (e.g. at saddle points) in #102
- Add Gifti IO support via nibabel in #102
- fssurf write also volume info extracted from header in #103
- Update solver to default dtype float64 in #105
- Vectorize 2-D vfuncs for parallel processing in diffgeo and solver in #109
- Permit multiple seed sets in heat diffusion for parallel processing in #110
- Pass use_cholmod to the outside in #111
- Expose v0, rng in solver.eigs in #113
- Added multiple test routines for solver, diffgeo, heat
- Updated CI workflows (include py 3.13 and remove 3.9, bump actions versions)
- Update sphinx config
Full Changelog: v1.5.0...v1.6.0
LaPy v1.5.0
What's Changed
- add polygon.py to expose Polygon.resample method by @m-reuter in #96
- add testing for polygon
- allow passing header instead of full images for TK-RAS conversion in write_fssurf, also deal with other non-MGH files
- replace print statements with logger calls
- code hardening (adding checks for out-of-range or division by zero)
- improve docstrings everywhere
- add type hints
- replace exits with raise errors
Full Changelog: v1.4.1...v1.5.0
LaPy v1.4.1
Hotfix:
- Add underscore to in-place mesh operation function
TriaMesh.keep_largest_connected_component_ - Adjust tests
- Bump version to 1.4.1 (1.4.0 should not be used)
Full Changelog: v1.4.0...v1.4.1
LaPy 1.4.0
What's Changed
- Add better smoothing options for triangle mesh (Laplace and Taubin)
- Add functionality to map from voxel coordinates to surface RAS (tk) coordinates when writing FreeSurfer files
- Add code to compute connected components and to reduce the mesh to the largest connected component
- For curvature computation use eigh (for symmetric matrices) rather than eig
- Add more automated testing
- Improvements to documentation and minor fixes
Note, that TriaMesh.smooth_vfunc() is now deprecated and should be replaced with smooth_laplace(lambda_=1) for same functionality. Or use other laplace or smooth_taubin smoothing.
Also, the in-place mesh smoother TriaMesh.smooth_ now uses Taubin to avoid mesh shrinkage. It probably needs more iteration as the diffusion is slower than in the simple implementation before.
Full Changelog: v1.3.0...v1.4.0
LaPy v1.3.0
Release v1.3.0
When extracting level paths on a triangle mesh, it was important to know on what edges and where exactly the level set crosses the triangle edges. For example for inserting these points into the mesh later or for sampling another function on the mesh at those locations later. We added this functionality to tria_mesh level_path changing the function call and return interfaces slightly. See the documentation of this function for details.
https://deep-mi.org/LaPy/dev/api/generated/lapy.TriaMesh.html#lapy.TriaMesh.level_path
What's Changed
- return edge indices and ratios for levelpaths in #79
- set code coverage to informational (no failures) in #71
- Docstrings in #75
- Bump actions in several PRs
Full Changelog: v1.2.0...v1.3.0
LaPy v1.2.0
What's Changed
Full Changelog: v1.1.2...v1.2.0
LaPy v1.1.2
Summary
This mainly fixes a minor bug in tria_compute_rotated_f, avoiding a singular matrix by specifying an arbitrary Dirichlet boundary condition at one vertex.
Also fixes an issue with solver.poisson when passing both a function and boundary conditions (adding a new axis, to have a 2d matrix with one column).
What's Changed
- add more ruff lint rules by @m-reuter in #66
- Bump codecov/codecov-action from 4 to 5 by @dependabot in #68
- Fix rotate and poisson by @m-reuter in #69
Full Changelog: v1.1.1...v1.1.2
LaPy v1.1.1
LaPy v1.1.0
What's Changed
- Fix documentation build by @mscheltienne in #41
- Bump actions (multiple) by @dependabot
- Add LaPy pytest and test cases by @engrosamaali91
- Improve error handling in tria_io private subpackage by @dkuegler in #50
- Fix build on MacOS with new M chips by @m-reuter in #58
- Avoid SciPy 1.13.0 (due to their bug) by @m-reuter
- Add fsinfo mesh information to some init calls by @dkuegler in #62
- Some minor code cleanup by @m-reuter
New Contributors
- @engrosamaali91 made their first contribution in #43
- @dkuegler made their first contribution in #50
Full Changelog: v1.0.1...v1.1.0