NetCDF and GRIB are common data formats for storing large spatially-distributed meteorological and land-surface datasets. These files are highly flexible file formats, which can store large dataset with accompanying metadata. Within the NetCDF and GRIB formats, it’s common for files to follow the Climate and Forecast metadata conventions, but there are many useful datasets that don’t follow these conventions, or only partially follow these conventions. In order to provide the ability to read a large number of these datasets, HEC-MetVue is packaged with an IO Provider that is configurable for certain datasets. HEC-MetVue is packaged with support for data from agencies such as National Digital Forecast Database (NDFD), National Center for Environmental Prediction (NCEP), Weather Prediction Center (WPC), NASA, and NOAA among others.
The base component of the HEC-MetVue NetCDF and GRIB support is MultiDataFormatProvider. This provider can parse NetCDF and GRIB data, relying on the UCAR UniData NetCDF-java library. The NetCDF-java library treats GRIB as a special case where it converts GRIB format to NetCDF format in memory. With the NetCDF object in memory, HEC-MetVue will process metadata tags following CF conventions. Additionally, some non-CF conventions that have been recommended for reading are used to parse out possible information about the dataset. HEC-MetVue can read many datasets out-of-the-box, but some datasets have complications that require specific overrides. These can be performed in the SupportedDataFormatDefinitions.json file, which is held in the APPDATA/HEC/HEC-MetVue/ directory.
The SupportedDataFormatDefinitions.json file contains entries for data products that need additional information to help HEC-MetVue properly parse the data. For each data product, the variable name needs to be specified, which is either the name of the variable in the file, or the long_name field in the metadata. Below is a list of information that can be specified for a specific dataset:
- Data Type (i.e. precipitation, temperature)
- Time Interval (i.e. 1Hour, 1Day)
- Parameter Type (i.e. Total, Inst, Min, Max)
- Layer Number (for layered datasets)
- Duration override
- Duration Type override (Beginning of Period or End of Period)
- Units override
- Time Zone override
- Cell Coordinate of specified points (i.e. lower left, center, etc)