17
17
from .openers import ImageOpener
18
18
from .orientations import aff2axcodes
19
19
from .affines import apply_affine
20
+ from .deprecated import deprecate_with_version
20
21
21
22
try :
22
23
basestring
23
24
except NameError : # python 3
24
25
basestring = str
25
26
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
+
26
32
# Definition of trackvis header structure.
27
33
# See http://www.trackvis.org/docs/?subsect=fileformat
28
34
# See https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
@@ -99,6 +105,9 @@ class DataError(Exception):
99
105
"""
100
106
101
107
108
+ @deprecate_with_version ('trackvis.read is deprecated; please use '
109
+ 'nibabel.streamlines.load, instead.' ,
110
+ since = '2.5.0' , until = '4.0.0' )
102
111
def read (fileobj , as_generator = False , points_space = None , strict = True ):
103
112
''' Read trackvis file from `fileobj`, return `streamlines`, `header`
104
113
@@ -254,6 +263,9 @@ def track_gen():
254
263
return streamlines , hdr
255
264
256
265
266
+ @deprecate_with_version ('trackvis.write is deprecated; please use '
267
+ 'nibabel.streamlines.save, instead.' ,
268
+ since = '2.5.0' , until = '4.0.0' )
257
269
def write (fileobj , streamlines , hdr_mapping = None , endianness = None ,
258
270
points_space = None ):
259
271
''' Write header and `streamlines` to trackvis file `fileobj`
@@ -536,6 +548,9 @@ def _hdr_from_mapping(hdr=None, mapping=None, endianness=native_code):
536
548
return hdr
537
549
538
550
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' )
539
554
def empty_header (endianness = None , version = 2 ):
540
555
''' Empty trackvis header
541
556
@@ -590,7 +605,10 @@ def empty_header(endianness=None, version=2):
590
605
return hdr
591
606
592
607
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 ):
594
612
''' Return voxel to mm affine from trackvis header
595
613
596
614
Affine is mapping from voxel space to Nifti (RAS) output coordinate
@@ -625,12 +643,6 @@ def aff_from_hdr(trk_hdr, atleast_v2=None):
625
643
origin field to 0. In future, we'll raise an error rather than try and
626
644
estimate the affine from version 1 fields
627
645
'''
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
634
646
if trk_hdr ['version' ] == 2 :
635
647
aff = trk_hdr ['vox_to_ras' ]
636
648
if aff [3 , 3 ] != 0 :
@@ -673,7 +685,10 @@ def aff_from_hdr(trk_hdr, atleast_v2=None):
673
685
return aff
674
686
675
687
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 ):
677
692
''' Set affine `affine` into trackvis header `trk_hdr`
678
693
679
694
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):
715
730
application). The application also ignores the origin field, and may not
716
731
use the 'image_orientation_patient' field.
717
732
'''
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
730
733
try :
731
734
version = trk_hdr ['version' ]
732
735
except (KeyError , ValueError ): # dict or structured array
@@ -797,6 +800,9 @@ class TrackvisFile(object):
797
800
relationship between voxels, rasmm and voxmm space (above).
798
801
'''
799
802
803
+ @deprecate_with_version ('TrackvisFile is deprecated; please use '
804
+ 'nibabel.streamlines.TrkFile, instead.' ,
805
+ since = '2.5.0' , until = '4.0.0' )
800
806
def __init__ (self ,
801
807
streamlines ,
802
808
mapping = None ,
@@ -836,7 +842,7 @@ def to_file(self, file_like):
836
842
self .filename = (file_like if isinstance (file_like , basestring )
837
843
else None )
838
844
839
- def get_affine (self , atleast_v2 = None ):
845
+ def get_affine (self , atleast_v2 = True ):
840
846
""" Get affine from header in object
841
847
842
848
Returns
@@ -853,15 +859,9 @@ def get_affine(self, atleast_v2=None):
853
859
consider it unsafe for version 1 headers, and in future versions of
854
860
nibabel we will raise an error for trackvis headers < version 2.
855
861
"""
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
862
862
return aff_from_hdr (self .header , atleast_v2 )
863
863
864
- def set_affine (self , affine , pos_vox = None , set_order = None ):
864
+ def set_affine (self , affine , pos_vox = True , set_order = True ):
865
865
""" Set affine `affine` into trackvis header
866
866
867
867
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):
888
888
-------
889
889
None
890
890
"""
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
903
891
return aff_to_hdr (affine , self .header , pos_vox , set_order )
0 commit comments