Attribute Convention for Data Discovery 1-1
Version and Status
This version is designated as Version 1.1. As of January 1 2015 it is no longer the current version; see Attribute Convention for Data Discovery for the current version.
See the category page for information on the history of this convention.
Development
Any development version of the ACDD definitions is maintained at Attribute_Convention_for_Data_Discovery_(ACDD)_Working.
The netCDF Group at Unidata has recommended netCDF attributes for data discovery. Many of these attributes correspond to general discovery metadata content, so they are available in many metadata standards. This page includes the Unidata crosswalk to THREDDS and adds the crosswalk to ISO 19115-2. Note that the attribute names link to the Unidata definitions. Many of these elements are included in the ISO 19115 Core specification. They are indicated in this Table by an M, O, or C in parentheses. An “M” indicates that the element is mandatory. An “O” indicates that the element is optional. A “C” indicates that the element is mandatory under certain conditions.
A Conformance Test is available for this convention.
Metadata Link
The netCDF metadata model is focused on providing "use metadata" for the data included in the file (or granule). Other metadata dialects (i.e. ISO 19115) can provide information about collections and more details about the dataset. In order to make users aware of that additional metadata we recommend adding a global attribute named "Metadata_Link" to the netCDF file. The value of this attribute is a URL that gives the location of the more complete metadata. This element is not included in the current version of the NetCDF Attribute Convention for Dataset Discovery.
Highly Recommended
Attribute | Description | THREDDS | ISO 19115-2 | OGC CSW | Rubric Category |
---|---|---|---|---|---|
title |
A short description of the dataset. |
dataset@name |
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString (M) |
Title | Text Search |
summary |
A paragraph describing the dataset. |
metadata/documentation[@type="summary"] |
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract/gco:CharacterString (M) |
Abstract | Text Search |
keywords |
A comma separated list of key words and phrases. |
metadata/keyword |
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString |
Subject | Text Search |
Recommended
Attribute | Description | THREDDS | ISO 19115-2 | OGC CSW | Rubric Category |
---|---|---|---|---|---|
id |
The
combination of the "naming authority" and the "id" should be a globally unique identifier for the dataset. |
dataset@id |
/gmi:MI_Metadata/gmd:fileIdentifier/gco:CharacterString (O) |
Identifier | Identifier |
naming_authority |
|||||
keywords_vocabulary |
If you are following a guideline for the words/phrases in your "keywords" attribute, put the name of that guideline here. |
metadata/keyword@vocabulary | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:thesaurusName/gmd:CI_Citation/gmd:title/gco:CharacterString |
Text Search | |
cdm_data_type |
The THREDDS data type appropriate for this dataset. | metadata/dataType | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialRepresentationType/gmd:MD_SpatialRepresentationTypeCode May need some extensions to this codelist. Current values: vector, grid, textTable, tin, stereoModel, video. |
Other | |
history |
Provides an audit trail for modifications to the original data. | metadata/documentation[@type="history"] | /gmi:MI_Metadata/gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:statement/gco:CharacterString (O) | Text Search | |
comment |
Miscellaneous information about the data. | metadata/documentation |
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:supplementalInformation |
Text Search | |
date_created | The date on which the data was created. |
metadata/date[@type="created"] | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date (M) /gmd:dateType/gmd:CI_DateTypeCode="creation" |
Responsible Party | |
creator_name |
The data creator's name, URL, and email. The "institution" attribute will be used if the "creator_name" attribute does not exist. |
metadata/creator/name |
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString CI_RoleCode="originator" (O) |
Responsible Party | |
creator_url |
metadata/creator/contact@url |
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource/gmd:CI_OnlineResource/gmd:linkage/gmd:URL |
Responsible Party | ||
creator_email |
metadata/creator/contact@email | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress/gco:CharacterString | Responsible Party | ||
institution |
metadata/creator/name | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString | Responsible Party | ||
project |
The scientific project that produced the data. |
metadata/project |
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString and/or /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:aggregationInfo/gmd:MD_AggregateInformation/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:title/gco:CharacterString DS_AssociationTypeCode="largerWorkCitation" and DS_InitiativeTypeCode="project" and/or /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString with gmd:MD_KeywordTypeCode="project" |
Responsible Party | |
processing_level | A textual description of the processing (or quality control) level of the data. |
metadata/documentation[@type="processing_level"] | |||
acknowledgement | A place to acknowledge various type of support for the project that produced this data. |
metadata/documentation[@type="funding"] | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:credit/gco:CharacterString | Responsible Party | |
geospatial_bounds | Describes geospatial extent using any of the geometric objects (2D or 3D) supported by the Well-Known Text (WKT) format. | BoundingPolygon | Extent | ||
geospatial_lat_min |
Describes a simple latitude/longitude bounding box. geospatial_lat_min specifies the southernmost latitude; geospatial_lat_max specifies the northernmost latitude; geospatial_lon_min specifies the westernmost longitude; geospatial_lon_max specifies the easternmost longitude of the bounding box. The values of geospatial_lon_min and geospatial_lon_max reflect the actual longitude data values. Cases where geospatial_lon_min is greater than geospatial_lon_max indicate the bounding box extends from geospatial_lon_max, through the longitude range discontinuity meridian (either the antimeridian or Prime Meridian), to geospatial_lon_min. For a more detailed geospatial coverage, see the suggested geospatial attributes. |
metadata/geospatialCoverage/northsouth/start |
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:southBoundLatitude/gco:Decimal |
BoundingBox | Extent |
geospatial_lat_max | metadata/geospatialCoverage/northsouth/size | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:northBoundLatitude/gco:Decimal |
BoundingBox | Extent | |
geospatial_lon_min | metadata/geospatialCoverage/eastwest/start | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude/gco:Decimal |
BoundingBox | Extent | |
geospatial_lon_max | metadata/geospatialCoverage/eastwest/size | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:eastBoundLongitude/gco:Decimal |
BoundingBox | Extent | |
geospatial_vertical_min |
Describes a simple vertical bounding box. For a more detailed geospatial coverage, see the suggested geospatial attributes. | metadata/geospatialCoverage/updown/start | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:verticalElement/gmd:EX_VerticalExtent/gmd:minimumValue/gco:Real | Extent | |
geospatial_vertical_max | metadata/geospatialCoverage/updown/size | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:verticalElement/gmd:EX_VerticalExtent/gmd:maximumValue/gco:Real | Extent | ||
time_coverage_start | Describes the temporal coverage of the data as a time range. | metadata/timeCoverage/start | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition | Extent | |
time_coverage_end | metadata/timeCoverage/end | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:endPosition | Extent | ||
time_coverage_duration | metadata/timeCoverage/duration | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition provides an ISO8601 compliant description of the time period covered by the dataset. This standard supports descriptions of durations. | Extent | ||
time_coverage_resolution | metadata/timeCoverage/resolution | Extent | |||
standard_name_vocabulary |
The name of the controlled vocabulary from which variable standard names are taken. |
metadata/variables@vocabulary | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:thesaurusName/gmd:CI_Citation/gmd:title/gco:CharacterString |
Text Search | |
license | Describe the restrictions to data access and distribution. | metadata/documentation[@type="rights"] | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:useLimitation/gco:CharacterString |
Suggested
Attribute | Description | THREDDS | ISO 19115-2 | OGC CSW | Rubric Category |
---|---|---|---|---|---|
contributor_name |
The name and role of any individuals or institutions that contributed to the creation of this data. |
metadata/contributor |
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString |
Responsible Party | |
contributor_role |
metadata/contributor@role | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode ="principalInvestigator" | "author" |
Responsible Party | ||
publisher_name |
The data publisher's name, URL, and email. The publisher may be an individual or an institution. | metadata/publisher/name |
/gmi:MI_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor/gmd:MD_Distributor/gmd:distributorContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString and/or /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString CI_RoleCode="publisher" and/or /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString with gmd:MD_KeywordTypeCode="dataCenter" |
Responsible Party | |
publisher_url |
metadata/publisher/contact@url |
/gmi:MI_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor/gmd:MD_Distributor/gmd:distributorContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource/gmd:CI_OnlineResource/gmd:linkage/gmd:URL and/or /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource/gmd:CI_OnlineResource/gmd:linkage/gmd:URL CI_RoleCode="publisher" |
Responsible Party | ||
publisher_email |
metadata/publisher/contact@email | /gmi:MI_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor/gmd:MD_Distributor/gmd:distributorContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress/gco:CharacterString and/or /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress/gco:CharacterString CI_RoleCode="publisher" |
Responsible Party | ||
date_modified |
The date on which this data was last modified. |
metadata/date[@type="modified"] | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date /gmd:dateType/gmd:CI_DateTypeCode="revision" |
Modified | Responsible Party |
date_issued |
The date on which this data was formally issued. |
metadata/date[@type="issued"] | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date /gmd:dateType/gmd:CI_DateTypeCode="publication" |
Responsible Party | |
geospatial_lat_units |
Further refinement of the geospatial bounding box can be provided by using these units and resolution attributes. |
metadata/geospatialCoverage/northsouth/units | /gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure/@uom | Extent | |
geospatial_lat_resolution | metadata/geospatialCoverage/northsouth/resolution | /gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure | Extent | ||
geospatial_lon_units |
metadata/geospatialCoverage/eastwest/units | /gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure/@uom | Extent | ||
geospatial_lon_resolution | metadata/geospatialCoverage/eastwest/resolution | /gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure | Extent | ||
geospatial_vertical_units |
metadata/geospatialCoverage/updown/units | /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:verticalElement/gmd:EX_VerticalExtent/gmd:verticalCRS | Extent | ||
geospatial_vertical_resolution |
metadata/geospatialCoverage/updown/resolution |
Extent | |||
geospatial_vertical_positive |
metadata/geospatialCoverage@zpositive |
Extent |
Highly Recommended Variable Attributes
Attribute | Description | THREDDS | ISO 19115-2 |
---|---|---|---|
long_name | A long descriptive name for the variable (not necessarily from a controlled vocabulary). | metadata/variables/variable@vocabulary_name | At present the ISO 19115-2 Standard supports only one name for a variable. Standard names can be provided as keywords with the appropriate thesaurus. |
standard_name |
A long descriptive name for the variable taken from a controlled vocabulary of variable names. | metadata/variables/variable@vocabulary_name | |
units | The units of the variables data values. This attributes value should be a valid udunits string. | metadata/variables/variable@units | /gmi:MI_Metadata/gmd:contentInfo/gmi:MI_CoverageDescription/gmd:dimension/gmd:MD_Band/gmd:units |
coverage_content_type | An ISO 19115-1 code to indicate the source of the data. | The valid values in the MD_CoverageContentTypeCode list are image, thematicClassification, physicalMeasurement, auxiliaryInformation, qualityInformation, referenceInformation, modelResult, coordinate |
Conformance Test
A Conformance Test is available for this convention.
Examples
Attribute Names
This sample includes the attribute names as the values. It can be used to test transforms.
<?xml version='1.0' encoding='UTF-8'?> <netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2"> <!-- Identifier / Metadata Reference --> <attribute name="id" value="UnidataDataDiscoveryAttributes"/> <attribute name="naming_authority" value="naming_authority"/> <attribute name="Metadata_Conventions" value="Unidata Dataset Discovery v1.0"/> <attribute name="Metadata_Link" value="URL for full metadata record"/> <!-- Service Endpoints --> <attribute name="thredds_netcdfsubset_service" value="thredds_netcdfsubset_service" /> <attribute name="thredds_opendap_service" value="thredds_opendap_service" /> <attribute name="thredds_wms_service" value="thredds_wms_service"/> <attribute name="thredds_wcs_service" value="thredds_wcs_service"/> <!-- Text Search --> <attribute name="title" value="title"/> <attribute name="summary" value="summary"/> <attribute name="keywords" value="keywords"/> <attribute name="keywords_vocabulary" value="keyword_vocabulary"/> <attribute name="standard_name_vocabulary" value="standard_name_vocabulary"/> <attribute name="history" value="history"/> <attribute name="comment" value="comment"/> <!-- Extent Search --> <attribute name="geospatial_lat_min" value="-89.999 " type="float"/> <attribute name="geospatial_lat_max" value="89.999 " type="float"/> <attribute name="geospatial_lon_min" value="-99.999 " type="float"/> <attribute name="geospatial_lon_max" value="99.999 " type="float"/> <attribute name="geospatial_vertical_min" value="-99.99 " type="float"/> <attribute name="geospatial_vertical_max" value="99.99 " type="float"/> <attribute name="time_coverage_start" value="1888-08-08T08:08:08Z"/> <attribute name="time_coverage_end" value="1777-07-07T07:07:07Z"/> <!-- Other Extent Information --> <attribute name="geospatial_lat_units" value="geospatial_lat_units"/> <attribute name="geospatial_lat_resolution" value="8.888" type="float"/> <attribute name="geospatial_lon_units" value="geospatial_lon_units"/> <attribute name="geospatial_lon_resolution" value="9.999" type="float"/> <attribute name="geospatial_vertical_units" value="geospatial_vertical_units"/> <attribute name="geospatial_vertical_resolution" value="999.0" type="float"/> <attribute name="geospatial_vertical_positive" value="geospatial_vertical_positive"/> <attribute name="time_coverage_duration" value="P2Y2M2D"/> <attribute name="time_coverage_resolution" value="P1Y1M1D"/> <!-- Creator Search --> <attribute name="acknowledgment" value="acknowledgment"/> <attribute name="creator_email" value="creator_email"/> <attribute name="creator_name" value="creator_name"/> <attribute name="creator_url" value="creator_url"/> <attribute name="date_created" value="1666-06-06T06:06:06Z"/> <attribute name="date_modified" value="1999-09-09T09:09:09Z"/> <attribute name="date_issued" value="2111-01-01T01:01:01Z"/> <attribute name="institution" value="institution"/> <attribute name="project" value="project"/> <!-- Contributor Search --> <attribute name="contributor_name" value="contributor_name"/> <attribute name="contributor_role" value="contributor_role"/> <!-- Publisher Search --> <attribute name="publisher_name" value="publisher_name"/> <attribute name="publisher_url" value="publisher_url"/> <attribute name="publisher_email" value="publisher_email"/> <!-- Other Attributes --> <attribute name="processing_level" value="processing_level"/> <attribute name="license" value="license"/> <attribute name="cdm_data_type" value="cdm_data_type"/> <variable name="tv" type="float" shape="depdp"> <attribute name="units" value="units"/> <attribute name="name" value="testVariable"/> <attribute name="long_name" value="Test Variable - long name"/> <attribute name="standard_name" value="test_variable_standard_name"/> </variable> </netcdf>
XPaths
Sometimes an example with XPaths is useful. Note that this example includes service endpoints in the Service Endpoints section that are added by the ncISO capability in the THREDDS Data Server. These are not typically included in the netCDF file:
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2"> <!-- Identifier / Metadata Reference --> <attribute name="id" value="netcdf/attribute/@name=id"/> <attribute name="naming_authority" value="netcdf/attribute/@name=naming_authority"/> <attribute name="Metadata_Conventions" value="netcdf/attribute/@name=Metadata_Conventions"/> <attribute name="Metadata_Link" value="netcdf/attribute/@name=Metadata_Link"/> <!-- Service Endpoints --> <attribute name="thredds_netcdfsubset_service" value="netcdf/attribute/@name=thredds_netcdfsubset_service" /> <attribute name="thredds_opendap_service" value="netcdf/attribute/@name=thredds_opendap_service" /> <attribute name="thredds_wms_service" value="netcdf/attribute/@name=thredds_wms_service"/> <attribute name="thredds_wcs_service" value="netcdf/attribute/@name=thredds_wcs_service"/> <!-- Text Search --> <attribute name="title" value="netcdf/attribute/@name=title"/> <attribute name="summary" value="netcdf/attribute/@name=summary"/> <attribute name="keywords" value="netcdf/attribute/@name=keywords"/> <attribute name="keywords_vocabulary" value="netcdf/attribute/@name=keyword_vocabulary"/> <attribute name="standard_name_vocabulary" value="netcdf/attribute/@name=standard_name_vocabulary"/> <attribute name="history" value="netcdf/attribute/@name=history"/> <attribute name="comment" value="netcdf/attribute/@name=comment"/> <!-- Extent Search --> <attribute name="geospatial_lat_min" value="netcdf/attribute/@name=geospatial_lat_min" type="float"/> <attribute name="geospatial_lat_max" value="netcdf/attribute/@name=geospatial_lat_max" type="float"/> <attribute name="geospatial_lon_min" value="netcdf/attribute/@name=geospatial_lon_min" type="float"/> <attribute name="geospatial_lon_max" value="netcdf/attribute/@name=geospatial_lon_max " type="float"/> <attribute name="geospatial_vertical_min" value="netcdf/attribute/@name=geospatial_vertical_min" type="float"/> <attribute name="geospatial_vertical_max" value="netcdf/attribute/@name=geospatial_vertical_min" type="float"/> <attribute name="time_coverage_start" value="netcdf/attribute/@name=time_coverage_start"/> <attribute name="time_coverage_end" value="netcdf/attribute/@name=time_coverage_end"/> <!-- Other Extent Information --> <attribute name="geospatial_lat_units" value="netcdf/attribute/@name=geospatial_lat_units"/> <attribute name="geospatial_lat_resolution" value="netcdf/attribute/@name=geospatial_lat_resolution" type="float"/> <attribute name="geospatial_lon_units" value="netcdf/attribute/@name=geospatial_lon_units"/> <attribute name="geospatial_lon_resolution" value="netcdf/attribute/@name=geospatial_lon_resolution" type="float"/> <attribute name="geospatial_vertical_units" value="netcdf/attribute/@name=geospatial_vertical_units"/> <attribute name="geospatial_vertical_resolution" value="netcdf/attribute/@name=geospatial_vertical_resolution" type="float"/> <attribute name="geospatial_vertical_positive" value="netcdf/attribute/@name=geospatial_vertical_positive"/> <attribute name="time_coverage_duration" value="netcdf/attribute/@name=time_coverage_duration"/> <attribute name="time_coverage_resolution" value="netcdf/attribute/@name=time_coverage_resolution"/> <!-- Creator Search --> <attribute name="acknowledgment" value="netcdf/attribute/@name=acknowledgment"/> <attribute name="creator_email" value="netcdf/attribute/@name=creator_email"/> <attribute name="creator_name" value="netcdf/attribute/@name=creator_name"/> <attribute name="creator_url" value="netcdf/attribute/@name=creator_url"/> <attribute name="date_created" value="netcdf/attribute/@name=date_created"/> <attribute name="date_modified" value="netcdf/attribute/@name=date_modified"/> <attribute name="date_issued" value="netcdf/attribute/@name=date_issued"/> <attribute name="institution" value="netcdf/attribute/@name=institution"/> <attribute name="project" value="netcdf/attribute/@name=project"/> <!-- Contributor Search --> <attribute name="contributor_name" value="netcdf/attribute/@name=contributor_name"/> <attribute name="contributor_role" value="netcdf/attribute/@name=contributor_role"/> <!-- Publisher Search --> <attribute name="publisher_name" value="netcdf/attribute/@name=publisher_name"/> <attribute name="publisher_url" value="netcdf/attribute/@name=publisher_url"/> <attribute name="publisher_email" value="netcdf/attribute/@name=publisher_email"/> <!-- Other Attributes --> <attribute name="processing_level" value="netcdf/attribute/@name=processing_level"/> <attribute name="license" value="netcdf/attribute/@name=license"/> <attribute name="cdm_data_type" value="netcdf/attribute/@name=cdm_data_type"/> <variable name="netcdf/variable/@name" type="netcdf/variable/@type" shape="netcdf/variable/@shape"> <attribute name="units" value="netcdf/variable/attribute/@name=units"/> <attribute name="long_name" value="netcdf/variable/attribute/@name=long_name"/> <attribute name="standard_name" value="netcdf/variable/attribute/@name=standard_name"/> </variable> <variable name="netcdf/variable2/@name" type="netcdf/variable2/@type" shape="netcdf/variable2/@shape"> <attribute name="units" value="netcdf/variable2/attribute/@name=units"/> <attribute name="long_name" value="netcdf/variable2/attribute/@name=long_name"/> <attribute name="standard_name" value="netcdf/variable2/attribute/@name=standard_name"/> </variable> </netcdf>
Real-World Example
This NcML, taken from a very well documented CoastWatch file, includes real-world examples for all of the recommended attributes:
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2"> <!-- Identifier / Metadata Reference --> <attribute name="id" value="LMHchlaS8day_20100129000000"/> <attribute name="naming_authority" value="gov.noaa.pfel.coastwatch"/> <attribute name="Metadata_Conventions" value="Unidata Dataset Discovery v1.0"/> <attribute name="Metadata_Link" value="URL for full metadata record"/> <!-- Text Search --> <attribute name="title" value="Chlorophyll-a, Aqua MODIS, NPP, 0.05 degrees, Global, Science Quality"/> <attribute name="summary" value="NOAA CoastWatch distributes chlorophyll-a concentration data from NASA's Aqua Spacecraft. Measurements are gathered by the Moderate Resolution Imaging Spectroradiometer (MODIS) carried aboard the spacecraft. This is Science Quality data."/> <attribute name="keywords" value="EARTH SCIENCE > Oceans > Ocean Chemistry > Chlorophyll"/> <attribute name="keywords_vocabulary" value="GCMD Science Keywords"/> <attribute name="standard_name_vocabulary" value="CF-1.0"/> <attribute name="history" value="NASA GSFC (G. Feldman): 2010-02-22T22:48:46Z NOAA CoastWatch (West Coast Node) and NOAA SFSC ERD"/> <attribute name="comment" value="Text comment"/> <!-- Extent Search --> <attribute name="geospatial_lat_min" value="-90.0 " type="double"/> <attribute name="geospatial_lat_max" value="90.0 " type="double"/> <attribute name="geospatial_lon_min" value="0.0 " type="double"/> <attribute name="geospatial_lon_max" value="360.0 " type="double"/> <attribute name="geospatial_vertical_min" value="0.0 " type="double"/> <attribute name="geospatial_vertical_max" value="0.0 " type="double"/> <attribute name="geospatial_vertical_positive" value="up"/> <attribute name="time_coverage_end" value="2010-02-02T00:00:00Z"/> <attribute name="time_coverage_start" value="2010-01-25T00:00:00Z"/> <!-- Other Extent Information --> <attribute name="geospatial_lat_units" value="degrees_north"/> <attribute name="geospatial_lat_resolution" value="0.041676313961565174" type="double"/> <attribute name="geospatial_lon_units" value="degrees_east"/> <attribute name="geospatial_lon_resolution" value="0.04167148975575877" type="double"/> <attribute name="geospatial_vertical_units" value="m"/> <attribute name="geospatial_vertical_resolution" value="1.0" type="double"/> <attribute name="time_coverage_duration" value="P1D"/> <attribute name="time_coverage_resolution" value="PT1M"/> <!-- Creator Search --> <attribute name="acknowledgment" value="NOAA NESDIS COASTWATCH, NOAA SWFSC ERD"/> <attribute name="creator_email" value="dave.foley@noaa.gov"/> <attribute name="creator_name" value="NOAA CoastWatch, West Coast Node"/> <attribute name="creator_url" value="http://coastwatch.pfel.noaa.gov"/> <attribute name="date_created" value="2010-02-22Z"/> <attribute name="date_modified" value="2010-03-22Z"/> <attribute name="date_issued" value="2010-02-22Z"/> <attribute name="institution" value="NOAA CoastWatch, West Coast Node"/> <attribute name="project" value="CoastWatch (http://coastwatch.noaa.gov/)"/> <!-- Contributor Search --> <attribute name="contributor_name" value="NASA GSFC (G. Feldman)"/> <attribute name="contributor_role" value="Source of level 2 data."/> <!-- Publisher Search --> <attribute name="publisher_email" value="dave.foley@noaa.gov"/> <attribute name="publisher_name" value="NOAA CoastWatch, West Coast Node"/> <attribute name="publisher_url" value="http://coastwatch.pfel.noaa.gov"/> <!-- Other Attributes --> <attribute name="processing_level" value="3"/> <attribute name="license" value="The data may be used and redistributed for free but is not intended for legal use, since it may contain inaccuracies. Neither the data Contributor, CoastWatch, NOAA, nor the United States Government, nor any of their employees or contractors, makes any warranty, express or implied, including warranties of merchantability and fitness for a particular purpose, or assumes any legal liability for the accuracy, completeness, or usefulness, of this information."/> <attribute name="cdm_data_type" value="Grid"/> </netcdf>
NetCDF Climate and Forecast (CF) Metadata Conventions
The NetCDF Climate and Forecast (CF) Metadata Conventions are designed to promote the interoperable processing and sharing of data from netCDF files. They are focused on data use while the NetCDF Attribute Conventions are focused on data discovery. Many of the discovery attributes that are related to extents can be calculated from the CF information:
geospatial_lat_min, geospatial_lat_max, geospatial_lat_units, geospatial_lat_res
geospatial_lon_min, geospatial_lon_max, geospatial_lon_units, geospatial_lon_res
geospatial_vertical_min, geospatial_vertical_max, geospatial_vertical_units, geospatial_vertical_res, geospatial_vertical_pos
time_coverage_start, time_coverage_end, time_coverage_units, time_coverage_duration, time_coverage_res
Note: We recommend explicitly listing these attributes in the file even though they can be calculated from the CF information in order to facilitate direct access to this information by tools that do not understand the CF Conventions.
Open Geospatial Consortium Catalog Service for the Web (CSW)
The OGC CSW Service includes ten core queryable elements that must be supported in all instances. CSW Profiles map these queryables to elements in various standards. The ISO Mappings are described in Section 7.2.3.1,Table 6 of OpenGIS® Catalogue Services Specification 2.0.2 - ISO Metadata Application Profile (OGC 07-045). The core queryables mapping is included in the Table above. An additional "any text" queryable covers all text in a record. Two core queryables are not covered by the NetCDF Attribute Convention for Dataset Discovery: Format and CRS.
ISO Translation Notes
The translation between the Attribute Conventions for Data Discovery is subject to a number of assumptions or conventions described here.
People
The ACDD includes several types of people:
ACDD Attributes | ISO Locations |
creator_name, creator_email, creator_url, institution | citation/citedResponsibleParty role=originator, point of contact, and metadata contact |
contributor_name, contributor_role | citation/citedResponsibleParty role=originator (may need adjustment) |
publisher_name, publisher_email, publisher_url | distributor and Data Center keyword |
project | Project keyword, aggregation information (initiative type = project) |
Keywords
The ACDD includes several attributes that make sense as keywords in ISO:
ACDD Attributes | ISO Locations |
keywords | theme keywords with thesaurus given by the keywords_vocabulary attribute |
project | Project keyword with unknown thesaurus and aggregation information (initiative type = project) |
publisher_name | Data Center keyword with unknown thesaurus |
standard_names for parameters | theme keywords with thesaurus = standard_name_vocabulary |
publisher_name, publisher_email, publisher_url | distributor and Data Center keyword |
Translation Revisions
Several changes were introduced into Version 2.0.2 of the stylesheet for transforming NcML to ISO in order to improve the rubric score for the resulting ISO metadata. The changes included:
- Including netcdf/@location in transform as distribution onlineResource
- Added tagname to writeResponsibleParty so that responsibleParties with
different UML roles could be supported (i.e. contact vs. distributor)
- Added urlName and urlDescription to writeResponsibleParty to add
content to the onlineResource
- Moved publisher from citation to distributor and included publisher_name as a dataCenter keyword.
- Added project as a keyword with type=project
- Added distributionInfo section to ISO if publisher or location exist.
Determining an Order of Precedence
There can be conflicting information available from different sources within the THREDDS and CDM data models. The diagram below seeks to determine an order of precedence for what is recorded in the ncISO metadata when those attributes conflict.
A key part of this discussion is the ability to see identify potentially conflicting metdata between the differenc sources within THREDDS and NetCDF. Below we propose using groups to identify in the NCML what sources contain the relevant metadata that will be used in the ISO translation.
<?xml version="1.0" encoding="UTF-8"?> <netcdf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2 ../XSD/ncml-2.2.xsd" xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" location="http://localhost:8080/thredds/dodsC/test/crm_v1.nc"> <!-- Metadata from the netCDF or NCML file global attributes --> <attribute name="Conventions" value="CF-1.4" /> <attribute name="title" value="crm_v1.grd" /> <attribute name="history" value="xyz2grd -R-80/-64/40/48 -I3c -Gcrm_v1.grd" /> <attribute name="GMT_version" value="4.5.1 [64-bit]" /> <attribute name="creator_name" value="David Neufeld"/> <attribute name="creator_email" value="David.Neufeld@noaa.gov"/> <attribute name="geospatial_lon_units" value="degrees_east" /> <attribute name="geospatial_lat_units" value="degrees_north" /> <attribute name="geospatial_lon_min" type="float" value="-80.0" /> <attribute name="geospatial_lon_max" type="float" value="-64.0" /> <attribute name="geospatial_lat_max" type="float" value="48.0" /> <attribute name="geospatial_lat_min" type="float" value="40.0" /> <attribute name="geospatial_lon_resolution" type="double" value="8.33E-4" /> <attribute name="geospatial_lat_resolution" type="double" value="8.33E-4" /> <!-- Metadata calculated from the netCDF file axes based on CF conventions --> <group name="CFMetadata"> <attribute name="geospatial_lon_min" value="-80.0" type="float" /> <attribute name="geospatial_lat_min" value="40.0" type="float" /> <attribute name="geospatial_lon_max" value="-64.0" type="float" /> <attribute name="geospatial_lat_max" value="48.0" type="float" /> <attribute name="geospatial_lon_units" value="degrees_east" /> <attribute name="geospatial_lat_units" value="degrees_north" /> <attribute name="geospatial_lon_resolution" value="8.332899328159992E-4" /> <attribute name="geospatial_lat_resolution" value="8.332465368190813E-4" /> </group> <!-- Metadata from the THREDDS catalog dataset --> <group name="THREDDSMetadata"> <attribute name="id" value="crm_v1" /> <attribute name="creator_name" value="David Neufeld"/> <attribute name="creator_email" value="David.Neufeld@noaa.gov"/> <attribute name="data_distribution" value="http://localhost:8080/thredds/dodsC/test/crm_v1.nc" /> <attribute name="wms_service" value="http://localhost:8080//thredds/wms/crm/crm_vol9.nc" /> <attribute name="wcs_service" value="http://localhost:8080//thredds/wcs/crm/crm_vol9.nc" /> </group> <!-- Metadata from the ncISO service --> <group name="NCISOMetadata"> <attribute name="metadata_creation" value="2011-04-19" /> </group> <dimension name="x" length="19201" /> <dimension name="y" length="9601" /> <variable name="z" shape="y x" type="float"> <attribute name="long_name" value="z" /> <attribute name="_FillValue" type="float" value="NaN" /> <attribute name="actual_range" type="double" value="-2754.39990234375 1903.0" /> <attribute name="units" value="meters" /> <attribute name="positive" value="up" /> </variable> <variable name="x" shape="x" type="double"> <attribute name="long_name" value="x" /> <attribute name="actual_range" type="double" value="-80.0 -64.0" /> <attribute name="units" value="degrees_east" /> <attribute name="_CoordinateAxisType" value="Lon" /> </variable> <variable name="y" shape="y" type="double"> <attribute name="long_name" value="y" /> <attribute name="actual_range" type="double" value="40.0 48.0" /> <attribute name="units" value="degrees_north" /> <attribute name="_CoordinateAxisType" value="Lat" /> </variable> </netcdf>