Blog

2020 Call for Code® Global Challenge

Creating and deploying open source technologies to tackle the world's greatest challenges

Each year, it seems the number and intensity of extreme weather and natural disasters increase and set a new record. The frequency of these events continue to increase year after year. And the impact they have on people and the amount of damage they cause are escalating.

Severe and devastating weather is not going away. It is only going to get worse, according to the National Climate Assessment. In 2018, extreme weather events affected over 60 million people, according to the Centre for Research on the Epidemiology of Disasters.

major flooding

Call for Code

The Call for Code Global Challenge is a challenge to the world's developers, where you can actually drive positive change by creating solutions.

The 2018 Call for Code Global Challenge focused on mitigating the effects of natural disasters. The 2019 Call for Code Global Challenge expanded on the idea of creating solutions to help communities prepare for and bounce back from natural disasters, with an added emphasis on health and vulnerable populations. Now in its third year, the Call for Code Global Challenge asks the world's developers to build solutions to help halt and reverse the impacts of climate change. The 2020 Call for Code submissions still address natural disaster resiliency, but is primarily focused on climate change. The three areas within climate change that developers can choose from are:

  • Water sustainability
  • Energy sustainability
  • Disaster resiliency

For more information on this year's climate change focus and to see some key technical resources to inspire you, visit our How is Call for Code different?

The 2018 Call for Code winner, Project Owl, developed an off-line communication network that connects disaster victims and first responders once connectivity is lost. The 2019 Call for Code winner, Prometeo, develoepd an AI-based platform to monitor and act on firefighter health and safety in real-time while battling wildfires. So unlike any challenge you've seen before, winning ideas from Call for Code will actually get deployed in the field. Grand prize winners win a cash prize of $200,00USD and open source deployment support through IBM's initiative Code and Response™ initiative.

The Weather Company

We cannot control the weather, but we can better understand it. In doing so, we can use data and analytics to get ahead of an occurrence and reduce the impact severe weather can have on our communities. We can better predict, prepare, and recover from extreme weather and natural disasters events with the right knowledge!

Solving problems where weather is involved, or more specifically any application that takes into account weather conditions, means we need access to the weather data itself.

Global weather data access is back for 2020

Once again, The Weather Company® is opening some of its Weather Data APIs to developers who are participating in the 2020 Call for Code Global Challenge. It is free of charge for developers to use as they're building their submissions.

Over 25 of The Weather Company’s critical and popular API endpoints are available. The endpoints span multiple weather data packages:

  • Core Weather Data Package: Includes the most essential weather APIs, such as current conditions, forecasts, and radar and satellite data.
  • Enhanced Current Conditions Weather Data Package: Includes one of the highest-resolution weather observation networks in the field, based on over 200,000 personal weather stations (PWSs).
  • Enhanced Forecast Weather Data Package: Built by using our leading-edge model forecasting; expertise from 200 meteorologists and related scientists; and our network of observations, radar, and satellite assimilation and modeling capabilities. The package delivers the most accurate forecasts at 500-square-meter resolution globally.
  • Severe Weather Data Package: Includes forecasted, real-time, and trailing estimates of severe weather data. Weather conditions, such as hail, lightning, severe wind, tornadoes, and more are in this package.

Developers will be able to quickly add weather data, such as severe weather alerts, tropical storm forecasts, power disruption index, and more into their innovative and potentially life-saving solutions.

Getting started with the Weather APIs

To access and use the Weather APIs, you must first register for an API Key. Registration is free and will be available while the Call for Code Challenge is taking place. After you submit your registration form, you will receive your API key at the email address that you registered with.

You can review the API documentation to see the list of available endpoints and detailed information on these endpoints. The documentation can also help you determine which endpoints are right for your application. Please note not all the available APIs are global. Some APIs have restrictions for use in certain regions or countries. Refer to the documentation for API availability and restrictions.

Using the API requires you to make a GET request to the appropriate endpoint. The request must include the API key and any parameters required by the endpoint. For example, getting the short-range “Fifteen Minute Forecast” for Raleigh, NC (latitude: 35.843686, longitude: -78.78548) would look something like this (using 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"

Where WXYZ is the API key you received from registration.

Learning by doing

GitHub repositories with sample applications that use the API endpoints are available online for you to gain inspiration from and see them in action. The repositories also provide a starting point for creating an application. The sample code demonstrates how you can query and process responses from the following endpoints:

There are Node.js and Python implementations of the sample application that are available for you to use on GitHub. You can run the sample code to see how to incorporate the endpoints into an application or examine the code to learn how you could go about consuming any of the other available endpoints. Instructions on how to obtain and run the sample codes are in both repositories.

For a quick look at how easy it is, here are the basic steps to run the samples locally with Node.js or Python:

  1. Clone the desired GitHub repository (Node.js and Python).
  2. Create the WEATHER_API_KEY environment variable and set it to your API key.
  3. Install dependencies using npm (for Node.js) or pip (for Python).
  4. Launch app.js (for Node.js) or app.py (for Python).

Here's how to deploy the samples to IBM Cloud by using the IBM Cloud Developer Tools:

  1. Clone the desired GitHub repository (Node.js and Python).
  2. Update the WEATHER_API_KEY variable in the manifest.yml.
  3. Push the application/repository to IBM Cloud using ibmcloud cf push.
  4. Start the IBM Cloud application.

The README for both sample code implementations include more detailed steps:

The Weather APIs can also be called from Node-RED flows with the node-red-contrib-twc-weather Node-RED package. This Node-RED package creates multiple nodes in the Node-RED palette for easily dragging into your flow and querying select APIs.

Try out the Severe Weather Alert Map Node-RED dashboard for an example flow using the node-red-contrib-twc-weather package.

If you need help or have questions, please join the Call for Code Slack community.

How you and other developers can make a difference

Have a solution for a more effective severe weather preparedness system? Want to mitigate health concerns in the aftermath of a natural disaster? Whatever your idea may be, join the cause.

Interested in building a solution that can have an immediate and lasting impact? Accept the challenge. The submission period for the 2020 Call for Code Global Challenge opens March 22, 2020 and runs through July 31, 2020.

You can make a difference!

Raj Singh contributed to this blog.