def write(self, surface_obj, file_path): image_metadata = GiftiMetaData().from_dict( surface_obj.generic_metadata) vertices_metadata = GiftiMetaData().from_dict( surface_obj.vertices_metadata) triangles_metadata = GiftiMetaData().from_dict( surface_obj.triangles_metadata) gifti_image = GiftiImage() gifti_image.set_metadata(image_metadata) data = GiftiDataArray(surface_obj.vertices, datatype='NIFTI_TYPE_FLOAT32', intent='NIFTI_INTENT_POINTSET') data.meta = vertices_metadata data.coordsys = surface_obj.vertices_coord_system gifti_image.add_gifti_data_array(data) data = GiftiDataArray(surface_obj.triangles, datatype='NIFTI_TYPE_INT32', intent='NIFTI_INTENT_TRIANGLE') data.meta = triangles_metadata data.coordsys = None gifti_image.add_gifti_data_array(data) nibabel.save(gifti_image, file_path)
def test_metadata(): # Test deprecation with clear_and_catch_warnings() as w: warnings.filterwarnings('once', category=DeprecationWarning) assert_equal(len(GiftiDataArray().get_metadata()), 0) # Test deprecation with clear_and_catch_warnings() as w: warnings.filterwarnings('once', category=DeprecationWarning) assert_equal(len(GiftiMetaData().get_metadata()), 0)
def test_metadata(): nvpair = GiftiNVPairs('key', 'value') da = GiftiMetaData(nvpair=nvpair) assert_equal(da.data[0].name, 'key') assert_equal(da.data[0].value, 'value') # Test deprecation with clear_and_catch_warnings() as w: warnings.filterwarnings('always', category=DeprecationWarning) assert_equal(len(GiftiDataArray().get_metadata()), 0) assert_equal(len(w), 1)
def write_gifti(self, surface, surface_path): gifti_image = GiftiImage() data_array = [0 for _ in xrange(2)] data_array[0] = surface.vertices data_array[1] = surface.triangles image_metadata = GiftiMetaData().from_dict(surface.image_metadata) vertices_metadata = GiftiMetaData().from_dict(surface.vertices_metadata) triangles_metadata = GiftiMetaData().from_dict(surface.triangles_metadata) # TODO We currently write metadata of the old surface gifti_image.set_metadata(image_metadata) data = GiftiDataArray(data_array[0], datatype='NIFTI_TYPE_FLOAT32', intent='NIFTI_INTENT_POINTSET') data.meta = vertices_metadata data.coordsys = surface.vertices_coord_system gifti_image.add_gifti_data_array(data) data = GiftiDataArray(data_array[1], datatype='NIFTI_TYPE_INT32', intent='NIFTI_INTENT_TRIANGLE') data.meta = triangles_metadata data.coordsys = None gifti_image.add_gifti_data_array(data) nibabel.save(gifti_image, surface_path)