def _run_fromFishTif(self, blocksize="150M"): imagepath = TestSeriesLoader._findSourceTreeDir("utils/data/fish/tif-stack") series = SeriesLoader(self.sc).fromMultipageTif(imagepath, blockSize=blocksize) series_ary = series.pack() series_ary_xpose = series.pack(transpose=True) assert_equals((76, 87, 2), series.dims.count) assert_equals((20, 76, 87, 2), series_ary.shape) assert_equals((20, 2, 87, 76), series_ary_xpose.shape)
def _run_fromFishTif(self, blocksize): imagepath = TestSeriesLoader._findSourceTreeDir("utils/data/fish/images") series = SeriesLoader(self.sc).fromTif(imagepath, blockSize=blocksize) assert_equals('float16', series._dtype) seriesAry = series.pack() seriesAry_xpose = series.pack(transpose=True) assert_equals('float16', str(seriesAry.dtype)) assert_equals((76, 87, 2), series.dims.count) assert_equals((20, 76, 87, 2), seriesAry.shape) assert_equals((20, 2, 87, 76), seriesAry_xpose.shape)
def _run_fromFishTif(self, blocksize): imagepath = TestSeriesLoader._findSourceTreeDir( "utils/data/fish/tif-stack") series = SeriesLoader(self.sc).fromTif(imagepath, blockSize=blocksize) assert_equals('float16', series._dtype) seriesAry = series.pack() seriesAry_xpose = series.pack(transpose=True) assert_equals('float16', str(seriesAry.dtype)) assert_equals((76, 87, 2), series.dims.count) assert_equals((20, 76, 87, 2), seriesAry.shape) assert_equals((20, 2, 87, 76), seriesAry_xpose.shape)
def test_fromMultipleArrays(self): ary = arange(8, dtype=dtype('int16')).reshape((2, 4)) ary2 = arange(8, 16, dtype=dtype('int16')).reshape((2, 4)) series = SeriesLoader(self.sc).fromArrays([ary, ary2]) seriesvals = series.collect() seriesary = series.pack() # check ordering of keys assert_equals((0, 0), seriesvals[0][0]) # first key assert_equals((1, 0), seriesvals[1][0]) # second key assert_equals((3, 0), seriesvals[3][0]) assert_equals((0, 1), seriesvals[4][0]) assert_equals((3, 1), seriesvals[7][0]) # check dimensions tuple is reversed from numpy shape assert_equals(ary.shape[::-1], series.dims.count) # check that values are in original order, with subsequent point concatenated in values collectedvals = array([kv[1] for kv in seriesvals], dtype=dtype('int16')) assert_true(array_equal(ary.ravel(), collectedvals[:, 0])) assert_true(array_equal(ary2.ravel(), collectedvals[:, 1])) # check that packing returns concatenation of input arrays, with time as first dimension assert_true(array_equal(ary.T, seriesary[0])) assert_true(array_equal(ary2.T, seriesary[1]))
def test_fromArrays(self): ary = arange(8, dtype=dtype('int16')).reshape((2, 4)) series = SeriesLoader(self.sc).fromArrays(ary) seriesvals = series.collect() seriesary = series.pack() # check ordering of keys assert_equals((0, 0), seriesvals[0][0]) # first key assert_equals((1, 0), seriesvals[1][0]) # second key assert_equals((2, 0), seriesvals[2][0]) assert_equals((3, 0), seriesvals[3][0]) assert_equals((0, 1), seriesvals[4][0]) assert_equals((1, 1), seriesvals[5][0]) assert_equals((2, 1), seriesvals[6][0]) assert_equals((3, 1), seriesvals[7][0]) # check dimensions tuple is reversed from numpy shape assert_equals(ary.shape[::-1], series.dims.count) # check that values are in original order collectedvals = array([kv[1] for kv in seriesvals], dtype=dtype('int16')).ravel() assert_true(array_equal(ary.ravel(), collectedvals)) # check that packing returns transpose of original array assert_true(array_equal(ary.T, seriesary))
def test_fromMultipleArrays(self): ary = arange(8, dtype=dtypeFunc('int16')).reshape((2, 4)) ary2 = arange(8, 16, dtype=dtypeFunc('int16')).reshape((2, 4)) series = SeriesLoader(self.sc).fromArraysAsImages([ary, ary2]) seriesVals = series.collect() seriesAry = series.pack() # check ordering of keys assert_equals((0, 0), seriesVals[0][0]) # first key assert_equals((1, 0), seriesVals[1][0]) # second key assert_equals((3, 0), seriesVals[3][0]) assert_equals((0, 1), seriesVals[4][0]) assert_equals((3, 1), seriesVals[7][0]) # check dimensions tuple is reversed from numpy shape assert_equals(ary.shape[::-1], series.dims.count) # check that values are in original order, with subsequent point concatenated in values collectedVals = array([kv[1] for kv in seriesVals], dtype=dtypeFunc('int16')) assert_true(array_equal(ary.ravel(), collectedVals[:, 0])) assert_true(array_equal(ary2.ravel(), collectedVals[:, 1])) # check that packing returns concatenation of input arrays, with time as first dimension assert_true(array_equal(ary.T, seriesAry[0])) assert_true(array_equal(ary2.T, seriesAry[1]))
def test_fromArrays(self): ary = arange(8, dtype=dtypeFunc('int16')).reshape((2, 4)) series = SeriesLoader(self.sc).fromArraysAsImages(ary) seriesVals = series.collect() seriesAry = series.pack() # check ordering of keys assert_equals((0, 0), seriesVals[0][0]) # first key assert_equals((1, 0), seriesVals[1][0]) # second key assert_equals((2, 0), seriesVals[2][0]) assert_equals((3, 0), seriesVals[3][0]) assert_equals((0, 1), seriesVals[4][0]) assert_equals((1, 1), seriesVals[5][0]) assert_equals((2, 1), seriesVals[6][0]) assert_equals((3, 1), seriesVals[7][0]) # check dimensions tuple is reversed from numpy shape assert_equals(ary.shape[::-1], series.dims.count) # check that values are in original order collectedVals = array([kv[1] for kv in seriesVals], dtype=dtypeFunc('int16')).ravel() assert_true(array_equal(ary.ravel(), collectedVals)) # check that packing returns transpose of original array assert_true(array_equal(ary.T, seriesAry))
def test_loadStacksAsSeries(self): rangeary = arange(64*128, dtype=dtype('int16')) rangeary.shape = (64, 128) filepath = os.path.join(self.outputdir, "rangeary.stack") rangeary.tofile(filepath) series = SeriesLoader(self.sc).fromStack(filepath, dims=(128, 64)) series_ary = series.pack() assert_equals((128, 64), series.dims.count) assert_equals((128, 64), series_ary.shape) assert_true(array_equal(rangeary.T, series_ary))
def test_loadStacksAsSeries(self): rangeary = arange(64 * 128, dtype=dtype('int16')) rangeary.shape = (64, 128) filepath = os.path.join(self.outputdir, "rangeary.stack") rangeary.tofile(filepath) series = SeriesLoader(self.sc).fromStack(filepath, dims=(128, 64)) series_ary = series.pack() assert_equals((128, 64), series.dims.count) assert_equals((128, 64), series_ary.shape) assert_true(array_equal(rangeary.T, series_ary))
def _run_tst_roundtripConvertToSeries(self, images, strategy): outdir = os.path.join(self.outputdir, "fish-series-dir") partitionedimages = images.toBlocks(strategy) series = partitionedimages.toSeries() series_ary = series.pack() partitionedimages.saveAsBinarySeries(outdir) converted_series = SeriesLoader(self.sc).fromBinary(outdir) converted_series_ary = converted_series.pack() assert_equals(images.dims.count, series.dims.count) expected_shape = tuple([images.nimages] + list(images.dims.count)) assert_equals(expected_shape, series_ary.shape) assert_true(array_equal(series_ary, converted_series_ary))
def _run_tst_roundtripConvertToSeries(self, images, strategy): outdir = os.path.join(self.outputdir, "fish-series-dir") partitionedimages = images.toBlocks(strategy) series = partitionedimages.toSeries() series_ary = series.pack() partitionedimages.saveAsBinarySeries(outdir) converted_series = SeriesLoader(self.sc).fromBinary(outdir) converted_series_ary = converted_series.pack() assert_equals(images.dims.count, series.dims.count) expected_shape = tuple([images.nrecords] + list(images.dims.count)) assert_equals(expected_shape, series_ary.shape) assert_true(array_equal(series_ary, converted_series_ary))
def test_roundtripConvertToSeries(self): imagepath = TestImagesUsingOutputDir._findSourceTreeDir("utils/data/fish/tif-stack") outdir = os.path.join(self.outputdir, "fish-series-dir") images = ImagesLoader(self.sc).fromMultipageTif(imagepath) series = images.toSeries(blockSize=76*20) series_ary = series.pack() images.saveAsBinarySeries(outdir, blockSize=76*20) converted_series = SeriesLoader(self.sc).fromBinary(outdir) converted_series_ary = converted_series.pack() assert_equals((76, 87, 2), series.dims.count) assert_equals((20, 76, 87, 2), series_ary.shape) assert_true(array_equal(series_ary, converted_series_ary))
def test_roundtripConvertToSeries(self): imagepath = TestImagesUsingOutputDir._findSourceTreeDir( "utils/data/fish/tif-stack") outdir = os.path.join(self.outputdir, "fish-series-dir") images = ImagesLoader(self.sc).fromMultipageTif(imagepath) series = images.toSeries(blockSize=76 * 20) series_ary = series.pack() images.saveAsBinarySeries(outdir, blockSize=76 * 20) converted_series = SeriesLoader(self.sc).fromBinary(outdir) converted_series_ary = converted_series.pack() assert_equals((76, 87, 2), series.dims.count) assert_equals((20, 76, 87, 2), series_ary.shape) assert_true(array_equal(series_ary, converted_series_ary))
def test_fromMultipageTif(self): testresourcesdir = TestSeriesLoader._findTestResourcesDir() imagepath = os.path.join(testresourcesdir, "multilayer_tif", "dotdotdot_lzw.tif") testimg_pil = Image.open(imagepath) testimg_arys = list() testimg_arys.append(pil_to_array(testimg_pil)) testimg_pil.seek(1) testimg_arys.append(pil_to_array(testimg_pil)) testimg_pil.seek(2) testimg_arys.append(pil_to_array(testimg_pil)) series = SeriesLoader(self.sc).fromMultipageTif(imagepath) series_ary = series.pack() assert_equals((70, 75, 3), series.dims.count) assert_equals((70, 75, 3), series_ary.shape) assert_true(array_equal(testimg_arys[0], series_ary[:, :, 0])) assert_true(array_equal(testimg_arys[1], series_ary[:, :, 1])) assert_true(array_equal(testimg_arys[2], series_ary[:, :, 2]))
def test_fromMultipageTif(self): testresourcesdir = TestSeriesLoader._findTestResourcesDir() imagepath = os.path.join(testresourcesdir, "multilayer_tif", "dotdotdot_lzw.tif") testimg_pil = Image.open(imagepath) testimg_arys = list() testimg_arys.append(pil_to_array(testimg_pil)) testimg_pil.seek(1) testimg_arys.append(pil_to_array(testimg_pil)) testimg_pil.seek(2) testimg_arys.append(pil_to_array(testimg_pil)) series = SeriesLoader(self.sc).fromMultipageTif(imagepath) assert_equals('float16', series._dtype) series_ary = series.pack() assert_equals((70, 75, 3), series.dims.count) assert_equals((70, 75, 3), series_ary.shape) assert_true(array_equal(testimg_arys[0], series_ary[:, :, 0])) assert_true(array_equal(testimg_arys[1], series_ary[:, :, 1])) assert_true(array_equal(testimg_arys[2], series_ary[:, :, 2]))