基于 fastnanquantile 库计算基于分位数的时间复合的更快方法
简要背景
为了从卫星图像创建时间合成图像,我们通常只获取云量低于特定阈值(例如 40%)的图像,遮盖云和云阴影,并随时间聚合图像。例如,如果我们一年中有 50 张图像(在云层覆盖限制内以及云/阴影遮罩之后),对于每个像素位置,我们需要使用指标(例如平均值、分位数)聚合时间维度(50 个时间步长) ,或其他。然而,到目前为止一切都很好……卫星图像是一组大型二维阵列(每个波段一个),如果我们不使用正确的工具,处理如此大量的数据可能会非常具有挑战性。在 Python 中,生成时间组合的替代方法之一是使用 numpy。它通常运行良好,但我意识到计算分位数比计算其他指标(例如平均值或标准差)慢得多。让我们在下一节中深入探讨它。为了更好地理解这篇文章,您需要具备卫星数据处理的基本知识。
免责声明:使用Xarray + Dask来利用多个 CPU 核心和核外处理可能是比纯 numpy 更好的替代方案,但首先让我们关注 numpy,在本文末尾我们将回到 Xarray。