The Gulf of Maine Model Interoperability Experiment: a success story made possible by NetCDF, CF, NcML, NetCDF-Java, THREDDS, OPeNDAP

Rich Signell (U.S Geological Survey, Woods Hole Science Center, Woods Hole, MA, USA)

The Gulf of Maine Ocean Data Partnership Modeling Committee has been developing a Model Interoperability Experiment in the Gulf of Maine built around the CF standard. The goal was to allow scientists using Matlab to issue a single identical command to retrieve geospatially located data, regardless of what type of model they are accessing. Our starting point was output from four ocean circulation models (ROMS, POM, ECOM, FVCOM), a meteorological model (WRF) and an ocean-wave model (WaveWatch 3) with six different grid conventions produced at six different institutions around the Gulf of Maine. All groups produced NetCDF files, used Matlab for visualization and analysis, and had a standard HTTP 1.1 web server. However, only one group used CF-conventions and as a result each group had their own set of analysis and visualization routines to perform nearly identical tasks.

The goal is to achieve interoperability with a minimum of effort on the part of the data providers and data users. To provide data for the interoperability experiment, participants need only place their existing NetCDF files on their own web sites. A layer of XML (NcML) is used to achieve CF standardization without altering the existing NetCDF files, and to provide virtual aggregation of data. This functionality is made possible by the NetCDF-Java library, which understands NcML and has the ability to access a byte range of a remote file on a web site. The final component of the distributed system is the THREDDS Data Server, which uses NcML and NetCDF-Java behind the scenes, but allows for central cataloging of the datasets and access via the OpenDAP service. For uniformly spaced grids, the datasets are available via THREDDS using the OGC Web Coverage Service (WCS).

The CF-standard data is accessed with the CF Toolkit for Matlab, a toolbox we are actively developing using NetCDF-Java. The advantage of these tools is that they work on any system without compiling, and they work for any structured grid model that can be described by the CF standard, eliminating the need for custom toolkits for individual models. We need to work to develop CF conventions that specify staggered grids, masked regions, velocity components and unstructured grid data so that toolboxes like this one can address an even broader range of user needs.