@@ -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