Skip to content

Commit 2cb9770

Browse files
committed
FIX: Reorient fieldmaps to RAS before estimating B-splines
1 parent 5ef62fc commit 2cb9770

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

sdcflows/interfaces/bspline.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ def _run_interface(self, runtime):
140140

141141
# Load in the fieldmap
142142
fmapnii = nb.load(self.inputs.in_data)
143+
fmapnii = nb.as_closest_canonical(fmapnii)
143144
zooms = fmapnii.header.get_zooms()
144145

145146
# Get a mask (or define on the spot to cover the full extent)
@@ -148,6 +149,8 @@ def _run_interface(self, runtime):
148149
if isdefined(self.inputs.in_mask)
149150
else None
150151
)
152+
if masknii is not None:
153+
masknii = nb.as_closest_canonical(masknii)
151154

152155
# Determine the shape of bspline coefficients
153156
# This should not change with resizing, so do it first
@@ -224,11 +227,14 @@ def _run_interface(self, runtime):
224227
# Interpolating in the original grid will require a new collocation matrix
225228
if need_resize:
226229
fmapnii = nb.load(self.inputs.in_data)
230+
fmapnii = nb.as_closest_canonical(fmapnii)
227231
data = fmapnii.get_fdata(dtype="float32")
228-
mask = (
229-
np.ones_like(fmapnii.dataobj, dtype=bool) if masknii is None
230-
else np.asanyarray(nb.load(self.inputs.in_mask).dataobj) > 1e-4
231-
)
232+
if masknii is not None:
233+
masknii = nb.load(self.inputs.in_mask)
234+
masknii = nb.as_closest_canonical(masknii)
235+
mask = np.asanyarray(masknii.dataobj) > 1e-4
236+
else:
237+
mask = np.ones_like(fmapnii.dataobj, dtype=bool)
232238
colmat = sparse_vstack(
233239
grid_bspline_weights(fmapnii, grid) for grid in bs_grids
234240
).T.tocsr()

0 commit comments

Comments
 (0)