Attribute Type Code Samples

ECHO

Integrating native ECHO XML into the ISO metadata is probably the most direct approach. There are two possible structures:

Product Specific Attribute

<eos:additionalAttributeType>
  <gco:RecordType xlink:href="http://www.echo.nasa.gov/ingest/schemas/operations/Collection.xsd#xpointer(//element[@name='AdditionalAttribute'])">Echo Additional Attribute</gco:RecordType>
</eos:additionalAttributeType>
<eos:additionalAttributeValue>
  <gco:Record xmlns:echo="http://www.echo.nasa.gov/ingest/schemas/operations">
    <echo:AdditionalAttribute>
      <echo:Name>ScanAngle</Name>
      <echo:DataType>float</DataType>
      <echo:Description>The angle between the sensor view vector and the nadir axis</Description>
      <echo:MeasurementResolution/>
      <echo:ParameterRangeBegin/>
      <echo:ParameterRangeEnd/>
      <echo:ParameterUnitsOfMeasure>degrees</ParameterUnitsOfMeasure>
      <echo:ParameterValueAccuracy/>
      <echo:ValueAccuracyExplanation/>
      <echo:Value>47.5</Value>
    </echo:AdditionalAttribute>
  </gco:Record>
</eos:additionalAttributeValue>

Characteristic

<eos:additionalAttributeType>
  <gco:RecordType xlink:href="http://www.echo.nasa.gov/ingest/schemas/operations/Collection.xsd#xpointer(//element[@name='Characteristic'])">Echo Characteristic</gco:RecordType>
</eos:additionalAttributeType>
<eos:additionalAttributeValue>
  <gco:Record xmlns:echo="http://www.echo.nasa.gov/ingest/schemas/operations">
    <echo:Characteristic>
      <echo:Name>ScanAngle</Name>
      <echo:Description>The angle between the sensor view vector and the nadir axis</Description>
      <echo:DataType>float</DataType>
      <echo:Unit>degrees</Unit>
      <echo:Value>47.5</Value>
    </echo:Characteristic>
  </gco:Record>
</eos:additionalAttributeValue>

Sensor Web DataArray

The Sensor Web DataArray structure was developed in order to provide a mechanism for describing generic collections of data (see the SWE Encoding Specification for more information). In this case the RecordType is defined using a reference to the SWE 2.0 schema and the characteristic information is encoded as a block of comma separated values:

<eos:additionalAttributeType>
  <gco:RecordType xlink:href="http://schemas.opengis.net/sweCommon/2.0/block_components.xsd#xpointer(//element[@name='DataArray'])">SWECommon Data Array</gco:RecordType>
</eos:additionalAttributeType>
<eos:additionalAttributeValue>
  <gco:Record>
    <swe:DataArray>
      <swe:elementCount>
        <swe:Count>
          <swe:value>3</swe:value>
        </swe:Count>
      </swe:elementCount>
      <swe:DataRecord>
        <swe:field name="Name"/>
        <swe:field name="Description"/>
        <swe:field name="DataType"/>
        <swe:field name="Unit"/>
        <swe:field name="Value"/>
      </swe:DataRecord>
      <swe:encoding>
        <swe:TextBlock decimalSeparator="." tokenSeparator="," blockSeparator="& #xA;"/> Note: the blockSeparator is a carriage return
      </swe:encoding>
      <swe:values>"ScanAngle","The angle between the sensor view vector and the nadir axis","float","degrees","47.5"
        "ScanPeriod","Time for AMSR-E to rotate about an axis parallel to local spacecraft vertical.","float","seconds","1.5"
        "SwathWidth","The width of the sensor scan as the satellite moves along the ground track.","int","kilometers","1450"
      </swe:values>
    </swe:DataArray>
  </gco:Record>
</eos:additionalAttributeValue>

Note that the elements in this example are extensions to 19115-2 in the eos namespace. These extensions are required because the concept of custom characteristics for platforms, instruments, and sensors is not included in 19115-2.

IOOS CSV Encoding

The NOAA Integrated Ocean Observing Program has proposed a different CSV encoding for data blocks. See IOOS Conventions for CSV Encoding for more information.

SensorML Encoding

Another alternative is to encode these characteristics using Sensor ML. This example shows a block of geometric characteristics encoded in this way. The complete record includes other types of characteristics. This example also illustrates the use of URN's for the definitions of these characteristics:

<sml:characteristics xlink:role="urn:ogc:def:role:CEOS:eop:GeometricCharacteristics">
  <swe:DataRecord>
    <gml:name>Geometric Characteristics</gml:name>
    <swe:field name="Antenna Length">
      <swe:Quantity definition="urn:ogc:def:property:CEOS:sar:AntennaLength">
        <swe:uom code="m"/>
        <swe:value>10</swe:value>
      </swe:Quantity>
    </swe:field>
    <swe:field name="Antenna Width">
      <swe:Quantity definition="urn:ogc:def:property:CEOS:sar:AntennaWidth">
        <swe:uom code="m"/>
        <swe:value>1.3</swe:value>
      </swe:Quantity>
    </swe:field>
    <swe:field name="Ground Location Accuracy">
      <swe:Quantity definition="urn:ogc:def:property:CEOS:eop:GroundLocationAccuracy">
        <swe:uom code="m"/>
        <swe:value>000</swe:value>
      </swe:Quantity>
    </swe:field>
    <swe:field name="Revisit Time">
      <swe:Quantity definition="urn:ogc:def:property:CEOS:eop:RevisitTime">
        <swe:uom code="d"/>
        <swe:value>000</swe:value>
      </swe:Quantity>
    </swe:field>
  </swe:DataRecord>
</sml:characteristics>

JSON

Javascript Object Notation is a platform and language independent representation for structured data. There are several possible organizations for the characteristic information in JSON. An agreed upon organization can be described in a Schema that is referenced from the RecordType element. The JSON data is then included in the Record:

               <eos:additionalAttributeType>
                  <gco:RecordType xlink:href="http://json.org">JSON Description</gco:RecordType>
               </eos:additionalAttributeType>
               <eos:additionalAttributeValue>
                  <gco:Record>
                     <gco:CharacterString>{"characteristics":[
{"Name":"MaximumBrightnessTemperature",
"Description":"The maximum valid Brightness Temperature value",
"DataType":"int",
"Unit":"Kelvin",
"Value":"350"}
,
{"Name":"MinimumBrightnessTemperature",
"Description":"The minimum valid Brightness Temperature value",
"DataType":"int",
"Unit":"Kelvin",
"Value":"2"}
,
{"Name":"Resolution1",
"Description":"Approximate resolution of the 6.9 GHz channels.",
"DataType":"int",
"Unit":"kilometers",
"Value":"56"}
,
{"Name":"Resolution2",
"Description":"Approximate resolution of the 10.7 GHz channels.",
"DataType":"int",
"Unit":"kilometers",
"Value":"38"}
,
{"Name":"Resolution3",
"Description":"Approximate resolution of the 18.7 GHz channels.",
"DataType":"int",
"Unit":"kilometers",
"Value":"21"}
,
{"Name":"Resolution4",
"Description":"Approximate resolution of the 36.5 GHz channels.",
"DataType":"int",
"Unit":"kilometers",
"Value":"12"}
,
{"Name":"Resolution5",
"Description":"The resolution at which the 89.0 GHz channels have been resampled.",
"DataType":"float",
"Unit":"kilometers",
"Value":"5.4"}
,
{"Name":"ScanAngle",
"Description":"The angle between the sensor view vector and the nadir axis",
"DataType":"float",
"Unit":"degrees",
"Value":"47.5"}
,
{"Name":"ScanPeriod",
"Description":"Time for AMSR to rotate about an axis parallel to local spacecraft vertical.",
"DataType":"float",
"Unit":"seconds",
"Value":"1.5"}
,
{"Name":"SwathWidth",
"Description":"The width of the sensor scan as the satellite moves along the ground track.",
"DataType":"int",
"Unit":"kilometers",
"Value":"1600"}
]
}</gco:CharacterString>
                  </gco:Record>
               </eos:additionalAttributeValue>

NcML

NcML is the XML representation for metadata in netCDF files. There are several possible organizations for the characteristic information in NcML. The organization shown here takes advantage of the grouping capability in NcML. The RecordType is defined in the NcML schema and the characteristic information is given as a series of variables:

<eos:additionalAttributeType>
  <gco:RecordType xlink:href="http://www.unidata.ucar.edu/schemas/netcdf/ncml-2.2.xsd#xpointer(//element[@name='group'])">netCDF Group Type</gco:RecordType>
</eos:additionalAttributeType>
<eos:additionalAttributeValue>
  <gco:Record xmlns:nc="http://www.unidata.ucar.edu/schemas/netcdf/ncml-2.2.xsd">
      <nc:group name="characteristics">
        <nc:variable name="MaximumBrightnessTemperature">
          <nc:attribute name="Description" value="The maximum valid Brightness Temperature value"/>
          <nc:attribute name="DataType" value="int"/>
          <nc:attribute name="Unit" value="Kelvin"/>
          <nc:attribute name="Value" value="350"/>
        </nc:variable>
        <nc:variable name="MinimumBrightnessTemperature">
          <nc:attribute name="Description" value="The minimum valid Brightness Temperature value"/>
          <nc:attribute name="DataType" value="int"/>
          <nc:attribute name="Unit" value="Kelvin"/>
          <nc:attribute name="Value" value="2"/>
        </nc:variable>
        <nc:variable name="Resolution1">
          <nc:attribute name="Description" value="Approximate resolution of the 6.9 GHz channels."/>
          <nc:attribute name="DataType" value="int"/>
          <nc:attribute name="Unit" value="kilometers"/>
          <nc:attribute name="Value" value="56"/>
        </nc:variable>
        <nc:variable name="Resolution2">
          <nc:attribute name="Description" value="Approximate resolution of the 10.7 GHz channels."/>
          <nc:attribute name="DataType" value="int"/>
          <nc:attribute name="Unit" value="kilometers"/>
          <nc:attribute name="Value" value="38"/>
        </nc:variable>
        <nc:variable name="Resolution3">
          <nc:attribute name="Description" value="Approximate resolution of the 18.7 GHz channels."/>
          <nc:attribute name="DataType" value="int"/>
          <nc:attribute name="Unit" value="kilometers"/>
          <nc:attribute name="Value" value="21"/>
        </nc:variable>
        <nc:variable name="Resolution4">
          <nc:attribute name="Description" value="Approximate resolution of the 36.5 GHz channels."/>
          <nc:attribute name="DataType" value="int"/>
          <nc:attribute name="Unit" value="kilometers"/>
          <nc:attribute name="Value" value="12"/>
        </nc:variable>
        <nc:variable name="Resolution5">
          <nc:attribute name="Description"
            value="The resolution at which the 89.0 GHz channels have been resampled."/>
          <nc:attribute name="DataType" value="float"/>
          <nc:attribute name="Unit" value="kilometers"/>
          <nc:attribute name="Value" value="5.4"/>
        </nc:variable>
        <nc:variable name="ScanAngle">
          <nc:attribute name="Description"
            value="The angle between the sensor view vector and the nadir axis"/>
          <nc:attribute name="DataType" value="float"/>
          <nc:attribute name="Unit" value="degrees"/>
          <nc:attribute name="Value" value="47.5"/>
        </nc:variable>
        <nc:variable name="ScanPeriod">
          <nc:attribute name="Description"
            value="Time for AMSR to rotate about an axis parallel to local spacecraft vertical."/>
          <nc:attribute name="DataType" value="float"/>
          <nc:attribute name="Unit" value="seconds"/>
          <nc:attribute name="Value" value="1.5"/>
        </nc:variable>
        <nc:variable name="SwathWidth">
          <nc:attribute name="Description"
            value="The width of the sensor scan as the satellite moves along the ground track."/>
          <nc:attribute name="DataType" value="int"/>
          <nc:attribute name="Unit" value="kilometers"/>
          <nc:attribute name="Value" value="1600"/>
        </nc:variable>
      </nc:group>
  </gco:Record>
</eos:additionalAttributeValue>
  • No labels