如何将 Dask Array 保存为一堆图像?
How do I save a Dask Array as a stack of images?
我有一个图像数据的 Dask 数组。如何将此数组保存到 tiff 文件目录?
理想情况下会有某种 imsave
功能。截至 2019-10-31,我找不到,但您可能想在以后观看 https://image.dask.org 以了解此类功能。
您今天可以使用 map_blocks 和 skimage.io.imread
完成此操作
import dask.array as da
import skimage.io
x = da.random.random((2000, 2000), chunks=(200, 200)) # make a dask array
def save_file(arr, block_info=None):
""" Save file to foo-x-y.tif, where x and y are block locations """
filename = "foo-" + "-".join(map(str, block_info[0]["chunk-location"])) + ".tif"
skimage.io.imsave(filename, arr)
return arr
x.map_blocks(save_file, dtype=x.dtype).compute() # call function on every block
.
$ ls
foo-0-0.tif
foo-0-1.tif
...
foo-9-8.tif
foo-9-9.tif
我有一个图像数据的 Dask 数组。如何将此数组保存到 tiff 文件目录?
理想情况下会有某种 imsave
功能。截至 2019-10-31,我找不到,但您可能想在以后观看 https://image.dask.org 以了解此类功能。
您今天可以使用 map_blocks 和 skimage.io.imread
完成此操作import dask.array as da
import skimage.io
x = da.random.random((2000, 2000), chunks=(200, 200)) # make a dask array
def save_file(arr, block_info=None):
""" Save file to foo-x-y.tif, where x and y are block locations """
filename = "foo-" + "-".join(map(str, block_info[0]["chunk-location"])) + ".tif"
skimage.io.imsave(filename, arr)
return arr
x.map_blocks(save_file, dtype=x.dtype).compute() # call function on every block
.
$ ls
foo-0-0.tif
foo-0-1.tif
...
foo-9-8.tif
foo-9-9.tif