NiBabel

Access a cacophony of neuro-imaging file formats

This Page

Reggie -- the one

nibabel.spm99analyze.SpmAnalyzeHeader

digraph inheritance40ce2bff9b { rankdir=LR; ratio=compress; fontsize=14; size="6.0, 8.0"; "AnalyzeHeader" [shape=ellipse,URL="nibabel.analyze.AnalyzeHeader.html#nibabel.analyze.AnalyzeHeader",fontname=Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans,fontsize=14,color=dodgerblue1,style=filled,height=0.75]; "SpmAnalyzeHeader" [shape=ellipse,URL="#nibabel.spm99analyze.SpmAnalyzeHeader",fontname=Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans,fontsize=14,color=dodgerblue1,style=filled,height=0.75]; "AnalyzeHeader" -> "SpmAnalyzeHeader" [arrowsize=0.5,style="setlinewidth(0.5)"]; }

class nibabel.spm99analyze.SpmAnalyzeHeader(binaryblock=None, endianness=None, check=True)

Basic scaling Spm Analyze header

Methods

as_analyze_map
as_byteswapped
check_fix
copy Generic (shallow and deep) copying operations.
data_from_fileobj
data_to_fileobj
diagnose_binaryblock
from_fileobj
from_header
get_base_affine
get_best_affine
get_data_dtype
get_data_offset
get_data_shape
get_slope_inter
get_value_label
get_zooms
items
keys
raw_data_from_fileobj
scaling_from_data
set_data_dtype
set_data_shape
set_slope_inter
set_zooms
values
write_to

Initialize header from binary data block

Parameters :

binaryblock : {None, string} optional

binary block to set into header. By default, None, in which case we insert the default empty header block

endianness : {None, ‘<’,’>’, other endian code} string, optional

endianness of the binaryblock. If None, guess endianness from the data.

check : bool, optional

Whether to check content of header in initialization. Default is True.

Examples

>>> hdr1 = AnalyzeHeader() # an empty header
>>> hdr1.endianness == native_code
True
>>> hdr1.get_data_shape()
(0,)
>>> hdr1.set_data_shape((1,2,3)) # now with some content
>>> hdr1.get_data_shape()
(1, 2, 3)

We can set the binary block directly via this initialization. Here we get it from the header we have just made

>>> binblock2 = hdr1.binaryblock
>>> hdr2 = AnalyzeHeader(binblock2)
>>> hdr2.get_data_shape()
(1, 2, 3)

Empty headers are native endian by default

>>> hdr2.endianness == native_code
True

You can pass valid opposite endian headers with the endianness parameter. Even empty headers can have endianness

>>> hdr3 = AnalyzeHeader(endianness=swapped_code)
>>> hdr3.endianness == swapped_code
True

If you do not pass an endianness, and you pass some data, we will try to guess from the passed data.

>>> binblock3 = hdr3.binaryblock
>>> hdr4 = AnalyzeHeader(binblock3)
>>> hdr4.endianness == swapped_code
True

Methods

as_analyze_map
as_byteswapped
check_fix
copy Generic (shallow and deep) copying operations.
data_from_fileobj
data_to_fileobj
diagnose_binaryblock
from_fileobj
from_header
get_base_affine
get_best_affine
get_data_dtype
get_data_offset
get_data_shape
get_slope_inter
get_value_label
get_zooms
items
keys
raw_data_from_fileobj
scaling_from_data
set_data_dtype
set_data_shape
set_slope_inter
set_zooms
values
write_to
get_slope_inter()

Get scalefactor and intercept

set_slope_inter(slope, inter=0.0)

Set slope and / or intercept into header

Set slope and intercept for image data, such that, if the image data is arr, then the scaled image data will be (arr * slope) + inter

Note that the SPM Analyze header can’t save an intercept value, and we raise an error for inter != 0

Parameters :

slope : None or float

If None, implies slope of 1.0, inter of 0.0 (i.e. no scaling of the image data). If slope is not, we ignore the passed value of inter

inter : float, optional

intercept