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,10 +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
- st_arr = np .zeros ((), dtype = header_2_dtype )
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 )
273
277
274
278
# Default values
275
279
st_arr [Field .MAGIC_NUMBER ] = cls .MAGIC_NUMBER
@@ -283,10 +287,10 @@ def _default_structarr(cls):
283
287
return st_arr
284
288
285
289
@classmethod
286
- def create_empty_header (cls ):
290
+ def create_empty_header (cls , endianness = None ):
287
291
""" Return an empty compliant TRK header as dict
288
292
"""
289
- st_arr = cls ._default_structarr ()
293
+ st_arr = cls ._default_structarr (endianness )
290
294
return dict (zip (st_arr .dtype .names , st_arr .tolist ()))
291
295
292
296
@classmethod
@@ -396,7 +400,7 @@ def save(self, fileobj):
396
400
of the TRK header data).
397
401
"""
398
402
# Enforce little-endian byte order for header
399
- header = self ._default_structarr (). newbyteorder ( '< ' )
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