saeon_netcdf_guidance

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
saeon_netcdf_guidance [2022/07/11 14:05] – [NetCDF File Structure] lindsaysaeon_netcdf_guidance [2022/07/28 12:23] (current) lindsay
Line 52: Line 52:
 | lineage (RECOMMENDED)  | “The CTD raw data was converted to scientific units using SBEDataProcessing software (ver 7.26.7.114). The following modules (SBEDataProcessing) were then run on the converted data using the recommended default values: Align CTD, Filter, Loop Edit and Cell Thermal Mass. The data was then split into the up cast and the down cast. The downcast data was then bin averaged.”  | Information about how the data has been produced and processed, modified.  | | lineage (RECOMMENDED)  | “The CTD raw data was converted to scientific units using SBEDataProcessing software (ver 7.26.7.114). The following modules (SBEDataProcessing) were then run on the converted data using the recommended default values: Align CTD, Filter, Loop Edit and Cell Thermal Mass. The data was then split into the up cast and the down cast. The downcast data was then bin averaged.”  | Information about how the data has been produced and processed, modified.  |
  
-=== Dimensions  ===+=== Dimensions ===
  
 NetCDF dimensions define the shape, grid or coordinate system of a variable. A dimension has both a name and a length. A dimension length is an arbitrary positive integer, except for cases where one dimension, at most, is UNLIMITED and can grow along that dimension. Once the data feature type has been identified, the US National Oceanographic Data Center [[https://www.nodc.noaa.gov/data/formats/netcdf/v1.1/|netCDF templates]] can be used as a guide for which dimensions to define in your file. NetCDF dimensions define the shape, grid or coordinate system of a variable. A dimension has both a name and a length. A dimension length is an arbitrary positive integer, except for cases where one dimension, at most, is UNLIMITED and can grow along that dimension. Once the data feature type has been identified, the US National Oceanographic Data Center [[https://www.nodc.noaa.gov/data/formats/netcdf/v1.1/|netCDF templates]] can be used as a guide for which dimensions to define in your file.
Line 60: Line 60:
 Something to keep in mind in terms of naming dimensions and variables is the netCDF coordinate variable. This is when a variable has the exact same name as a dimension and is most commonly used for coordinates such as lat, lon, depth and/or time. This may not necessarily have special meaning to the netCDF library, however visualisation software treats this in a special way. Something to keep in mind in terms of naming dimensions and variables is the netCDF coordinate variable. This is when a variable has the exact same name as a dimension and is most commonly used for coordinates such as lat, lon, depth and/or time. This may not necessarily have special meaning to the netCDF library, however visualisation software treats this in a special way.
  
-=== Variables  ===+=== Variables ===
  
 Variables in a netCDF contain the parameters measured by an instrument. Variables in netCDF files can be one of six types (char, byte, short, int, float or double). Each variable has a data type, name and a shape which is defined by its specified dimensions. Variables in a netCDF contain the parameters measured by an instrument. Variables in netCDF files can be one of six types (char, byte, short, int, float or double). Each variable has a data type, name and a shape which is defined by its specified dimensions.
Line 69: Line 69:
  
 Note: The //long_name// attribute is defined to contain a long descriptive name of the variable which may, for example, be used for labelling plots. The //standard_name// attribute is the name used to identify the physical quantity and must be taken from the [[https://cfconventions.org/standard-names.html|CF standard name table]]. Parameters with no suitable standard_name should be described using the long_name attribute only. Note: The //long_name// attribute is defined to contain a long descriptive name of the variable which may, for example, be used for labelling plots. The //standard_name// attribute is the name used to identify the physical quantity and must be taken from the [[https://cfconventions.org/standard-names.html|CF standard name table]]. Parameters with no suitable standard_name should be described using the long_name attribute only.
 +
 +=== Variable Attributes ===
 +
 +== Time coordinates ==
 +
 +Time data in a netCDF is represented as an integer representing an interval from some reference time. Time variables must include a clear units attribute, as there is no default value. The units attribute for a time variable is a string value in the format recommended by UDUNITS. Commonly these strings include “//days//”, “//hours//”, “//minutes//” or “//seconds//” //since// a specific date, time and time zone (e.g. “seconds since 1970-01-01 00:00:00 UTC”). Use Double data type.
 +
 +__Table 2. List of time variable attributes for SAEON netCDF files__
 +
 +//All attributes are MANDATORY to include in your netCDF unless stated: CONDITIONAL= include these fields if the information exists, or RECOMMENDED = it is recommended to include these fields but not mandatory.//
 +
 +| **Attribute** | **Example** | **Description** |
 +| standard_name | “time” | A description of the variable’s content from the CF standard name table. |
 +| long_name | “time” | A descriptive name that indicates a variable’s content. |
 +| units | “seconds since 1970-01-01 00:00:00 UTC” | Use approved CF convention with approved UDUNITS obtained from CF standard name table. Please contact SAEON curation if help is required. |
 +| calendar (CONDITIONAL) | “gregorian” | Calendar used for encoding time axes. See CF documentation for clarification. Default is "gregorian". |
 +| valid_min (RECOMMENDED) | “1530779700” | Smallest valid value of a variable. Should be of the same type as the variable type. |
 +| valid_max (RECOMMENDED) | “1530791710” | Largest valid value of a variable. Should be of the same type as the variable type. |
 +| axis | “T” | Identifies the time coordinate. Set value of “T”. |
 +| comment (RECOMMENDED) | “....” | Miscellaneous information about the data, that cannot be described in any of the other available attributes. |
 +
 +== Horizontal coordinates ==
 +
 +SAEON ODP uses the WGS84 coordinate reference system in decimal degrees when describing latitude and longitude.
 +
 +__Table 3. List of longitude and latitude variable attributes for SAEON netCDF files__
 +
 +//All attributes are MANDATORY to include in your netCDF unless stated: CONDITIONAL= include these fields if the information exists, or RECOMMENDED = it is recommended to include these fields but not mandatory.//
 +
 +| **Attribute** | **Example** | **Description** |
 +| standard_name | “latitude”or“longitude” | A description of the variable’s content from the CF standard name table. |
 +| long_name | “latitude”or“longitude” | A descriptive name that indicates a variable’s content. |
 +| units | “degrees_north” (LATITUDE)or “degrees_east” (LONGITUDE) | Use approved CF convention with approved UDUNITS obtained from CF standard name table. |
 +| valid_min (RECOMMENDED) | “-34.678” (LATITUDE)or“26.012” (LONGITUDE) | Smallest valid value of a variable. Should be of the same type as the variable type. |
 +| valid_max (RECOMMENDED) | “-34.678” (LATITUDE)or“26.012” (LONGITUDE) | Largest valid value of a variable. Should be of the same type as the variable type. |
 +| axis | “Y” (LATITUDE)or “X” (LONGITUDE) | Identifies the horizontal coordinate. Set values of “X” or “Y”. |
 +| comment (RECOMMENDED) | “....” | Miscellaneous information about the data, that cannot be described in any of the other available attributes. |
 +
 +== Vertical coordinates ==
 +
 +Depth or height variables should be measured in SI units, most commonly “metres”. Pressure measurements should not be labelled as a depth or height variable, but as a separate parameter.
 +
 +__Table 4. List of depth variable attributes for SAEON netCDF files__
 +
 +//All attributes are MANDATORY to include in your netCDF unless stated: CONDITIONAL= include these fields if the information exists, or RECOMMENDED = it is recommended to include these fields but not mandatory.//
 +
 +| **Attribute** | **Example** | **Description** |
 +| standard_name | “depth” | A description of the variable’s content from the CF standard name table. |
 +| long_name | “depth” | A descriptive name that indicates a variable’s content. |
 +| units | “m” | Use approved CF convention with approved UDUNITS obtained from CF standard name table. |
 +| positive | “down” | The direction of increasing vertical coordinate values corresponding to a reference point. Either “up” or “down”. |
 +| valid_min (RECOMMENDED) | “10” | Smallest valid value of a variable. Should be of the same type as the variable type. |
 +| valid_max (RECOMMENDED) | “1256” | Largest valid value of a variable. Should be of the same type as the variable type. |
 +| axis | “Z” | Identifies the vertical coordinate. Set value of “Z”. |
 +| comment (RECOMMENDED) | “....” | Miscellaneous information about the data, that cannot be described in any of the other available attributes. |
 +
 +== Geophysical parameters ==
 +
 +These variables contain the data collected by an instrument or sensor.
 +
 +Note: For cases where a netCDF contains two sensors measuring the same variable it is important that these are easily differentiated, community best practise indicates one of the variable names is suffixed with “_2” (e.g. “Temp” and “Temp_2”). For guidance on variable naming conventions one can follow community guidance (e.g. [[https://github.com/aodn/imos-toolbox/blob/master/IMOS/imosParameters.txt|IMOS naming toolbox]]) or contact the [[curation@saeon.nrf.ac.za|SAEON Data Curators]].
 +
 +__Table 5. List of geophysical parameter variable attributes for SAEON netCDF files__
 +
 +//All attributes are MANDATORY to include in your netCDF unless stated: CONDITIONAL= include these fields if the information exists, or RECOMMENDED = it is recommended to include these fields but not mandatory.//
 +
 +| **Attribute** | **Example** | **Description** |
 +| standard_name (CONDITIONAL) | “sea_water_temperature” | A description of the variable’s content from the CF standard name table. |
 +| long_name | “Temperature” | A descriptive name that indicates a variable’s content. |
 +| units | “degree_C” | Use approved CF convention with approved UDUNITS obtained from CF standard name table. |
 +| scale_factor (CONDITIONAL) | “0.01” | If the data uses a scale_factor other than 1. Should be of the same type as the variable type. |
 +| add_offset (CONDITIONAL) | “25.0" | If the data uses an add_offset other than 0. Should be of the same type as the variable type. |
 +| _FillValue (CONDITIONAL) | “-9999” | This value is considered to be a special value that indicates undefined or missing data. Should be of the same type as the variable type. |
 +| valid_min (RECOMMENDED) | “2.565” | Smallest valid value of a variable. Should be of the same type as the variable type. |
 +| valid_max (RECOMMENDED) | “23.198” | Largest valid value of a variable. Should be of the same type as the variable type. |
 +| coordinates (RECOMMENDED) | “T Y X Z” | This attribute contains a space separated list of all the coordinates corresponding to the variable. |
 +| comment (RECOMMENDED) | “....” | Miscellaneous information about the data, that cannot be described in any of the other available attributes. |
 +
 +== Quality control flags (CONDITIONAL) ==
 +
 +If applicable to the platform, quality control flags can be self describing variables that show some sort of assessment to identify possible errors in the data.
 +
 +__Table 6. List of quality control flag variable attributes for SAEON netCDF files__
 +
 +//All attributes are MANDATORY to include in your netCDF unless stated: CONDITIONAL= include these fields if the information exists, or RECOMMENDED = it is recommended to include these fields but not mandatory.//
 +
 +| **Attribute** | **Example** | **Description** |
 +| standard_name | “....” | A description of the variable’s content from the CF standard name table. |
 +| long_name | “quality flag for sea_water_temperature” | A descriptive name that indicates a variable’s content. |
 +| _FillValue (CONDITIONAL) | “-99b” | This value is considered to be a special value that indicates undefined or missing  quality control flags in the data. |
 +| flag_values | 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b | List of flag values used in the data. |
 +| flag_meanings | "No_QC_performed Good_data Probably_good_data Bad_data_that_are_correctable Bad_data Value_changed Missing_value" | The meaning of each flag in the same order as flag_values. |
 +| comment (RECOMMENDED) | “....” | Miscellaneous information about the data, that cannot be described in any of the other available attributes. |
 +
 +=== NetCDF manipulation tools ===
 +
 +  * [[https://downloads.unidata.ucar.edu/netcdf/|NetCDF library software]]: //ncdump// can convert a netCDF binary file to CDL text.
 +  * [[https://www.giss.nasa.gov/tools/panoply/|Panoply]] and [[http://cirrus.ucsd.edu/~pierce/software/ncview/index.html|Ncview]] are great visualisation tools.
 +  * [[http://nco.sourceforge.net/|NCO]] is a command-line toolkit for manipulating netCDF files: //ncatted// and //ncrename// are specifically useful for editing metadata on the fly.
  
  
  • saeon_netcdf_guidance.1657548331.txt.gz
  • Last modified: 2022/07/11 14:05
  • by lindsay