@@ -94,7 +94,7 @@ def _gen_output_filename(self):
94
94
95
95
def _get_brodmann_area (self ):
96
96
nii = nb .load (self .inputs .atlas )
97
- origdata = nii . get_data ( )
97
+ origdata = np . asanyarray ( nii . dataobj )
98
98
newdata = np .zeros (origdata .shape )
99
99
100
100
if not isinstance (self .inputs .labels , list ):
@@ -153,7 +153,7 @@ class SimpleThreshold(BaseInterface):
153
153
def _run_interface (self , runtime ):
154
154
for fname in self .inputs .volumes :
155
155
img = nb .load (fname , mmap = NUMPY_MMAP )
156
- data = np . array ( img .get_data () )
156
+ data = img .get_fdata ( )
157
157
158
158
active_map = data > self .inputs .threshold
159
159
@@ -216,7 +216,7 @@ def _run_interface(self, runtime):
216
216
affine = np .dot (self .inputs .transformation_matrix , affine )
217
217
218
218
nb .save (
219
- nb .Nifti1Image (img .get_data () , affine , img .header ),
219
+ nb .Nifti1Image (img .dataobj , affine , img .header ),
220
220
self ._gen_output_filename (fname ),
221
221
)
222
222
@@ -1014,11 +1014,11 @@ class AddNoise(BaseInterface):
1014
1014
1015
1015
def _run_interface (self , runtime ):
1016
1016
in_image = nb .load (self .inputs .in_file )
1017
- in_data = in_image .get_data ()
1017
+ in_data = in_image .get_fdata ()
1018
1018
snr = self .inputs .snr
1019
1019
1020
1020
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 )
1022
1022
else :
1023
1023
in_mask = np .ones_like (in_data )
1024
1024
@@ -1272,27 +1272,25 @@ def normalize_tpms(in_files, in_mask=None, out_files=None):
1272
1272
imgs = [nb .load (fim , mmap = NUMPY_MMAP ) for fim in in_files ]
1273
1273
1274
1274
if len (in_files ) == 1 :
1275
- img_data = imgs [0 ].get_data ( )
1275
+ img_data = imgs [0 ].get_fdata ( dtype = np . float32 )
1276
1276
img_data [img_data > 0.0 ] = 1.0
1277
1277
hdr = imgs [0 ].header .copy ()
1278
- hdr ["data_type" ] = 16
1279
1278
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 ])
1284
1280
return out_files [0 ]
1285
1281
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
+ )
1287
1285
# img_data[img_data>1.0] = 1.0
1288
1286
img_data [img_data < 0.0 ] = 0.0
1289
1287
weights = np .sum (img_data , axis = 0 )
1290
1288
1291
- msk = np .ones_like (imgs [0 ].get_data () )
1289
+ msk = np .ones (imgs [0 ].shape )
1292
1290
msk [weights <= 0 ] = 0
1293
1291
1294
1292
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 )
1296
1294
msk [msk <= 0 ] = 0
1297
1295
msk [msk > 0 ] = 1
1298
1296
@@ -1302,7 +1300,6 @@ def normalize_tpms(in_files, in_mask=None, out_files=None):
1302
1300
data = np .ma .masked_equal (img_data [i ], 0 )
1303
1301
probmap = data / weights
1304
1302
hdr = imgs [i ].header .copy ()
1305
- hdr ["data_type" ] = 16
1306
1303
hdr .set_data_dtype ("float32" )
1307
1304
nb .save (
1308
1305
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):
1331
1328
droishape = (roishape [0 ], roishape [1 ], roishape [2 ], nvols )
1332
1329
1333
1330
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 )
1335
1332
mask [mask > 0 ] = 1
1336
1333
mask [mask < 1 ] = 0
1337
1334
else :
@@ -1342,7 +1339,7 @@ def split_rois(in_file, mask=None, roishape=None):
1342
1339
els = np .sum (mask )
1343
1340
nrois = int (ceil (els / float (roisize )))
1344
1341
1345
- data = im . get_data ( ).reshape ((mask .size , - 1 ))
1342
+ data = np . asanyarray ( im . dataobj ).reshape ((mask .size , - 1 ))
1346
1343
data = np .squeeze (data .take (nzels , axis = 0 ))
1347
1344
nvols = data .shape [- 1 ]
1348
1345
@@ -1420,22 +1417,24 @@ def merge_rois(in_files, in_idxs, in_ref, dtype=None, out_file=None):
1420
1417
rsh = ref .shape
1421
1418
del ref
1422
1419
npix = rsh [0 ] * rsh [1 ] * rsh [2 ]
1423
- fcdata = nb .load (in_files [0 ]). get_data ( )
1420
+ fcimg = nb .load (in_files [0 ])
1424
1421
1425
- if fcdata . ndim == 4 :
1426
- ndirs = fcdata .shape [- 1 ]
1422
+ if len ( fcimg . shape ) == 4 :
1423
+ ndirs = fcimg .shape [- 1 ]
1427
1424
else :
1428
1425
ndirs = 1
1429
1426
newshape = (rsh [0 ], rsh [1 ], rsh [2 ], ndirs )
1430
1427
hdr .set_data_dtype (dtype )
1431
1428
hdr .set_xyzt_units ("mm" , "sec" )
1432
1429
1433
1430
if ndirs < 300 :
1434
- data = np .zeros ((npix , ndirs ))
1431
+ data = np .zeros ((npix , ndirs ), dtype = dtype )
1435
1432
for cname , iname in zip (in_files , in_idxs ):
1436
1433
f = np .load (iname )
1437
1434
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
+ )
1439
1438
nels = len (idxs )
1440
1439
idata = (idxs ,)
1441
1440
try :
@@ -1450,10 +1449,7 @@ def merge_rois(in_files, in_idxs, in_ref, dtype=None, out_file=None):
1450
1449
)
1451
1450
raise
1452
1451
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 )
1457
1453
1458
1454
else :
1459
1455
hdr .set_data_shape (rsh [:3 ])
@@ -1468,10 +1464,10 @@ def merge_rois(in_files, in_idxs, in_ref, dtype=None, out_file=None):
1468
1464
idxs = np .squeeze (f ["arr_0" ])
1469
1465
1470
1466
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
1474
1469
)
1470
+ cdata = nb .load (cname , mmap = NUMPY_MMAP ).dataobj [..., d ].reshape (- 1 )
1475
1471
nels = len (idxs )
1476
1472
idata = (idxs ,)
1477
1473
data [idata ] = cdata [0 :nels ]
@@ -1552,7 +1548,7 @@ def _run_interface(self, runtime):
1552
1548
self ._median_files = []
1553
1549
for idx , fname in enumerate (ensure_list (self .inputs .in_files )):
1554
1550
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 )
1556
1552
if self .inputs .median_per_file :
1557
1553
self ._median_files .append (self ._write_nifti (img , data , idx ))
1558
1554
else :
0 commit comments