OGC Web Services

The Open Geospatial Consortium, Inc (OGC) is a standards organization leading the development of geospatial and location based services. The OGC has adopted a number of specifications, some of which are used by the IEM. This page lists these services.

Some items of note:

  1. All of these services are available via https:// connections.
  2. There are four DNS aliases for the website to allow web browers to make many simultaneous requests against these services.
    1. mesonet1.agron.iastate.edu
    2. mesonet2.agron.iastate.edu
    3. mesonet3.agron.iastate.edu
    4. www.mesonet.agron.iastate.edu

Tile Map Service (TMS)

This service makes for easy integration with web mapping applications like Google Maps, OpenLayers, and ESRI JS API.

Bing Maps

The folks at Microsoft Bing Maps group have kindly created two examples using their javascript framework.

Single Tile Layer: example

Animated Tile Layer: example


Here is an example using the ESRI JS API. This was contributed by Derek Swingley.

Google Maps

The following is example code that works with version 2 of the Google Maps API:

var tileNEX = new GTileLayer(null,null,null); 
tileNEX.getTileUrl = function(tile,zoom) {
   /* Include date at the end as a cachebuster */
   return "https://mesonet.agron.iastate.edu/cache/tile.py/1.0.0/nexrad-n0q-900913/"
   + zoom + "/" + tile.x + "/" + tile.y +".png?"+ (new Date()).getTime(); 
tileNEX.isPng = function() { return true;};
tileNEX.getOpacity = function() { return 0.5; }

var layer4=[G_NORMAL_MAP.getTileLayers()[0],tileNEX]; 
var custommap4 = new GMapType(layer4, G_SATELLITE_MAP.getProjection(), "Nexrad", G_SATELLITE_MAP);

Here is an example for Google Maps v3.

OpenLayers v2

Here is an example for OpenLayers and assumes your map projection is in spherical mercator. Or check out this self contained and fully functional openlayers example.

function get_my_url (bounds) {
    var res = this.map.getResolution();
    var x = Math.round ((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
    var y = Math.round ((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
    var z = this.map.getZoom();

    var path = z + "/" + x + "/" + y + "." + this.type +"?"+ parseInt(Math.random()*9999);
    var url = this.url;
    if (url instanceof Array) {
        url = this.selectUrl(path, url);
    return url + this.service +"/"+ this.layername +"/"+ path;

var n0q = new OpenLayers.Layer.TMS(
        'NEXRAD Base Reflectivity',
        {layername      : 'nexrad-n0q-900913',
        service         : '1.0.0',
        type            : 'png',
        visibility      : true,
        getURL          : get_my_url,
        isBaseLayer     : false}
/* you'd then add n0q to your map object */

OpenLayers v3

Here is a self contained example for OpenLayers v3.

var tms = new ol.layer.Tile({
            title: 'GOES East IR Satellite',
            visible: false,
            source: new ol.source.XYZ({
                    url : '/cache/tile.py/1.0.0/goes-east-ir-4km-900913/{z}/{x}/{y}.png'

Other Tile Map Services

The nexrad-n0r-900913 is the layer name and represents the "current" composite base reflectivity. Here are other TileCache services provided by the IEM. These are all TMS for spherical mercator.

Service NameDescription
hrrr::REFD-FXXXX-0Latest HRRR Reflectivity Forecasts, FXXXX is the forecast minute more info
hrrr::REFD-FXXXX-YYYYMMDDHHMIArchived HRRR Reflectivity Forecasts, FXXXX is the forecast minute more info
ridge::XXX-XXX-0Latest individual RADAR XXX data for product XXX more info
ridge::XXX-XXX-YYYYMMDDHHMIArchived individual RADAR XXX data for product XXX more info
nexrad-n0q-900913NEXRAD Base Reflectivity current
nexrad-n0q-900913-m05m... 5 minutes old ...
nexrad-n0q-900913-m10m... 10 minutes old ...
nexrad-n0q-900913-m15m... 15 minutes old ...
nexrad-n0q-900913-m20m... 20 minutes old ...
nexrad-n0q-900913-m25m... 25 minutes old ...
nexrad-n0q-900913-m30m... 30 minutes old ...
nexrad-n0q-900913-m35m... 35 minutes old ...
nexrad-n0q-900913-m40m... 40 minutes old ...
nexrad-n0q-900913-m45m... 45 minutes old ...
nexrad-n0q-900913-m50m... 50 minutes old ...
nexrad-eet-900913NEXRAD Echo Tops EET current
nexrad-eet-900913-m05m... 5 minutes old ...
nexrad-eet-900913-m10m... 10 minutes old ...
nexrad-eet-900913-m15m... 15 minutes old ...
nexrad-eet-900913-m20m... 20 minutes old ...
nexrad-eet-900913-m25m... 25 minutes old ...
nexrad-eet-900913-m30m... 30 minutes old ...
nexrad-eet-900913-m35m... 35 minutes old ...
nexrad-eet-900913-m40m... 40 minutes old ...
nexrad-eet-900913-m45m... 45 minutes old ...
nexrad-eet-900913-m50m... 50 minutes old ...
goes-ir-4km-900913 GOES North American Infrared ~4km
goes-wv-4km-900913 GOES North American Water Vapor ~4km
goes-vis-1km-900913 GOES North American Visible ~1km
goes-east-ir-4km-900913GOES East CONUS Infrared ~4km
goes-east-wv-4km-900913GOES East CONUS Water Vapor ~4km
goes-east-vis-1km-900913GOES East CONUS Visible ~1km
goes-west-ir-4km-900913GOES West CONUS Infrared ~4km
goes-west-wv-4km-900913GOES West CONUS Water Vapor ~4km
goes-west-vis-1km-900913GOES West CONUS Visible ~1km
hawaii-vis-900913GOES WEST Hawaii Regional Visible
alaska-vis-900913GOES WEST Alaska Regional Visible
alaska-ir-900913GOES WEST Alaska Regional IR
alaska-wv-900913GOES WEST Alaska Regional Water Vapor
q2-n1p-900913 Q2 1 Hour Precipitation
q2-p24h-900913 Q2 24 Hour Precipitation
q2-p48h-900913 Q2 48 Hour Precipitation
q2-p72h-900913 Q2 72 Hour Precipitation
q2-hsr-900913MRMS Hybrid-Scan Reflectivity Composite.

Web Map Service (WMS)

A WMS defines a protocol for web based retrieval of geodata in raster map format. If you are interested in the capabilities XML file, simply add "VERSION=1.1.1&REQUEST=GetCapabilities&SERVICE=WMS&" to the URI string.

  • Iowa Precipitation
  • MRMS Q3 Precipitation (Missing data is grey)
    Layer: mrms_p72h 72 Hour Precipitation
    Layer: mrms_p48h 48 Hour Precipitation
    Layer: mrms_p24h 24 Hour Precipitation
    Layer: mrms_p1h One Hour Precipitation
  • MRMS Q3 Precipitation (Missing data is transparent)
    Layer: mrms_p72h 72 Hour Precipitation
    Layer: mrms_p48h 48 Hour Precipitation
    Layer: mrms_p24h 24 Hour Precipitation
    Layer: mrms_p1h One Hour Precipitation
  • CONUS GOES Infrared Satellite

  • CONUS GOES Visible Satellite
  • GOES East 3.9 um (channel 2) imagery
  • GOES West 3.9 um (channel 2) imagery
  • GOES East 13.3 um (channel 6) imagery
  • GOES West 13.3 um (channel 6) imagery
  • GOES East infrared imagery
  • GOES West infrared imagery
  • GOES East visible imagery
  • GOES West visible imagery
  • GOES West Alaska Regional imagery visible
  • GOES West Alaska Regional imagery infrared
  • GOES West Alaska Regional imagery water vapor
  • GOES West Hawaii Regional imagery visible
  • GOES West Hawaii Regional imagery infrared
  • GOES West Hawaii Regional imagery water vapor

  • CONUS NEXRAD Base Reflectivity (n0q)
  • Historical CONUS NEXRAD Base Reflectivity [WMS-T] (n0q)
  • Historical CONUS NEXRAD Base Reflectivity [WMS-T] (n0r)
  • CONUS NEXRAD 8-bit Net Echo Tops (eet)
  • CONUS NEXRAD 1 Hour Precipitation (n1p)
  • CONUS NEXRAD Net Echo Tops (net)
  • CONUS NEXRAD Storm Total Precipitation (ntp)
  • RIDGE Single NEXRAD Imagery
    You also need to provide two CGI variables for the NEXRAD identifier and level III product you want. For example, sector=DMX&prod=N0Q

    Layer: single Most recent image for the given RADAR identifier and Level III product. A simple JSON metadata file exists for each RADAR and Level III product combination, for example DMX N0Q.

    Layer: single-archive This allows request of a specific volume scan time from IEM's archive of imagery. You need to specify the prod and sector like with the "single" layer, but also need to include a year, month, day and time. All of these values are in UTC. Here's an example request that gets NEXRAD RTX N0Q product for 27 Jan 2015 at 23:03 UTC. You must know the volume scan times prior to making the request. There are JSON services that can help you out. Unfortunately, this service does not support WMS-T due to complications with how I serve this information out, sorry.

  • NWS Current Warnings
  • Iowa Rainfall Estimates
  • Iowa Winter Road Conditions
    Layer: roadcond-noninterstate Non Interstate Road Conditions
    Layer: roadcond-interstate Interstate Road Conditions

Web Feature Service (WFS)

A WFS is a service that provides geodata as simple features in Geography Markup Language (GML).

  • National Weather Service Warnings Current
  • National Weather Service Warnings Archive For UTC Date (since 11 Jul 2002)
  • National Weather Service Warnings Archive At Given UTC Time(since 11 Jul 2002)