def test_parcel_write(self): parcelmap = np.zeros(self.img3.shape) parcelmap[0,0,0] = 1 parcelmap[1,1,1] = 1 parcelmap[2,2,2] = 1 parcelmap[1,2,1] = 2 parcelmap[2,3,2] = 2 parcelmap[0,1,0] = 2 parcelseq = (0, 1, 2, 3) expected = [np.product(self.img3.shape) - 6, 3, 3, 0] iterator = gen.parcels(parcelmap, labels=parcelseq) for i, s in enumerate(iterator): value = np.arange(expected[i]) self.img3[s] = value iterator = gen.parcels(parcelmap, labels=parcelseq) for i, pair in enumerate(gen.data_generator(self.img3, iterator)): s, d = pair self.assertEqual((expected[i],), d.shape) assert_equal(d, np.arange(expected[i])) iterator = gen.parcels(parcelmap) for i, s in enumerate(iterator): value = np.arange(expected[i]) self.img3[s] = value iterator = gen.parcels(parcelmap) for i, pair in enumerate(gen.data_generator(self.img3, iterator)): s, d = pair self.assertEqual((expected[i],), d.shape) assert_equal(d, np.arange(expected[i]))
def test_iterate_over_image(self): # Fit a model, iterating over the slices of an array # associated to an FmriImage. c = np.zeros(self.fd.shape[1:]) + 0.5 fd = self.fd res_gen = result_generator(flatten_generator(fmri_generator(fd))) write_data(c, unflatten_generator(contrast_generator(res_gen))) # Fit a model, iterating over the array associated to an # FmriImage, iterating over a list of ROIs defined by binary # regions of the same shape as a frame of FmriImage # this might really be an anatomical image or AR(1) coefficients a = np.asarray(fd[0]) p = np.greater(a, a.mean()) d = np.ones(fd.shape[1:]) * 2.0 flat_gen = flatten_generator(fmri_generator(fd, parcels(p))) write_data(d, contrast_generator(result_generator(flat_gen))) yield assert_array_almost_equal, d, c e = np.zeros(fd.shape[1:]) + 3.0 flat_gen2 = flatten_generator(fmri_generator(fd, parcels(p))) write_data(e, f_generator(contrast, result_generator(flat_gen2))) yield assert_array_almost_equal, d, e
def test_parcel_copy(self): parcelmap = np.zeros(self.img3.shape) parcelmap[0,0,0] = 1 parcelmap[1,1,1] = 1 parcelmap[2,2,2] = 1 parcelmap[1,2,1] = 2 parcelmap[2,3,2] = 2 parcelmap[0,1,0] = 2 parcelseq = (0, 1, 2, 3) expected = [np.product(self.img3.shape) - 6, 3, 3, 0] iterator = gen.parcels(parcelmap, labels=parcelseq) tmp = Image(np.asarray(self.img3), self.img3.coordmap) gen_parcels = gen.parcels(parcelmap, labels=parcelseq) new_iterator = gen.data_generator(tmp, gen_parcels) for i, slice_ in enumerate(new_iterator): self.assertEqual((expected[i],), slice_[1].shape)
def test_parcel(self): parcelmap = np.zeros(self.img3.shape) parcelmap[0,0,0] = 1 parcelmap[1,1,1] = 1 parcelmap[2,2,2] = 1 parcelmap[1,2,1] = 2 parcelmap[2,3,2] = 2 parcelmap[0,1,0] = 2 parcelseq = (0, 1, 2, 3) expected = [np.product(self.img3.shape) - 6, 3, 3, 0] iterator = gen.data_generator(self.img3, gen.parcels(parcelmap, labels=parcelseq)) for i, pair in enumerate(iterator): s, d = pair self.assertEqual((expected[i],), d.shape) iterator = gen.data_generator(self.img3, gen.parcels(parcelmap)) for i, pair in enumerate(iterator): s, d = pair self.assertEqual((expected[i],), d.shape)