13
13
14
14
from nibabel .openers import Opener
15
15
from nibabel .py3k import asstr
16
- from nibabel .volumeutils import (native_code , swapped_code )
16
+ from nibabel .volumeutils import (native_code , swapped_code , endian_codes )
17
17
from nibabel .orientations import (aff2axcodes , axcodes2ornt )
18
18
19
19
from .array_sequence import create_arraysequences_from_generator
@@ -266,11 +266,13 @@ def is_correct_format(cls, fileobj):
266
266
return magic_number == cls .MAGIC_NUMBER
267
267
268
268
@classmethod
269
- def _default_structarr (cls ):
269
+ def _default_structarr (cls , endianness = None ):
270
270
""" Return an empty compliant TRK header as numpy structured array
271
271
"""
272
- # Enforce little-endian byte order for header
273
- st_arr = np .zeros ((), dtype = header_2_dtype ).newbyteorder ('<' )
272
+ dt = header_2_dtype
273
+ if endianness is not None :
274
+ endianness = endian_codes [endianness ]
275
+ st_arr = np .zeros ((), dtype = dt )
274
276
275
277
# Default values
276
278
st_arr [Field .MAGIC_NUMBER ] = cls .MAGIC_NUMBER
@@ -284,10 +286,10 @@ def _default_structarr(cls):
284
286
return st_arr
285
287
286
288
@classmethod
287
- def create_empty_header (cls ):
289
+ def create_empty_header (cls , endianness = None ):
288
290
""" Return an empty compliant TRK header as dict
289
291
"""
290
- st_arr = cls ._default_structarr ()
292
+ st_arr = cls ._default_structarr (endianness )
291
293
return dict (zip (st_arr .dtype .names , st_arr .tolist ()))
292
294
293
295
@classmethod
@@ -396,7 +398,8 @@ def save(self, fileobj):
396
398
pointing to TRK file (and ready to write from the beginning
397
399
of the TRK header data).
398
400
"""
399
- header = self ._default_structarr ()
401
+ # Enforce little-endian byte order for header
402
+ header = self ._default_structarr (endianness = 'little' )
400
403
401
404
# Override hdr's fields by those contained in `header`.
402
405
for k , v in self .header .items ():
0 commit comments