通过卫星图像预测区域内降雨范围和降雨量

使用从MeteomaticsAPI提取的卫星图像数据训练神经网络来预测降水
通过卫星图像预测区域内降雨范围和降雨量
文章图片
在农业、自动驾驶、航空或能源领域 , 预测和了解天气是十分重要的 。 例如 , 天气条件对航空和物流公司在规划最快和最安全的航线方面起着重要作用 , 可再生能源公司也需要根据天气预测他们在给定的一天将生产多少能源 。 因此 , 各种天气模型被开发出来并正在世界各地应用 。 但是这些模型通常需要关于大气和确切条件的高度具体的信息 , 这样使得模型对数据的需求变得非常复杂 。
出于这个原因 , Meteomatics(提供对广泛的全球天气、气候预测和环境数据的快速、直接和简单的访问API) , 已向我们(Lightly.ai)寻求帮助 。 他们的目标是:在数据稀少且必须依赖卫星图像的地区准确预测降水 。 在这篇文章中 , 我们展示了我们如何开发一个神经网络来根据红外卫星数据预测给定区域的降雨量 。
如果您曾经使用过神经网络 , 您就会知道它们需要大量数据 。 出于这个原因 , 建立一个收集、管理和组装数据的数据管道至关重要 。 Meteomatics提供易于使用的API , 使我们能够快速收集训练和真实数据 。 例如 , 要在2021年7月7日以800x600像素的分辨率获取欧洲的红外图片(坐标从65,-15到35,20) , 我们可以简单地进行以下查询:
wget":15:02Z/sat_ir_108:K/65,-15_35,20:800x600/png"
我们可以每隔15分钟运行一个Python脚本 , 连续几天收集欧洲、北美和墨西哥不同波长的红外图像 。 然后我们将每个时间戳的不同图像在本地组合成一个RGB图像 。 为了使任务更容易 , 我们在第一步中掩盖了层状降水 。 然而 , 正如我们稍后将看到的 , 这对模型的准确性只有很小的影响 。 我们还收集了真实数据用于训练和评估模型的准确性 。 请注意 , 真实数据仅适用于欧洲和北美 。 您可以在下面看到欧洲的一对输入和实际真值数据:
通过卫星图像预测区域内降雨范围和降雨量
文章图片
卫星图像示例(左)、神经网络的输入(中)和真实数据(右) 。 基于指标对输入图像和真实图像的浅灰色区域进行遮挡 。 这些数据是在2021年7月13日星期二20:15:02在欧洲收集的 。
为了避免“garbageingarbageout” , 肯定要在进行机器学习算法训练之前对收集的数据进行理解和整理 。 我们的Lightly支持快速简便的方法来分析数据集以及更深入的算法来选择最相关的训练点 。 将的数据集上传到Lightly后 , 我们立即注意到所收集数据的一个重要特性:欧洲、北美和墨西哥的图像在视觉和语义上是分开的 。 这样我们可以使用一个简单的策略来测试算法的泛化能力:如果我们用来自欧洲的数据训练它并且它在来自北美和墨西哥的看不见的数据上表现良好 , 那么该算法将很好地泛化 。
通过卫星图像预测区域内降雨范围和降雨量
文章图片
显示的来自欧洲(蓝色)、北美(绿色)和墨西哥(灰色)的输入图像嵌入 。 图像在嵌入空间中分离良好 。
通过卫星图像预测区域内降雨范围和降雨量】另一个关键问题是 , 有许多极其相似的小集群图像 。 这是因为我们在相对较短的时间内收集了数据 。 因此 , 数据集中有很多相似的图像 , 这使得模型难以很好地泛化 。 通过一种名为“coresetsampling”的方法帮助我们消除了这些冗余 , 该方法旨在最大限度地提高数据集的多样性 。
在使用Lightly管理数据集之前 , 我们的训练数据集(欧洲)中有1158张图像 。 数据整理后 , 我们剩下578张图像 。 验证数据集(北美)包含1107张图像 , 而测试数据集(墨西哥)仅包含43张图像 , 因为我们开始数据收集的时间较晚 。