Climate and Forecast-Compliant NetCDF Metadata Minimum Requirements
Details about the Climate and Forecast (CF) Conventions can be found on the CF Conventions and Metadata website.
Define dimensions as needed:
- time
- lat
- lon
- nbnds
All variables should have attributes:
- units = units compatible with the UDUNITS-2 format are recommended
- long_name
In addition, lat/lon variables should have attributes:
- standard_name = "latitude" or "longitude"
- units = "degrees_north" or "degrees_east"
- Values of longitude variable shall go from west (-180) to east (180). For global data, avoid longitude values going from 0 to 360.
- Values of latitude variable shall go from south (-90) to north (90)
Values of latitude and longitude variables shall represent center of each grid cell.
In addition, time variables should have attributes:
- standard_name = "time"
- units = should follow CF conventions specifying the unit of measure and start date, such as "days since 2000-01-01 00:00:00" (see Time Coordinate). The time units should represent the middle time point of each measurement.
- calendar (see Calendar)
- bounds = "time_bnds". "time_bnds" is a separate 2-dimensional variable that defines the start and end time points of each measurement. Variable "time_bnds" has the same attributes "units" and "calendar" as variable "time".
It is highly recommended to use values of time variable represented in UTC.
In addition, data variables should have attributes:
- _FillValue (denotes missing or blank data. Should be outside the valid range of the data.)
If multiple missing data values are presented, use the attribute below instead:
- valid_range = values outside of valid range will be treated as missing values
In addition, data variables are highly recommended to include the attribute below:
- cell_methods = Purpose of this attribute is to describe the characteristic of a field that is represented by cell values. For example, assume variable "pressure" is an hourly time series and it has attribute pressure:cell_methods = "time: point". This means the pressure values represent the pressure measured at certain time points every hour. But if it has attribute pressure:cell_methods = "time: mean", the pressure values represent the average pressure during each hour. See more details about cell methods.
Each file should also include the following global attributes:
- institution (can be one of NASA's Distributed Active Archive Centers [DAACs], or the PI's institution)
- references (any paper citation that the data is based on)
- title (title of the data set)
- source (some info about the source or provenance of the data set)
Any abbreviations, such as DAAC, should be spelled out in the attribute descriptions.
Example
dimensions:
time = 506 ;
lat = 360 ;
lon = 720 ;
nbnds = 2 ;
variables:
double lon(lon=720);
:units = "degrees_east";
:long_name = "Longitude";
:standard_name = "longitude";
:_ChunkSize = 720; // int
double lat(lat=360);
:units = "degrees_north";
:long_name = "Latitude";
:standard_name = "latitude";
:_ChunkSize = 360; // int
float prop_secd(time=506, lat=360, lon=720);
:_FillValue = -9999.0f; // float
:long_name = "Proportion of landcover in secondary landcover";
:missing_value = -9999.0f; // float
:units = "percent";
:cell_methods = "time:mean area:mean";
:_ChunkSize = 1, 360, 720; // int
double time(time=506);
:long_name = "Time";
:standard_name = "time";
:calendar = "proleptic_gregorian";
:units = "years since 1500-01-01 00:00:00";
:bounds = "time_bnds";
:_ChunkSize = 1; // int
double time_bnds(time=506, nbnds=2);
:long_name = "start and end points of each time step";
:calendar = "proleptic_gregorian";
:units = "years since 1500-01-01 00:00:00";
// global attributes:
:institution = "Oak Ridge National Laboratory (ORNL) Distributed Active Archive Center (DAAC)";
:references = "Hurtt, G.C., L.P. Chini, S. Frolking, R. A. Betts, J. Feddema, G. Fischer, J. P. Fisk, K. Hibbard, R. A. Houghton, A. Janetos, C. D. Jones, G. Kindermann, T. Kinoshita, Kees Klein Goldewijk, K. Riahi, E. Shevliakova, S. Smith, E. Stehfest, A. Thomson, P. Thornton, D. P. van Vuuren, Y. P. Wang (2011) Harmonization of land-use scenarios for the period 1500–2100: 600 years of global gridded annual land-use transitions, wood harvest, and resulting secondary lands. Climatic change, 109:117-161. DOI 10.1007/s10584-011-0153-2";
:title = "Land Use Harmonization version 1, including urban land (LUHa_u2.v1)";
:source = "Version 1 of Land-Use History A product, including land-use changes and transitions from/to urban land";