开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

天气预测器

概述

天气预测器(Weather Forecaster)将每小时天气数据(作为各种天气特征的 Numpy 数组,采用文本文件格式)作为输入,然后返回一个或多个特定目标变量(例如温度或风速)的每小时天气预测值。

提供了三种预先训练的模型,这些模型均由 CODAIT 团队美国国家海洋和大气管理局当地气象资料上进行了训练,这些数据最初是由肯尼迪机场收集的。这三种模型均使用 LSTM 递归神经网络架构。

下面列出了用于训练这些模型的天气变量的描述。

变量 描述
HOURLYVISIBILITY 物体的能见距离。
HOURLYDRYBULBTEMPF 干球温度(华氏度)。最常报告的标准温度。
HOURLYWETBULBTEMPF 湿球温度(华氏度)。
HOURLYDewPointTempF 露点温度(华氏度)。
HOURLYRelativeHumidity 相对湿度(百分比)。
HOURLYWindSpeed 风速(每小时英里数)。
HOURLYStationPressure 气压(英寸汞柱)。
HOURLYSeaLevelPressure 海平面气压(英寸汞柱)。
HOURLYPrecip 过去一小时的降水总量(以英寸为单位)。
HOURLYAltimeterSetting 使用“标准”大气的温度曲线(英寸汞柱)将大气压降至海平面处。
HOURLYWindDirectionSin 风向变换的正弦分量(因为风向是周期性的)。
HOURLYWindDirectionCos 风向变换的余弦分量(因为风向是周期性的)。
HOURLYPressureTendencyIncr 虚拟变量,指示过去一个小时内气压是否在增强。
HOURLYPressureTendencyDecr 虚拟变量,指示过去一个小时内气压是否在减弱。
HOURLYPressureTendencyCons 虚拟变量,指示过去一个小时内气压是否保持相对恒定。

有关天气变量的更多详细信息,参见美国当地气象资料文档

每个模型会返回不同格式的预测结果:

  • 单变量模型:对于每个输入数据点,以小时为单位返回干球温度预测值 (HOURLYDRYBULBTEMPF)
  • 多变量模型:对于每个输入数据点,以小时为单位返回所有 15 个天气变量的预测值
  • 多步模型:对于每个输入数据点,以小时为单位返回接下来 48 个小时内干球温度预测值 (HOURLYDRYBULBTEMPF)

模型元数据

领域 应用 行业 框架 训练数据 输入数据格式
天气 时间序列预测 通用 TensorFlow / Keras 肯尼迪机场天气数据,NOAA CSV

参考资料

文献资料

相关代码库

许可

组件 许可 链接
模型 GitHub 代码库 Apache 2.0 许可
模型权重 Apache 2.0 许可
测试资产 无限制 资产 README

可用于部署此模型的选项

可使用以下方法部署此模型:

  • 从 Dockerhub 部署:

    docker run -it -p 5000:5000 codait/max-weather-forecaster
    
  • 在 Red Hat OpenShift 上部署:

    遵照本教程中有关 OpenShift Web 控制台或 OpenShift Container Platform CLI 的操作说明,并将 codait/max-weather-forecaster 指定为图像名称。

  • 在 Kubernetes 上部署:

    kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Weather-Forecaster/master/max-weather-forecaster.yaml
    

    有关如何将此 MAX 模型部署到 IBM Cloud 上的生产环境中的更详细教程,可以在此处找到。

  • 本地部署:遵照 GitHub 上的模型 README 中的说明进行操作

用法示例

部署之后,您可以通过命令行测试该模型。例如,在本地运行时测试多步模型:

curl -F "file=@assets/lstm_weather_test_data/multistep_model_test_data.txt" -XPOST http://localhost:5000/model/predict?model=multistep

对于 multistep 测试数据,您应该会看到类似如下的 JSON 响应,其中 predictions 包含每个输入数据点在接下来 48 小时的预测干球温度(以华氏度为单位)。

{
  "status": "ok",
  "predictions": [
    [
      77.51201432943344,
      76.51381462812424,
      75.0168582201004,
      73.84445126354694,
      72.79087746143341,
      71.71804094314575,
      70.97693882882595,
      70.44060184061527,
      69.89843893051147,
      69.35454525053501,
      69.04163710772991,
      68.70432360470295,
      68.37075608968735,
      68.20421539247036,
      68.01852786540985,
      67.6653740555048,
      67.27566187083721,
      67.0398361980915,
      66.69407051801682,
      66.9289058893919,
      67.19844545423985,
      67.65162572264671,
      68.30480472743511,
      69.37090930342674,
      70.37226051092148,
      71.57235226035118,
      72.68855434656143,
      73.91224025189877,
      74.65138283371925,
      75.09161844849586,
      75.30447003245354,
      75.04770956933498,
      74.93723678588867,
      74.27759975194931,
      73.82458955049515,
      73.32358133792877,
      72.66812674701214,
      71.75925283133984,
      71.28871068358421,
      70.66486597061157,
      70.06835387647152,
      69.74887031316757,
      69.49707941710949,
      69.26406812667847,
      68.87126012146473,
      68.60496838390827,
      68.39429907500744,
      68.03596951067448
    ],
    ...
}

资源和贡献

如果您有兴趣为 Model Asset Exchange 项目做贡献或有任何疑问,按照此处的说明进行操作。

本文翻译自:Weather Forecaster(2020-05-26)