National Digital Forecast Database (NDFD) API Client for Ruby


Build Status Code Climate Dependency Status Coverage Status Bitdeli Badge

Summary

This library provides API client access to NOAA's NDFD database for access to weather forecast information via Ruby.

NDFD Features

You can see the available forecast information that is accessible via the API on the NDFD technical description page.

In general, you can get the following:

  • Specific forecast dimensions (min/max temperature, wind speed, etc.) out to 168 hours.
  • Climate outlook probabilities (estimated averages/totals of temperature and precipitation)
  • Convective Outlook Hazard Probabilities (hazard outlook, tornadoes, etc.)
  • Probabilistic Tropical Cyclone Surface Wind Speed (measured in knots)

Client Features

The client offers a easy to use query interface and will hand back data to you in hashes, arrays and XML documents.

Other features:

  • Validates requests and data types on execution of requests (will raise contextual errors on poorly formed data in queries)

Runtime Dependencies

Ruby versions supported:

  • 2.1.x
  • 2.0.x
  • 1.9.3

Ruby versions not supported (but will be):

  • JRuby 1.7+
  • Rubinius 2.2+

Ruby versions that will not be supported:

  • <= 1.9.2 (including REE)

Libraries used:

  • savon (for SOAP support)
  • active_support (for TimeWithZone support)
  • nokogiri (for XML/XSLT parsing)
  • http_logger (for controlling logging output from savon)

Installation

gem install ndfd-forecast-weather-client

Usage

NDFD.client is the top-level start point from whence all API calls are executed.

Most calls follow the form of:

NDFD.client.
      select(:maxt, :mint, :temp, etc.).
      where(conditions).
      execute

This will return an Array, Hash or Nokogiri::XML::Document containing the data from the response depending on the type of the request.

NOTE: Dates and times passed to the where must be ActiveSupport::TimeWithZone objects.

NOTE: NDFDgen and NDFDgenByDay are not implemented in favor of using the equivalent collection-based functions.

Query Method API server function Description
select NDFDgenLatLonList Returns a Hash of forecast metrics for multiple latitudes/longitudes.
select_gml GmlLatLonList Returns a Nokogiri::XML::Document of forecast metrics in GML format for multiple latitudes/longitudes.
select_gml_on_time_series GmlTimeSeries Returns a Nokogiri::XML::Document of forecast metrics in GML format for multiple latitudes/longitudes over a specific time period.
select_by_days NDFDgenByDayLatLonList Returns a Hash of forecast metrics for multiple latitudes/longitudes in a 24/12 hour period for a number of days.
select_coordinates_by_zip LatLonListZipCode Returns a Hash of latitudes/longitudes for every zip code requested.
select_coordinates_by_cities LatLonListCityNames Returns a Hash of latitudes/longitudes for a pre-defined set of cities.
select_square_coordinates LatLonListSquare Returns a Array of latitudes/longitudes for the requested rectangular area.
select_gridpoint_coordinates LatLonListSubgrid Returns a Array of latitudes/longitudes for the requested subgrid.
select_linepoint_coordinates LatLonListLine Returns a Array of latitudes/longitudes between a start and end coordinate.
select_corner_coordinates CornerPoints Returns a Array of latitudes/longitudes of the corners of one of the NDFD grids.

To see a description of the NDFD Spatial Reference System (used for collecting lat/longs in an area) http://graphical.weather.gov/docs/ndfdSRS.htm

Special Thanks