def write_texture(tex_data, filename, intent=None, meta_data=None): """ Write the n-dimensional numpy array 'text_data' into filename using gifti (.gii) or tex format. """ if tex_data.dtype == np.bool: tex_data = tex_data.astype(np.int16) if has_ext_gzsafe(filename, 'gii'): #tex = np.arange(len(cor), dtype=int) if intent is None: if np.issubdtype(tex_data.dtype, np.int): intent = 'NIFTI_INTENT_LABEL' dtype = None elif np.issubdtype(tex_data.dtype, np.float): intent = 'NIFTI_INTENT_NONE' # intent = 'dimensionless' #?fg #dtype = 'NIFTI_TYPE_FLOAT32' tex_data.astype(np.float32) if pyhrf.cfg['global']['write_texture_minf']: s = "attributes = {'data_type' : 'FLOAT'}" f = open(filename + '.minf', 'w') f.write(s) f.close() else: raise NotImplementedError("Unsupported dtype %s" % str(tex_data.dtype)) gii_array = gifti.GiftiDataArray.from_array(tex_data, intent) if meta_data is not None: md = {'pyhrf_cuboid_data': meta_data} gmeta_data = gifti.GiftiMetaData.from_dict(md) else: gmeta_data = None tex_gii = gifti.GiftiImage(darrays=[gii_array, ], meta=gmeta_data) logger.info('Write texture to %s', filename) gifti.write(tex_gii, filename) elif has_ext_gzsafe(filename, 'tex'): if meta_data is not None: print 'Warning: meta ignored when saving to tex format' from pyhrf.tools._io.tio import Texture tex = Texture(filename, data=tex_data) tex.write() else: raise NotImplementedError('Unsupported extension for file %s' % filename)