I recently published a ruby client called Gull for parsing alerts from the National Weather Service. The core feature is downloading the alerts from the NWS xml feed and parsing them into objects. These alerts contain tornado warnings as well as a slue of other advisories, watches and warnings that can be issued. Why Gull? It’s the type of bird featured on the NOAA logo, otherwise known as a seagull, which sounds better but was already taken in Ruby Gems.

If the alert contains a polygon of coordinates, Gull can provide a static map image of the alert area using Google Static Maps API but you’ll need an API key for it to work.

The image above was generated with the following code but your image will look different since the warning data changes frequently:

require 'gull'

alert = Gull::Alert.fetch.select {|alert| !alert.polygon.nil? }.first
url = alert.polygon.image_url('YOUR_API_KEY')

The inspiration for Gull came from some work I have done on TVNweather, where we provide a free warning service (just Tornado, Severe Thunderstorm, and Flash Flood). TVNweather does not use yet Gull but warnings are deeply integrated into parts of our app such as the Live Storm Chasing platform. We also provide other features like tweeting warnings with a picture over multiple accounts and additional reverse geolocation of the warning area.

Gull is published to Ruby Gems and feel free to take a look at the project on GitHub, contributions are welcome provided all tests pass and any new features are covered by tests.