node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey ยป


GrADS Circle CI

Javascript-based GrADS (Grid Analysis and Display System) Data Server client. Primarily an API for accessing weather forecast/climate data for a location or area. Currently, acccesses a few GFS variables but working to include the majority of human-usable variables (do you care about surface flux or gravity wave stuff? I don't!)

Note: while this application does provide access to very detailed and useful weather/climate metrics in a very pragmatic way, please do not use it to provide on-demand weather data to end users. It makes a request to NOAA for every variable, every time you need to access it, minus a short cache of previously directed variables. Weather Underground provides a more suitable API for this purpose. This application was intended for modelling and research purposes only.

Applications & Implementation ideas:

  • (originally) trajectory prediction for weather balloons & payloads
  • Access weather conditions via forecast (weather model, not sensors) for nearly any point on planet.
  • Access wave conditions for a majority of the water on the planet (weather model, not sensors)
  • Visualize weather conditions for an entire country at once. Quite interesting seeing this on poorer countries.
  • Potientally create a forecast broadcast system for small countries with a small decoding device.

GrADS is a beast of a server to access. I've worked on this code for several years now and finally am comfortable that I'm doing it right.


Coming soon!


var grads = new Grads( lat, lon, alt(m) );

grads.fetch('temperature', function( values, config ) {
    var tempInKelvin = values[0][0][0];


This is based off some code I wrote years ago so it's pretty simple for now. Eventually, it'd be nice to have the following features:

  • Working/selectable time ranges
  • Auto-selection of most "valuable" model

In the Future

Some cool data for the intended use case (physics simulation) would be to implement the following available datasets (from -

  • Vertical Velocity


* I'm not sure if this breaks a NOAA "term of service".