Skip to content

Commit 6ec566f

Browse files
oestebanjmarabottosgiavasis
committed
enh: finalize storing affines in X5
Co-authored-by: Julien Marabotto <166002186+jmarabotto@users.noreply.github.com> Co-authored-by: sgiavasis <sgiava77@gmail.com>
1 parent 8f67c59 commit 6ec566f

File tree

1 file changed

+5
-17
lines changed

1 file changed

+5
-17
lines changed

nitransforms/linear.py

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
EQUALITY_TOL,
2828
)
2929
from nitransforms.io import get_linear_factory, TransformFileError
30-
from nitransforms.io.x5 import X5Transform, X5Domain
30+
from nitransforms.io.x5 import X5Transform, X5Domain, to_filename as save_x5
3131

3232

3333
class Affine(TransformBase):
@@ -262,7 +262,10 @@ def map(self, x, inverse=False):
262262

263263
def to_filename(self, filename, fmt="X5", moving=None):
264264
"""Store the transform in the requested output format."""
265-
writer = get_linear_factory(fmt, is_array=False)
265+
if fmt.upper() == "X5":
266+
return save_x5(filename, [self.to_x5()])
267+
268+
writer = get_linear_factory(fmt, is_array=isinstance(self, LinearTransformsMapping))
266269

267270
if fmt.lower() in ("itk", "ants", "elastix"):
268271
writer.from_ras(self.matrix).to_filename(filename)
@@ -407,21 +410,6 @@ def map(self, x, inverse=False):
407410
affine = self._inverse
408411
return np.swapaxes(affine.dot(coords), 1, 2)
409412

410-
def to_filename(self, filename, fmt="X5", moving=None):
411-
"""Store the transform in the requested output format."""
412-
writer = get_linear_factory(fmt, is_array=True)
413-
414-
if fmt.lower() in ("itk", "ants", "elastix"):
415-
writer.from_ras(self.matrix).to_filename(filename)
416-
else:
417-
# Rest of the formats peek into moving and reference image grids
418-
writer.from_ras(
419-
self.matrix,
420-
reference=self.reference,
421-
moving=ImageGrid(moving) if moving is not None else self.reference,
422-
).to_filename(filename)
423-
return filename
424-
425413

426414
def load(filename, fmt=None, reference=None, moving=None):
427415
"""

0 commit comments

Comments
 (0)