Dask 块屏蔽

时间:2021-05-05 19:25:29

标签: python dask raster

我有一个应用程序,我将栅格数据加载到 Dask 数组中,然后我只需要处理与某些感兴趣区域重叠的块。我知道我可以创建一个 Dask 掩码数组,但我正在寻找一种方法来防止某些块被处理——因为一些 ROI 包含多个相距很远的多边形,因此 90% 的块将是最后被丢弃。

一个简单的例子是,如下所示,其中 arr2 根本不包含任何信息,但需要其他块的对齐。

import numpy as np
import dask.array as da

arr0 = da.from_array(np.arange(1, 26).reshape(5,5), chunks=(5, 5))
arr1 = da.from_array(np.arange(25, 50).reshape(5,5), chunks=(5, 5))
arr2 = da.from_array(np.zeros((5,5)), chunks=(5, 5)) 
arr3 = da.from_array(np.arange(75, 100).reshape(5,5), chunks=(5, 5))

a = da.block([[arr0, arr1],[arr2, arr3]])
b = da.ma.masked_equal(a, 0)
c = da.min(b)
c.visualize()

我们通过绘制图形可以看到 arr2 仍然在计算图中,而且它正在占用内存,因为即使它被屏蔽,它仍然会被评估。我想要实现的是一种屏蔽整个块/块的方法,以便在计算中将其全部忽略。enter image description here

0 个答案:

没有答案