def test_special_z_translation(self): """ This tests the special """ tiled_volume = TiledVolume( self.data_setup.SPECIAL_Z_VOLUME_DESCRIPTION_FILE) tiled_volume.TEST_MODE = True reference_roi = numpy.array([(20, 150, 100), (40, 550, 550)]) result_out = numpy.zeros(reference_roi[1] - reference_roi[0], dtype=tiled_volume.description.dtype) roi_translated = reference_roi - [11, 0, 0] tiled_volume.read(roi_translated, result_out) ref_path_comp = PathComponents(self.data_setup.REFERENCE_VOL_PATH) with h5py.File(ref_path_comp.externalPath, 'r') as f: ref_data = f[ref_path_comp.internalPath][:] expected = ref_data[roiToSlice(*reference_roi)] #numpy.save('/tmp/expected.npy', expected) #numpy.save('/tmp/result_out.npy', result_out) assert (expected == result_out).all()
def setupOutputs(self): if self.tiled_volume: self.tiled_volume.close() # Create a TiledVolume object to read the description file and do the downloads. self.tiled_volume = TiledVolume(self.DescriptionFilePath.value) self.Output.meta.shape = tuple(self.tiled_volume.output_shape) self.Output.meta.dtype = self.tiled_volume.description.dtype self.Output.meta.axistags = vigra.defaultAxistags( self.tiled_volume.description.output_axes) self.Output.meta.prefer_2d = True self.Output.meta.nickname = self.tiled_volume.description.name
def testBasic(self): tiled_volume = TiledVolume( self.data_setup.LOCAL_VOLUME_DESCRIPTION_FILE ) tiled_volume.TEST_MODE = True roi = numpy.array( [(10, 150, 100), (30, 550, 550)] ) result_out = numpy.zeros( roi[1] - roi[0], dtype=tiled_volume.description.dtype ) tiled_volume.read( roi, result_out ) ref_path_comp = PathComponents(self.data_setup.REFERENCE_VOL_PATH) with h5py.File(ref_path_comp.externalPath, 'r') as f: ref_data = f[ref_path_comp.internalPath][:] expected = ref_data[roiToSlice(*roi)] #numpy.save('/tmp/expected.npy', expected) #numpy.save('/tmp/result_out.npy', result_out) assert (expected == result_out).all()
def testMissingTiles(self): tiled_volume = TiledVolume( self.data_setup.VOLUME_DESCRIPTION_FILE ) tiled_volume.TEST_MODE = True # The test data should be missing slice 2, and the config doesn't remap the data. roi = numpy.array( [(0, 150, 100), (10, 550, 550)] ) result_out = numpy.zeros( roi[1] - roi[0], dtype=tiled_volume.description.dtype ) tiled_volume.read( roi, result_out ) ref_path_comp = PathComponents(self.data_setup.REFERENCE_VOL_PATH) with h5py.File(ref_path_comp.externalPath, 'r') as f: ref_data = f[ref_path_comp.internalPath][:] # Slice 2 is missing from the server data expected = ref_data[roiToSlice(*roi)] expected[2] = 0 #numpy.save('/tmp/expected.npy', expected) #numpy.save('/tmp/result_out.npy', result_out) assert (expected == result_out).all()
def testRemappedTiles(self): # The config above specifies that slices 45:47 get their data from slice 44, # and slice 41 is the same as 40 tiled_volume = TiledVolume( self.data_setup.VOLUME_DESCRIPTION_FILE ) tiled_volume.TEST_MODE = True roi = numpy.array( [(40, 150, 100), (50, 550, 550)] ) result_out = numpy.zeros( roi[1] - roi[0], dtype=tiled_volume.description.dtype ) tiled_volume.read( roi, result_out ) ref_path_comp = PathComponents(self.data_setup.REFERENCE_VOL_PATH) with h5py.File(ref_path_comp.externalPath, 'r') as f: ref_data = f[ref_path_comp.internalPath][:] # Slices 5,6,7 are missing from the server data, and 'filled in' with slice 4 # Similarly, slice 1 is missing and filled in with slice 0. expected = ref_data[roiToSlice(*roi)] expected[5:8] = expected[4] expected[1] = expected[0] #numpy.save('/tmp/expected.npy', expected) #numpy.save('/tmp/result_out.npy', result_out) assert (expected == result_out).all()