概述
天气预测器(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 |
- 数据来自美国当地气象资料、美国国家气候数据中心、美国国家海洋和大气管理局
参考资料
文献资料
- Keras 中的 LSTM
- 使用 RNN 预测时间序列
- S.Hochreiter 和 J. Schmidhuber,“Long Short Term Memory”,Neural Computation,1997 年
相关代码库
许可
组件 | 许可 | 链接 |
---|---|---|
模型 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
本地部署:遵照 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)