@@ -235,10 +235,6 @@ def __init__(self, tractogram, header=None):
235235 and *mm* space where coordinate (0,0,0) refers to the center
236236 of the voxel.
237237 """
238- if header is None :
239- header_rec = self .create_empty_header ()
240- header = dict (zip (header_rec .dtype .names , header_rec [0 ]))
241-
242238 super (TrkFile , self ).__init__ (tractogram , header )
243239
244240 @classmethod
@@ -266,8 +262,9 @@ def is_correct_format(cls, fileobj):
266262 return magic_number == cls .MAGIC_NUMBER
267263
268264 @classmethod
269- def create_empty_header (cls ):
270- """ Return an empty compliant TRK header. """
265+ def _default_structarr (cls ):
266+ """ Return an empty compliant TRK header as numpy structured array
267+ """
271268 header = np .zeros (1 , dtype = header_2_dtype )
272269
273270 # Default values
@@ -281,6 +278,13 @@ def create_empty_header(cls):
281278
282279 return header
283280
281+ @classmethod
282+ def create_empty_header (cls ):
283+ """ Return an empty compliant TRK header as dict
284+ """
285+ header_rec = cls ._default_structarr ()
286+ return dict (zip (header_rec .dtype .names , header_rec ))
287+
284288 @classmethod
285289 def load (cls , fileobj , lazy_load = False ):
286290 """ Loads streamlines from a filename or file-like object.
@@ -388,7 +392,7 @@ def save(self, fileobj):
388392 of the TRK header data).
389393 """
390394 # Enforce little-endian byte order for header
391- header = self .create_empty_header ().newbyteorder ('<' )
395+ header = self ._default_structarr ().newbyteorder ('<' )
392396
393397 # Override hdr's fields by those contained in `header`.
394398 for k , v in self .header .items ():
0 commit comments