[Neuroimaging] Nibabel API change - always read as float

Matthew Brett matthew.brett at gmail.com
Tue Apr 18 11:01:00 EDT 2017


Hi,

On Wed, Jul 22, 2015 at 3:53 PM, Satrajit Ghosh <satra at mit.edu> wrote:
> hi matthew,
>
>> I'm not sure what you mean by 'did not interpret this' unless you are
>> agreeing with me that the niftiio library gives no clues as what the
>> intention for the in-memory type was.  If anything I think that
>> supports my reading that the authors had not considered the
>> interpretation of "scl_slope != 0 -> in-memory float".
>
>
> i simply meant they left any interpretation of how to scale or change of
> in-memory data type to the end developer.
>
>> I can surely attach the raw scalefactors to the array proxy (dataobj),
>
>
> that would be great
>
>>
>> but I think it's a terrible idea to use the scl_slope == 0 as an
>> indication for in-memory type, because it's not a convention that (as
>> far as I know) anyone else uses,
>
>
> all the examples of the code bases i provided in fact leave the in-memory
> type to be the same as the native dtype for scalefactors (0, X) and (1, 0).
> i agree, that this is an implementation of the standard as interpreted by
> those developers, similar to present nibabel. i do agree that nifti authors
> had nothing to say about such an interpretation.

Following up on this one, much later - I have a new proposal, that I
have written up here:

https://github.com/nipy/nibabel/wiki/BIAP8

Shortest possible summary:

* add "get_fdata" method to images, returning floating point data;
* deprecate "get_data" method in one year;
* raise error for "get_data" method in three years.

This has the advantage that older code using nibabel will not silently
return a different result, but will error, with an informative
message, for the foreseeable future.

Any thoughts on this version?

Cheers,

Matthew


More information about the Neuroimaging mailing list