Skip to content

Commit 4ceba42

Browse files
committed
RF: Purge get_data() from algorithms.misc
1 parent d00267f commit 4ceba42

File tree

1 file changed

+26
-30
lines changed

1 file changed

+26
-30
lines changed

nipype/algorithms/misc.py

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def _gen_output_filename(self):
9494

9595
def _get_brodmann_area(self):
9696
nii = nb.load(self.inputs.atlas)
97-
origdata = nii.get_data()
97+
origdata = np.asanyarray(nii.dataobj)
9898
newdata = np.zeros(origdata.shape)
9999

100100
if not isinstance(self.inputs.labels, list):
@@ -153,7 +153,7 @@ class SimpleThreshold(BaseInterface):
153153
def _run_interface(self, runtime):
154154
for fname in self.inputs.volumes:
155155
img = nb.load(fname, mmap=NUMPY_MMAP)
156-
data = np.array(img.get_data())
156+
data = img.get_fdata()
157157

158158
active_map = data > self.inputs.threshold
159159

@@ -216,7 +216,7 @@ def _run_interface(self, runtime):
216216
affine = np.dot(self.inputs.transformation_matrix, affine)
217217

218218
nb.save(
219-
nb.Nifti1Image(img.get_data(), affine, img.header),
219+
nb.Nifti1Image(img.dataobj, affine, img.header),
220220
self._gen_output_filename(fname),
221221
)
222222

@@ -1014,11 +1014,11 @@ class AddNoise(BaseInterface):
10141014

10151015
def _run_interface(self, runtime):
10161016
in_image = nb.load(self.inputs.in_file)
1017-
in_data = in_image.get_data()
1017+
in_data = in_image.get_fdata()
10181018
snr = self.inputs.snr
10191019

10201020
if isdefined(self.inputs.in_mask):
1021-
in_mask = nb.load(self.inputs.in_mask).get_data()
1021+
in_mask = np.asanyarray(nb.load(self.inputs.in_mask).dataobj)
10221022
else:
10231023
in_mask = np.ones_like(in_data)
10241024

@@ -1272,27 +1272,25 @@ def normalize_tpms(in_files, in_mask=None, out_files=None):
12721272
imgs = [nb.load(fim, mmap=NUMPY_MMAP) for fim in in_files]
12731273

12741274
if len(in_files) == 1:
1275-
img_data = imgs[0].get_data()
1275+
img_data = imgs[0].get_fdata(dtype=np.float32)
12761276
img_data[img_data > 0.0] = 1.0
12771277
hdr = imgs[0].header.copy()
1278-
hdr["data_type"] = 16
12791278
hdr.set_data_dtype(np.float32)
1280-
nb.save(
1281-
nb.Nifti1Image(img_data.astype(np.float32), imgs[0].affine, hdr),
1282-
out_files[0],
1283-
)
1279+
nb.save(nb.Nifti1Image(img_data, imgs[0].affine, hdr), out_files[0])
12841280
return out_files[0]
12851281

1286-
img_data = np.array([im.get_data() for im in imgs]).astype(np.float32)
1282+
img_data = np.stack(
1283+
[im.get_fdata(caching="unchanged", dtype=np.float32) for im in imgs]
1284+
)
12871285
# img_data[img_data>1.0] = 1.0
12881286
img_data[img_data < 0.0] = 0.0
12891287
weights = np.sum(img_data, axis=0)
12901288

1291-
msk = np.ones_like(imgs[0].get_data())
1289+
msk = np.ones(imgs[0].shape)
12921290
msk[weights <= 0] = 0
12931291

12941292
if in_mask is not None:
1295-
msk = nb.load(in_mask, mmap=NUMPY_MMAP).get_data()
1293+
msk = np.asanyarray(nb.load(in_mask, mmap=NUMPY_MMAP).dataobj)
12961294
msk[msk <= 0] = 0
12971295
msk[msk > 0] = 1
12981296

@@ -1302,7 +1300,6 @@ def normalize_tpms(in_files, in_mask=None, out_files=None):
13021300
data = np.ma.masked_equal(img_data[i], 0)
13031301
probmap = data / weights
13041302
hdr = imgs[i].header.copy()
1305-
hdr["data_type"] = 16
13061303
hdr.set_data_dtype("float32")
13071304
nb.save(
13081305
nb.Nifti1Image(probmap.astype(np.float32), imgs[i].affine, hdr), out_file
@@ -1331,7 +1328,7 @@ def split_rois(in_file, mask=None, roishape=None):
13311328
droishape = (roishape[0], roishape[1], roishape[2], nvols)
13321329

13331330
if mask is not None:
1334-
mask = nb.load(mask, mmap=NUMPY_MMAP).get_data()
1331+
mask = np.asanyarray(nb.load(mask, mmap=NUMPY_MMAP).dataobj)
13351332
mask[mask > 0] = 1
13361333
mask[mask < 1] = 0
13371334
else:
@@ -1342,7 +1339,7 @@ def split_rois(in_file, mask=None, roishape=None):
13421339
els = np.sum(mask)
13431340
nrois = int(ceil(els / float(roisize)))
13441341

1345-
data = im.get_data().reshape((mask.size, -1))
1342+
data = np.asanyarray(im.dataobj).reshape((mask.size, -1))
13461343
data = np.squeeze(data.take(nzels, axis=0))
13471344
nvols = data.shape[-1]
13481345

@@ -1420,22 +1417,24 @@ def merge_rois(in_files, in_idxs, in_ref, dtype=None, out_file=None):
14201417
rsh = ref.shape
14211418
del ref
14221419
npix = rsh[0] * rsh[1] * rsh[2]
1423-
fcdata = nb.load(in_files[0]).get_data()
1420+
fcimg = nb.load(in_files[0])
14241421

1425-
if fcdata.ndim == 4:
1426-
ndirs = fcdata.shape[-1]
1422+
if len(fcimg.shape) == 4:
1423+
ndirs = fcimg.shape[-1]
14271424
else:
14281425
ndirs = 1
14291426
newshape = (rsh[0], rsh[1], rsh[2], ndirs)
14301427
hdr.set_data_dtype(dtype)
14311428
hdr.set_xyzt_units("mm", "sec")
14321429

14331430
if ndirs < 300:
1434-
data = np.zeros((npix, ndirs))
1431+
data = np.zeros((npix, ndirs), dtype=dtype)
14351432
for cname, iname in zip(in_files, in_idxs):
14361433
f = np.load(iname)
14371434
idxs = np.squeeze(f["arr_0"])
1438-
cdata = nb.load(cname, mmap=NUMPY_MMAP).get_data().reshape(-1, ndirs)
1435+
cdata = np.asanyarray(nb.load(cname, mmap=NUMPY_MMAP).dataobj).reshape(
1436+
-1, ndirs
1437+
)
14391438
nels = len(idxs)
14401439
idata = (idxs,)
14411440
try:
@@ -1450,10 +1449,7 @@ def merge_rois(in_files, in_idxs, in_ref, dtype=None, out_file=None):
14501449
)
14511450
raise
14521451

1453-
hdr.set_data_shape(newshape)
1454-
nb.Nifti1Image(data.reshape(newshape).astype(dtype), aff, hdr).to_filename(
1455-
out_file
1456-
)
1452+
nb.Nifti1Image(data.reshape(newshape), aff, hdr).to_filename(out_file)
14571453

14581454
else:
14591455
hdr.set_data_shape(rsh[:3])
@@ -1468,10 +1464,10 @@ def merge_rois(in_files, in_idxs, in_ref, dtype=None, out_file=None):
14681464
idxs = np.squeeze(f["arr_0"])
14691465

14701466
for d, fname in enumerate(nii):
1471-
data = nb.load(fname, mmap=NUMPY_MMAP).get_data().reshape(-1)
1472-
cdata = (
1473-
nb.load(cname, mmap=NUMPY_MMAP).get_data().reshape(-1, ndirs)[:, d]
1467+
data = np.asanyarray(nb.load(fname, mmap=NUMPY_MMAP).dataobj).reshape(
1468+
-1
14741469
)
1470+
cdata = nb.load(cname, mmap=NUMPY_MMAP).dataobj[..., d].reshape(-1)
14751471
nels = len(idxs)
14761472
idata = (idxs,)
14771473
data[idata] = cdata[0:nels]
@@ -1552,7 +1548,7 @@ def _run_interface(self, runtime):
15521548
self._median_files = []
15531549
for idx, fname in enumerate(ensure_list(self.inputs.in_files)):
15541550
img = nb.load(fname, mmap=NUMPY_MMAP)
1555-
data = np.median(img.get_data(), axis=3)
1551+
data = np.median(img.get_fdata(), axis=3)
15561552
if self.inputs.median_per_file:
15571553
self._median_files.append(self._write_nifti(img, data, idx))
15581554
else:

0 commit comments

Comments
 (0)