Skip to content

Commit c02a3d7

Browse files
authored
Merge pull request #47 from FZJ-INM1-BDA/bugfix_typecastMap64fTo32f
bugfix: type cast float64 maps to float32
2 parents f239b48 + ae4e3cc commit c02a3d7

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

app/service/request_utils.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,8 @@ def get_path_to_regional_map(query_id, roi, space_of_interest):
507507
# cache fails, fetch from source
508508
def save_new_nii(cached_fullpath):
509509
import nibabel as nib
510+
import numpy as np
511+
510512
# fix regional_map if necessary
511513
regional_map.image.header.set_xyzt_units('mm', 'sec')
512514

@@ -515,7 +517,22 @@ def save_new_nii(cached_fullpath):
515517

516518
# num channel
517519
regional_map.image.header['dim'][5] = 1
518-
nib.save(regional_map.image, cached_fullpath)
520+
521+
# cast type float64 to float32
522+
if regional_map.image.header.get_data_dtype() == np.float64:
523+
fdata=regional_map.image.get_fdata()
524+
new_data=fdata.astype(np.float32)
525+
regional_map.image.set_data_dtype(np.float32)
526+
527+
if regional_map.image.header['sizeof_hdr'] == 348:
528+
new_image=nib.Nifti1Image(new_data, regional_map.image.affine, regional_map.image.header)
529+
elif regional_map.image.header['sizeof_hdr'] == 540:
530+
new_image=nib.Nifti2Image(new_data, regional_map.image.affine, regional_map.image.header)
531+
else:
532+
raise IOError('regional map has incorrect sizeof_hdr')
533+
nib.save(new_image, cached_fullpath)
534+
else:
535+
nib.save(regional_map.image, cached_fullpath)
519536

520537
return get_cached_file(cached_filename, save_new_nii)
521538

requirements/dev.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
-r common.txt
2-
git+https://github.com/FZJ-INM1-BDA/siibra-python@develop
3-
# git+https://github.com/FZJ-INM1-BDA/siibra-python@refactor/dataset
2+
git+https://github.com/FZJ-INM1-BDA/siibra-python@main

requirements/prod.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
-r common.txt
2-
siibra==0.1a8
2+
siibra==0.3a0

0 commit comments

Comments
 (0)