Skip to content

3.0.0

Compare
Choose a tag to compare
@effigies effigies released this 18 Dec 14:54
· 1657 commits to master since this release
3.0.0

DOI

Most work on NiBabel so far has been by Matthew Brett (MB), Chris Markiewicz (CM), Michael Hanke (MH), Marc-Alexandre Côté (MC), Ben Cipollini (BC), Paul McCarthy (PM), Chris Cheng (CC), Yaroslav Halchenko (YOH), Satra Ghosh (SG), Eric Larson (EL), Demian Wassermann, and Stephan Gerhard.

References like "pr/298" refer to github pull request numbers.

3.0.0 (Wednesday 18 December 2019)

New features

  • ArrayProxy __array__() now accepts a dtype parameter, allowing numpy.array(dataobj, dtype=...) calls, as well as casting directly with a dtype (for example, numpy.float32(dataobj)) to control the output type. Scale factors (slope, intercept) are applied, but may be cast to narrower types, to control memory usage. This is now the basis of img.get_fdata(), which will scale data in single precision if the output type is float32. (pr/844) (CM, reviewed by Alejandro de la Vega, Ross Markello)
  • GiftiImage method agg_data() to return usable data arrays (pr/793) (Hao-Ting Wang, reviewed by CM)
  • Accept os.PathLike objects in place of filenames (pr/610) (Cameron Riddell, reviewed by MB, CM)
  • Function to calculate obliquity of affines (pr/815) (Oscar Esteban, reviewed by MB)

Enhancements

  • Improve testing of data scaling in ArrayProxy API (pr/847) (CM, reviewed by Alejandro de la Vega)
  • Document SpatialImage.slicer interface (pr/846) (CM)
  • get_fdata(dtype=np.float32) will attempt to avoid casting data to np.float64 when scaling parameters would otherwise promote the data type unnecessarily. (pr/833) (CM, reviewed by Ross Markello)
  • ArraySequence now supports a large set of Python operators to combine or update in-place. (pr/811) (MC, reviewed by Serge Koudoro, Philippe Poulin, CM, MB)
  • Warn, rather than fail, on DICOMs with unreadable Siemens CSA tags (pr/818) (Henry Braun, reviewed by CM)
  • Improve clarity of coordinate system tutorial (pr/823) (Egor Panfilov, reviewed by MB)

Bug fixes

  • Sliced Tractograms no longer apply_affine to the original Tractogram's streamlines. (pr/811) (MC, reviewed by Serge Koudoro, Philippe Poulin, CM, MB)
  • Re-import externals/netcdf.py from scipy to resolve numpy deprecation (pr/821) (CM)

Maintenance

  • Remove replicated metadata for packaged data from MANIFEST.in (pr/845) (CM)
  • Support Python >=3.5.1, including Python 3.8.0 (pr/787) (CM)
  • Manage versioning with slightly customized Versioneer (pr/786) (CM)
  • Reference Nipy Community Code and Nibabel Developer Guidelines in GitHub community documents (pr/778) (CM, reviewed by MB)

API changes and deprecations

  • Fully remove deprecated checkwarns and minc modules. (pr/852) (CM)
  • The keep_file_open argument to file load operations and ArrayProxys no longer acccepts the value "auto", raising a ValueError. (pr/852) (CM)
  • Deprecate ArraySequence.data in favor of ArraySequence.get_data(), which will return a copy. ArraySequence.data now returns a read-only view. (pr/811) (MC, reviewed by Serge Koudoro, Philippe Poulin, CM, MB)
  • Deprecate DataobjImage.get_data() API, to be removed in nibabel 5.0 (pr/794, pr/809) (CM, reviewed by MB)