1717from .openers import ImageOpener
1818from .orientations import aff2axcodes
1919from .affines import apply_affine
20+ from .deprecated import deprecate_with_version
2021
2122try :
2223 basestring
2324except NameError : # python 3
2425 basestring = str
2526
27+ warnings .warn ("The trackvis interface has been deprecated and will be removed "
28+ "in v4.0; please use the 'nibabel.streamlines' interface." ,
29+ DeprecationWarning ,
30+ stacklevel = 2 )
31+
2632# Definition of trackvis header structure.
2733# See http://www.trackvis.org/docs/?subsect=fileformat
2834# See https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
@@ -99,6 +105,9 @@ class DataError(Exception):
99105 """
100106
101107
108+ @deprecate_with_version ('trackvis.read is deprecated; please use '
109+ 'nibabel.streamlines.load, instead.' ,
110+ since = '2.5.0' , until = '4.0.0' )
102111def read (fileobj , as_generator = False , points_space = None , strict = True ):
103112 ''' Read trackvis file from `fileobj`, return `streamlines`, `header`
104113
@@ -254,6 +263,9 @@ def track_gen():
254263 return streamlines , hdr
255264
256265
266+ @deprecate_with_version ('trackvis.write is deprecated; please use '
267+ 'nibabel.streamlines.save, instead.' ,
268+ since = '2.5.0' , until = '4.0.0' )
257269def write (fileobj , streamlines , hdr_mapping = None , endianness = None ,
258270 points_space = None ):
259271 ''' Write header and `streamlines` to trackvis file `fileobj`
@@ -536,6 +548,9 @@ def _hdr_from_mapping(hdr=None, mapping=None, endianness=native_code):
536548 return hdr
537549
538550
551+ @deprecate_with_version ('empty_header is deprecated; please use '
552+ 'nibabel.streamlines.TrkFile.create_empty_header, instead.' ,
553+ since = '2.5.0' , until = '4.0.0' )
539554def empty_header (endianness = None , version = 2 ):
540555 ''' Empty trackvis header
541556
@@ -590,7 +605,10 @@ def empty_header(endianness=None, version=2):
590605 return hdr
591606
592607
593- def aff_from_hdr (trk_hdr , atleast_v2 = None ):
608+ @deprecate_with_version ('aff_from_hdr is deprecated; please use '
609+ 'nibabel.streamlines.trk.get_affine_trackvis_to_rasmm, instead.' ,
610+ since = '2.5.0' , until = '4.0.0' )
611+ def aff_from_hdr (trk_hdr , atleast_v2 = True ):
594612 ''' Return voxel to mm affine from trackvis header
595613
596614 Affine is mapping from voxel space to Nifti (RAS) output coordinate
@@ -625,12 +643,6 @@ def aff_from_hdr(trk_hdr, atleast_v2=None):
625643 origin field to 0. In future, we'll raise an error rather than try and
626644 estimate the affine from version 1 fields
627645 '''
628- if atleast_v2 is None :
629- warnings .warn ('Defaulting to `atleast_v2` of False. Future versions '
630- 'will default to True' ,
631- FutureWarning ,
632- stacklevel = 2 )
633- atleast_v2 = False
634646 if trk_hdr ['version' ] == 2 :
635647 aff = trk_hdr ['vox_to_ras' ]
636648 if aff [3 , 3 ] != 0 :
@@ -673,7 +685,10 @@ def aff_from_hdr(trk_hdr, atleast_v2=None):
673685 return aff
674686
675687
676- def aff_to_hdr (affine , trk_hdr , pos_vox = None , set_order = None ):
688+ @deprecate_with_version ('aff_to_hdr is deprecated; please use the '
689+ 'nibabel.streamlines.TrkFile.affine_to_rasmm property, instead.' ,
690+ since = '2.5.0' , until = '4.0.0' )
691+ def aff_to_hdr (affine , trk_hdr , pos_vox = True , set_order = True ):
677692 ''' Set affine `affine` into trackvis header `trk_hdr`
678693
679694 Affine is mapping from voxel space to Nifti RAS) output coordinate
@@ -715,18 +730,6 @@ def aff_to_hdr(affine, trk_hdr, pos_vox=None, set_order=None):
715730 application). The application also ignores the origin field, and may not
716731 use the 'image_orientation_patient' field.
717732 '''
718- if pos_vox is None :
719- warnings .warn ('Default for ``pos_vox`` will change to True in '
720- 'future versions of nibabel' ,
721- FutureWarning ,
722- stacklevel = 2 )
723- pos_vox = False
724- if set_order is None :
725- warnings .warn ('Default for ``set_order`` will change to True in '
726- 'future versions of nibabel' ,
727- FutureWarning ,
728- stacklevel = 2 )
729- set_order = False
730733 try :
731734 version = trk_hdr ['version' ]
732735 except (KeyError , ValueError ): # dict or structured array
@@ -797,6 +800,9 @@ class TrackvisFile(object):
797800 relationship between voxels, rasmm and voxmm space (above).
798801 '''
799802
803+ @deprecate_with_version ('TrackvisFile is deprecated; please use '
804+ 'nibabel.streamlines.TrkFile, instead.' ,
805+ since = '2.5.0' , until = '4.0.0' )
800806 def __init__ (self ,
801807 streamlines ,
802808 mapping = None ,
@@ -836,7 +842,7 @@ def to_file(self, file_like):
836842 self .filename = (file_like if isinstance (file_like , basestring )
837843 else None )
838844
839- def get_affine (self , atleast_v2 = None ):
845+ def get_affine (self , atleast_v2 = True ):
840846 """ Get affine from header in object
841847
842848 Returns
@@ -853,15 +859,9 @@ def get_affine(self, atleast_v2=None):
853859 consider it unsafe for version 1 headers, and in future versions of
854860 nibabel we will raise an error for trackvis headers < version 2.
855861 """
856- if atleast_v2 is None :
857- warnings .warn ('Defaulting to `atleast_v2` of False. Future '
858- 'versions will default to True' ,
859- FutureWarning ,
860- stacklevel = 2 )
861- atleast_v2 = False
862862 return aff_from_hdr (self .header , atleast_v2 )
863863
864- def set_affine (self , affine , pos_vox = None , set_order = None ):
864+ def set_affine (self , affine , pos_vox = True , set_order = True ):
865865 """ Set affine `affine` into trackvis header
866866
867867 Affine is mapping from voxel space to Nifti RAS) output coordinate
@@ -888,16 +888,4 @@ def set_affine(self, affine, pos_vox=None, set_order=None):
888888 -------
889889 None
890890 """
891- if pos_vox is None :
892- warnings .warn ('Default for ``pos_vox`` will change to True in '
893- 'future versions of nibabel' ,
894- FutureWarning ,
895- stacklevel = 2 )
896- pos_vox = False
897- if set_order is None :
898- warnings .warn ('Default for ``set_order`` will change to True in '
899- 'future versions of nibabel' ,
900- FutureWarning ,
901- stacklevel = 2 )
902- set_order = False
903891 return aff_to_hdr (affine , self .header , pos_vox , set_order )
0 commit comments