每一年,全球发生的极端天气和自然灾害的数量似乎都会创下新的纪录。这些天气事件的发生频率逐年增加,对人们的影响和造成的破坏也在不断升级。

恶劣的灾难性天气不会消失。据国家气候评估结果表明,这类天气只会变得更糟。灾害流行病学研究中心的数据表明,去年,极端天气事件对 6000 多万人造成了影响。

重大洪灾

Call for Code

Call for Code 是面向全球开发者的挑战赛。举办这一比赛的目的是让开发者思考自然灾害,并通过创建减少自然灾害影响的解决方案来推动积极的变化。开发者们被召集响应呼吁,用他们的技能来帮助拯救生命。

Call for Code 提交方案可以解决很多问题,比如:

  • 改进应对天气事件的前期准备工作。
  • 在发生恶劣天气时提供救援。
  • 支持灾后重建。

去年的获胜团队 Project Owl 就开发了一个离线通信网络,可以在中断连接时,让灾民与急救人员取得联系。

The Weather Company

我们无法控制天气,但是可以更好地了解天气。我们可以利用数据和分析进行预测,减少恶劣天气对社区造成的影响。有了正确的认识,我们就可以更准确地预测极端天气和自然灾害事件,做好充分准备,并从中恢复过来!

解决涉及到天气的问题,或者更具体地说,任何考虑到天气条件的应用程序,意味着我们需要访问天气数据本身。

全球天气数据访问通道再次开放

The Weather Company 再一次向参与 Call for Code 全球挑战赛的开发者开放其 Weather Data API。开发者在构建提交方案时可以免费使用它。

The Weather Company 目前提供了超过 25 个重要的热门 API 端点。这些端点跨越多个天气数据包:

  • 核心天气数据包:包括最基本的天气 API,如当前条件、预报、雷达和卫星数据。
  • 增强版当前状况天气数据包:包括该领域分辨率最高的天气观测网络之一,基于 200,000 多个个人气象站 (PWS)。
  • 增强版天气预报数据包:利用我们领先的模型预测能力而构建,汇集了 200 名气象学家和相关科学家的专业知识,以及我们的观测网络、雷达、卫星同化和建模能力。该数据包提供了全球最准确的 500 平方米分辨率预测数据。
  • 恶劣天气数据包:包括对恶劣天气数据的预测、实时记录和跟踪估计。冰雹、闪电、强风、龙卷风等天气状况都涵盖在这个数据包中。

开发者可快速将天气数据(如恶劣天气警报、热带风暴预报、电力中断指数等)添加到他们具备挽救生命潜力的创新型解决方案中。

Weather API 入门

要访问和使用 Weather API,您必须首先注册获取 API 密钥。注册是免费的,将在 Call for Code 挑战赛开始后提供。在提交注册表单后,您的 API 密钥将通过电子邮件发送至您注册的电子邮件地址。

您可以查看 API 文档,了解每个可用端点的详细信息。此文档还可以帮助您确定哪些端点适合您的应用程序。

要使用该 API,您需要向合适的端点发出 GET 请求。请求必须包含 API 密钥和端点所需的任何参数。例如,如下所示获取北卡罗来纳州罗利市(纬度:35.843686,经度:-78.78548)短时”十五分钟预报”(使用 curl):

curl -X GET "https://api.weather.com/v1/geocode/35.843686/-78.78548/forecast/fifteenminute.json?units=m&language=en-US&apiKey=WXYZ" -H  "accept: application/json" -H  "Accept-Encoding: gzip"

其中 WXYZ 是您通过注册收到的 API 密钥。

从实践中学习

您可以在线获得带有使用 API 端点的样本应用程序的 GitHub 存储库,您可以从中获得灵感,并查看它们的运行情况。这些存储库还为创建应用程序提供了一个切入点。样本代码演示了如何查询和处理以下端点的响应:

您可以在 GitHub 上使用样本应用程序的 Node.js 和 Python 实现。您可以运行样本代码来查看如何将端点合并到应用程序中,或者检查代码来了解如何使用其他可用端点。关于如何获取和运行样本代码的说明都在这两个存储库中。

为了快速了解这一操作有多简单,以下是使用 Node.js 或 Python 在本地运行样本的基本步骤:

  1. 克隆所需的 GitHub 存储库 (Node.jsPython)。
  2. 创建 WEATHER_API_KEY 环境变量,并将其设置为您的 API 密钥。
  3. 使用 npm(对于 Node.js)或 pip(对于 Python)安装依赖项。
  4. 启动 app.js(对于 Node.js)或 app.py(对于 Python)。

下面介绍了如何使用 IBM Cloud 开发者工具将样本部署到 IBM Cloud:

  1. 克隆所需的 GitHub 存储库 (Node.jsPython)。
  2. manifest.yml 中更新 WEATHER_API_KEY 变量。
  3. 使用 ibmcloud cf push 将应用/存储库推送到 IBM Cloud。
  4. 启动 IBM Cloud 应用程序。

(还没有 IBM Cloud 帐户?在此注册,获得免费帐户。)

两个样本代码实现的 README 文档中都包含了更详细的步骤:

Node.js Weather Company API

Python Weather Company API

您和其他开发者如何创造不同

您拥有更有效的恶劣天气预警系统解决方案吗?您想要减轻自然灾害过后出现的健康问题吗? 无论您有怎样的想法,都可以加入这项活动

您有兴趣建立一个可以立即产生持久影响的解决方案吗?现在接受这个挑战还为时不晚。Call for Code 2019 的方案提交截止日期为 2019 年 7 月 29 日。

您可以创造出一片新天地!

Raj Singh 对这篇博客文章做出了贡献。

相关内容

本文翻译自:Call for Code: The Weather Company and you(2019-05-08)

加入讨论