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 adtypeparameter, 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.PathLikeobjects 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.slicerinterface (pr/846) (CM) get_fdata(dtype=np.float32)will attempt to avoid casting data tonp.float64when scaling parameters would otherwise promote the data type unnecessarily. (pr/833) (CM, reviewed by Ross Markello)ArraySequencenow 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 longerapply_affineto 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
checkwarnsandmincmodules. (pr/852) (CM) - The
keep_file_openargument to file load operations andArrayProxys no longer acccepts the value"auto", raising aValueError. (pr/852) (CM) - Deprecate
ArraySequence.datain favor ofArraySequence.get_data(), which will return a copy.ArraySequence.datanow 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)