3.0.0
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 adtype
parameter, allowingnumpy.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 ofimg.get_fdata()
, which will scale data in single precision if the output type isfloat32
. (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 tonp.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
Tractogram
s no longerapply_affine
to the originalTractogram
'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
andminc
modules. (pr/852) (CM) - The
keep_file_open
argument to file load operations andArrayProxy
s no longer acccepts the value"auto"
, raising aValueError
. (pr/852) (CM) - Deprecate
ArraySequence.data
in favor ofArraySequence.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)