Geoserver NetCDF Reader

There is a desire in the METOC community to query data contained NetCDF and GRIB/GRIB2 files using OGC standard requests for use in Open Layers, World Wind, Google Earth and other GIS systems. We have set out to create a modular plugin for Geoserver, that will understand data in a variety of NetCDF standards and other Gridded Binary formats, and present it to users as a Raster Data Source in Geoserver.

The plugin supports reading from a directory of NetCDF files, or a single NetCDF file.  It allows the user to choose which parameter in the NetCDF file should be shown, and what time and elevation should be considered the “default” (these are optional arguments in WMS requests) through a custom ‘NetCDF Layer Editor’ in Geoserver.  Upon each WMS request, the plugin parses through its NetCDF files and retrieves data based on the parameters specified in the request: area, style and optionally time and elevation. The data from all of the NetCDF files is put into an intermediary format to standardize the resolution and bounding areas of the data, duplicate points are averaged together.  This design will support the future integration of GRIB/GRIB2 standards.  Currently GetCapabilities (area only), GetMap, GetFeatureInfo, an GetLegandGraphic are all supported.

Future Work Includes:

  • Supporting “ANALYSIS_TIME” requests
  • getCapabilities dimensions for: TIME, ELEVATION, and ANALYSIS_TIME
  • Dynamically calculating the best resolution to return to the user based on the requested area (for small areas a finer degree of detail is desired),
  • Supporting Gridded Binary files (GRIB and GRIB2)

Polar water temperature 1000 meters below the surface, colored so that warmer colors indicate colder water.


Surface water temperature around Australia


Water temperature around South America, running in an Ozone Widget Framework WMS client


Polar salinity measurements, running in Geoserver’s OpenLayers Preview, the value of a specific point is also shown.

Tagged with: ,
Posted in Our Projects