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,14 @@ 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
+ dt = dt .newbyteorder (endianness )
276
+ st_arr = np .zeros ((), dtype = dt )
274
277
275
278
# Default values
276
279
st_arr [Field .MAGIC_NUMBER ] = cls .MAGIC_NUMBER
@@ -284,10 +287,10 @@ def _default_structarr(cls):
284
287
return st_arr
285
288
286
289
@classmethod
287
- def create_empty_header (cls ):
290
+ def create_empty_header (cls , endianness = None ):
288
291
""" Return an empty compliant TRK header as dict
289
292
"""
290
- st_arr = cls ._default_structarr ()
293
+ st_arr = cls ._default_structarr (endianness )
291
294
return dict (zip (st_arr .dtype .names , st_arr .tolist ()))
292
295
293
296
@classmethod
@@ -396,7 +399,8 @@ def save(self, fileobj):
396
399
pointing to TRK file (and ready to write from the beginning
397
400
of the TRK header data).
398
401
"""
399
- header = self ._default_structarr ()
402
+ # Enforce little-endian byte order for header
403
+ header = self ._default_structarr (endianness = 'little' )
400
404
401
405
# Override hdr's fields by those contained in `header`.
402
406
for k , v in self .header .items ():
0 commit comments