Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3

Overview

Vector products are accessible through the GIBS WMTS and WMS visualization services.  WMTS responses are formatted as gzip-compressed Mapbox vector tiles (specification), or "MVTs", while WMS responses are available as raster images. 

The data behind each visualization service is the same, however the mechanism for styling differs.  A client application is responsible for applying styling to MVTs when using the WMTS API.  Conversely, GIBS applies a default style when rendering vector data as a raster when using the WMS API.  See the Vector Layer Styles section below for more information.

An MVT returned via the WMTS service contains information for a client to draw the features within the user interface, but also a set of properties that contain data associated with the feature.  The Mapbox vector tile specification provides structure for representing these dataThe Mapbox vector tile specification provides structure for including data values as properties associated with a feature, but no mechanism for interpreting the meaning or intended use.  As such, additional metadata is required.  GIBS has developed a specification for defining each property contained within MVTs in its vector products.  See the Vector Layer Metadata section below for more information.

The following sections provide examples for how to detect and interact with vector products within the GIBS WMTS and WMS services

Vector Layer Metadata

Anchormetadatametadata

As mentioned previously, the Mapbox vector tile specification provides structure for representing these data, but no mechanism for interpreting the meaning or intended use.  As such, GIBS has developed the following specification for defining each property contained within MVTs in its vector products. Each vector product has an associated associated JSON vector layer metadata file which provides the following information:

  • A unique identifier for the property, as found in the MVT data itself
  • Descriptive information such as a title, description, and the function of the property (e.g. identification vs styling)
  • The data type and optional units for the property
  • Valid values for the property
  • Additional flags for improved UI experience (e.g. "is this optional")


Specification

Note

Insert link to JSON schema when it's available via link. For how, it's attached here.

The following table outlines the content of the GIBS vector metadata specification.  

NameDescriptionTypeRequired?
Contents
Sample Value
IdentifierThe unique identifier of the MVT property.String(tick)FRP
TitleA human readable title for the property.String(tick)Fire Radiative Power
DescriptionA human readable description for the property.String(tick)A measure of the rate of radiant heat output from a fire.
UnitsThe units value to be applied to the actual value of this property.String(error)MW
DataTypeThe data type of this property.Enumeration(tick)float
ValueListA listing of the possible valid values for a 'string' property type, if the property has a controlled list.Array


(question)

Only one may be used 

[ "Lake Ice", "Sea Ice", "Not Ice" ]
ValueRangesA listing of mutually exclusive min and max value pairs representing ranges of valid values for the 'Integer', 'float', and 'datetime' property types.Array of Objects[ { "Min": 0, "Max": 99999999 } ]
ValueMapA map of the possible valid values for 'string' or 'int' property types, and their associated description.  This facilitates a key-value lookup table allowing for a simplified property value (i.e. the ‘key’).Object{ 10 : “Processed Fire Pixel”, 20 : “Saturated Fire Pixel” }
FunctionThe property’s intended function as a part of the visualization product.Enumeration(tick)Describe
IsOptionalIndicates whether the property is optional.Boolean(tick)true
IsLabelIndicates whether the property should be used to label the point in a user interface.Boolean(tick)true


The following "business logic" rules are applied :

  1. One and only non-optional Label
  2. Non-duplicate identifiers
  3. ValueRange for int, float, datetime
  4. Unique ValueList items
  5. ValueMap for stirng int
  6. Only one non-optional Identify



UI Expand
titleFunction

Description

The property’s intended function as a part of the visualization product.  Possible functions include:

  • Identify - Properties that form a “primary key” to identify the visualization product. Often these are used used during processing to separate data points into separate layers (e.g. Platform and Day/Night).  These properties typically would also be in the associated layer metadata (e.g. Platform or Version) and embedded in the layer identifier (e.g. MODIS_Terra_Day_Fires).
  • Style - Properties that are utilized for styling or filtering vector features.  These will typically be included in the default style(s) offered through WMS or the Mapbox Style JSONs. 
  • Describe - Properties that provide additional information regarding the vector feature (e.g. Acquisition Time or Inclination Angle).  They may be useful for tooltip presentation to users.


Sample Value

“Identify”


Examples


vector layer metadata file is a list of content blocks defining each property. The following snippet shows an example of a single property's definition within the vector layer metadata file.

Code Block
languageyml
titleMVT Property Snippet
    {
      "Identifier" : "NumReactor",
      "Title"      : "Number of Reactors",
      "Description": "Number of Active Reactors at a given Plant",
      "Units"      : "Reactors",
      "DataType"   : "int",
      "ValueRanges": [ { "Min": 1, "Max": 9 } ],
      "Function"   : "Style",
      "IsOptional" : false,
      "IsLabel"    : false
    }

The following block provides a full example of a vector layer metadata file.

Code Block
languageyml
titleSample Vector Metadata File
collapsetrue
{
  "id": "Nuclear_Power_Plant_Locations",
  "mvt_properties": [

    {
      "Identifier" : "Plant",
      "Title"      : "Plant Site Name",
      "Description": "Name of Nuclear Plant",
      "DataType"   : "string",
      "Function"   : "Identify",
      "IsOptional" : false,
      "IsLabel"    : true
    },

    {
      "Identifier" : "NumReactor",
      "Title"      : "Number of Reactors",
      "Description": "Number of Active Reactors at a given Plant",
      "Units"      : "Reactors",
      "DataType"   : "int",
      "ValueRanges": [ { "Min": 1, "Max": 9 } ],
      "Function"   : "Style",
      "IsOptional" : false,
      "IsLabel"    : false
    },

    {
      "Identifier" : "p10_30",
      "Title"      : "Population within 30km (2010)",
      "Description": "Total population within a 30km radius of the nuclear plant (2010)",
      "Units"      : "Persons",
      "DataType"   : "int",
      "ValueRanges": [ { "Min": 275, "Max": 7170590 } ],
      "Function"   : "Describe",
      "IsOptional" : false,
      "IsLabel"    : false
    }
}

MVT Metadata Specification

Stuff...

  • Identifier [1]
  • Title [1]
  • Descripition [1]
  • Units [0..1]
  • Data Type [1]
  • Value Ranges [0..1]
  • Value List [0..1]
  • Value Map [0..1]
  • Function [1]
  • Is Optional [1]
  • Is Label [1]
NameDescriptionTypeRequired?Sample ValueIdentifierThe unique identifier of the MVT property.String(tick)FRPTitleA human readable title for the property.String(tick)Fire Radiative PowerDescriptionA human readable description for the property.String(tick)UnitsThe units value to be applied to the actual value of this property.String(error)MWDataTypeThe data type of this property.Enumeration(tick)floatValueListA listing of the possible valid values for a 'string' property type, if the property has a controlled list.ValueRangesA listing of mutually exclusive min and max value pairs representing ranges of valid values for the 'Integer', 'float', and 'datetime' property types.ValueMapA map of the possible valid values for 'string' or 'int' property types, and their associated description.FunctionThe property’s intended function as a part of the visualization product.Enumeration(tick)DescribeIsOptionalIndicates whether the property is optional.Boolean(tick)trueIsLabelIndicates whether the property should be used to label the point in a user interface.Boolean(tick)true
UI Expand
titleIdentifier

Description

The unique identifier of the MVT property.

Sample Value

“FRP”

UI Expand
titleTitle

Description

The unique identifier of the MVT property.

Sample Value

“FRP”

UI Expand
titleDescription

Description

A human readable description for the property written using HTML notation.  Newlines within the markdown must be escaped.  This value is used for informational dialogues.

Sample Value

“The Fire Radiative Power (FRP) is a measure of the rate of radiant heat output from a fire. It has been demonstrated in small-scale experimental fires that the FRP of a fire is related to the rate at which fuel is being consumed (Wooster et al., 2005) and smoke emissions released (Freeborn et al., 2008).”

UI Expand
titleUnits

Description

An optional units value to be applied to the actual value of this property.

Sample Value

“MW”

UI Expand
titleData Type

Description

The data type of this property.  Valid values include:

  • ‘string’
  • ‘int’
  • ‘float’
  • ‘datetime’ (YYYY-MM-DDTHH:MM:SSZ)

Sample Value

“double”

UI Expand
titleValid Values
UI Expand
titleValue Ranges

Description

A listing of mutually exclusive min and max value pairs representing ranges of valid values for the “Integer”, “Float”, and “DateTime” property types. 

Sample Value

{ "Min": 0, "Max": 99999999 }

UI Expand
titleValue List

Description

A listing of the possible valid values for a “String” property type, if the property has a controlled list. 

Sample Value

[ "Lake Ice", "Sea Ice", "Not Ice" ]

UI Expand
titleValue Map

Description

A map of the possible valid values for “String” or “int” property types, and their associated description.  This facilitates a KVP lookup table allowing for a simplified property value (i.e. the ‘key’ in the KVP). 

Sample Value

{ 10 : “Processed Fire Pixel”, 20 : “Saturated Fire Pixel” }

UI Expand
titleFunction

Description

The property’s intended function as a part of the visualization product.  Possible functions include:

  • Identify - Properties that form a “primary key” to identify the visualization product. Often these are used used during processing to separate data points into separate layers (e.g. Platform and Day/Night).  These properties typically would also be in the associated layer metadata (e.g. Platform or Version) and embedded in the layer identifier (e.g. MODIS_Terra_Day_Fires).
  • Style - Properties that are utilized for styling or filtering vector features.  These will typically be included in the default style(s) offered through WMS or the Mapbox Style JSONs. 
  • Describe - Properties that provide additional information regarding the vector feature (e.g. Acquisition Time or Inclination Angle).  They may be useful for tooltip presentation to users.

Sample Value

“Identify”

UI Expand
titleIs Optional

Description

Indicates whether the property is optional.

Sample Value

True

UI Expand
titleIs Label

Description

Indicates whether the property should be used to label the point in a user interface.

Sample Value

True

Hide comments