NcML is an XML representation of netCDF metadata, NcML is similar to the netCDF CDL (network Common data form Description Language), except, of course, it uses XML syntax..
netcdf X:/example/ecmf_2011032700_rh.nc { dimensions: x = 141; y = 61; z = UNLIMITED; // (29 currently) variables: short ForecastHour(z=29); :units = "Degrees"; float Longitude(x=141); :units = "Degrees"; float Latitude(y=61); :units = "Hours"; float RelativeHumidity_q25(z=29, y=61, x=141); :units = "Percent"; float RelativeHumidity_q50(z=29, y=61, x=141); :units = "Percent"; float RelativeHumidity_q75(z=29, y=61, x=141); :units = "Percent"; :Title = "Relative Humidity Forecasts"; }
There are several issues in the above netCDF file, the unit of the variable Latitude and the the variable ForecastHour are switched, and dimension Z should be time dimension. The following NcML file will do correction of naming and unit.
<?xml version="1.0" encoding="UTF-8"?> <netcdf xmlns="https://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" location="./ecmf_2011032700_rh.nc"> <dimension name="time" orgName="z" length="29" isUnlimited="true" /> <variable name="Time" orgName="ForecastHour" shape="time" type="short"> <attribute name="units" value="hours since 2011-3-27 00:00:00 UTC" /> </variable> <variable name="Latitude" shape="y" type="float"> <attribute name="units" value="Degrees" /> </variable> </netcdf>NcMLExample.ncml
What has been modified here is the name of dimension z and variable ForecastHour. The unit of Latitude
is also corrected, and the unit of new variable Time is hours since 2011-3-27 00:00:00 UTC
which includes
the information from the original file name. The above xml syntax is save in a file with an ncml file extension
ecmf_2011032700_rh.ncml
, and we can load this ncml file into the IDV for display. This is a very simple
example, please visit NcML for complete information.
Data Source Type
in the IDV, Aggregate Grids by Time
and
Aggregate WRF netCDF Grids by Time
, both using the built-in ncml to do the aggregation on the fly.